私は*nixオペレーティングシステムに初めて触れました。私はこのファイルのフォーマットと使い方(少なくともマニュアルページの内容)を理解しています/etc/group
。ある日、グループファイルをバックアップコピーに置き換えようとしました。ファイル名を変更したgroup.old
後、マイコンピュータのすべてのアカウントが失われました。根ライセンス。この問題を解決するには、シングルユーザーモードに入る必要がありました。このグループとUNIXアカウント全体の詳細なプロセスが必要なようです。
誰かが私にリンクを与えるか、あなたの学習経験を私と共有できますか?
答え1
このファイルは、/etc/group
どのユーザーがどのグループのメンバーであるかを示します。グループはアクセス制御に使用され、ユーザーを補完します。
/etc/group
ログイン時に読んでください。各プロセスは、ユーザーと1つ以上のグループで実行されます。ログインプロセスはすべての権限で実行を開始します。ユーザーが正常に認証されると(パスワードの入力など)、ログインプロセスはに表示されているグループとに表示されているグループを/etc/group
想定し、認証された/etc/passwd
ユーザーシェルで始まります。
各ファイルには、3つの権限セット(ユーザー、グループ、その他)と所有者とグループがあることがわかります。プロセスがファイルにアクセスしようとすると、次のことが行われます。
- ファイルを所有するユーザーとしてプロセスが実行される場合、適用可能な権限はユーザー権限です。
- それ以外の場合、プロセスのグループの1つがファイルを所有するグループである場合、適用可能な権限はグループ権限です。
- それ以外の場合、適用可能な権限は別の権限です。
例:
$ ls -l myfile
-rw-r----- 1 msh gutenberg 1234 Jul 4 1971 books.txt
ユーザーはmsh
このファイル()を読み書きできますrw-
。グループ内のすべてのユーザーはgutenberg
ファイル(r--
)を読み取ることができます。他のユーザーはそのファイルにまったくアクセスできません(---
)。
したがって、グループを使用すると、すべてのユーザーのサブセットがファイルにアクセスできるようにすることができます。システムサービスとデバイスは、特定のユーザーまたは特定のグループに制限することもできます。
グループには3つの一般的な用途があります。
- 上記の例のように、共通プロジェクトで作業している実際のユーザーグループは、同じファイルセットにアクセスします。
- システムリソースへのアクセスを制御するために使用される物理ユーザーグループ。たとえば、競合するゲームは、ユーザーとグループに属し、すべてのユーザーだけが書き込み可能で、すべてのユーザーが書き込めないハイスコアの
root
ファイルを保存することがよくあります()。ゲームプログラムは高い権限を持つグループで実行されます。games
games
rw-rw----
games
設定)のgames
ため、高いスコアのファイルを読み書きできますが、他のプロセスはそうではありません。 - システムユーザーグループ。たとえば、多くのシステムサービスは、あるサービスのバグや破損が他のサービスに影響を与える可能性があるリスクを最小限に抑えるために専用のユーザーとグループで実行されます。
あなたの症状に応じて、システムはグループメンバーシップを通じてアカウントへのアクセスを制御するように設定されていますroot
。これを行う方法はいくつかあります。最も一般的な設定は次のとおりです。
- ルートアカウントへのアクセスは次のように行われます。Sudo。ユーザーはを実行するために自分のパスワードを入力する必要があります
sudo
。sudo
ユーザーがグループに属している場合は、rootとして実行コマンドを呼び出すことができますadmin
。これはたとえ話%admin: ALL=(ALL) ALL
の中で線として表されます/etc/sudoers
。時々、グループは異なる名前を持っています。これがUbuntuのデフォルト設定です。 - ルートアカウントへのアクセスは次のように行われます。数。グループ内のユーザーのみを
wheel
実行できますsu
。ユーザーはを実行するためにrootパスワードを入力する必要がありsu
ます。したがって、rootアカウントに侵入するには、攻撃者はユーザーのパスワードとrootパスワードの両方を取得する必要があります。これは一部のBSDシステムのデフォルト値でしたが、攻撃者がさらに洗練されたため、廃止されました(アカウントの破損、キーロガーの実行、ルートパスワードの取得)。
/etc
レッスン:ファイルの目的がわからない場合は、ファイルを変更または削除しないでください。何かを変更した場合は、ルートシェルで実行し、後でログインできることをテストしてください。そうでない場合は、直ちに変更を元に戻してください。
/etc
インストールをお勧めしますマネージャーをお待ちくださいパッケージして実行しますetckeeper init
(root)。
答え2
K「Linuxの実行」DalheimerとWelshの本(O'Reilly、2005)または一部TLDPガイド要件を満たしています。あなたのディストリビューションにはいくつかの具体的な指示があるかもしれません。これを確認してください。構成ファイルを変更するときは特に注意してください。バックアップしておくこともできますが、変更がある場合は事前にコピーを作成することをお勧めします(移動しないでください)。ほとんどのディストリビューションには、ユーザーや他のさまざまな構成を管理するためのツールがあります。
答え3
質問をするときに、人々に自分が実行しているソフトウェアを知らせると便利です。この場合、どのディストリビューションを実行しているかを知ることが役に立ちます。
FedoraまたはRedhatを実行していますか?もしそうなら、SE Linuxは問題かもしれません。
SE Linuxを実行していることを確認するには、次のコマンドを実行します。 getenforce
SE Linuxを実行している場合は、「enforcing」が返されます。 SE Linuxを実行している場合は、次を実行します。
ls -lZ /etc/group.old /etc/group
そして違いを比較してみてください。新しいファイルに多くの部分がない場合は、次のように表示されます。
system_u:object_r:etc_t:s0
以前のファイルのリストからSElinuxコンテキスト情報が欠落している可能性があります。
次のコマンドを使用して、前のファイルからSElinuxコンテキストをコピーできます。
chcon --reference /etc/group.old /etc/group
あなたが学んでいるなら、SE Linuxをオフにするのが賢明な答えかもしれません。次の方法でこれを実行できます。
setenforce 0
再起動するまで(またはsetenforce 1を実行するまで)SELinuxが終了します。
SElinux を永久に終了するには、以下を編集する必要があります。
/etc/selinux/config