ユーザーをグループに追加しましたが、ファイルに対するグループ権限はまだ適用されません。

ユーザーをグループに追加しましたが、ファイルに対するグループ権限はまだ適用されません。

chmod g+w testfilefile() の権限を変更して実行すると、ls -l testfile次のようになります。

-rwxrwxr-x 1 user1 user1 0 2011-01-24 20:36 testfile

その後、グループにユーザーを追加しました(「/etc/グループ「行user1:x:1000:user2)、user2ではファイルを編集できません。なぜこれが起こりますか?

ベストアンサー1

user2ログアウトして再度ログインする必要があります。グループ権限は次のように機能します。

  • ログインすると、プロセスには、/etc/passwd前述の基本グループとユーザーのすべてのグループにグループメンバーシップがあります/etc/group。 (より正確には、pw_gidフィールドはgetpw(your_uid)、プラスすべてのグループ~へあなたのユーザーは明示的なメンバーです/etc/passwdまた、/etc/groupNIS や LDAP などの他の種類のユーザーデータベースから情報を取得することもできます。 )主なコンポーネントがプロセスになります。有効グループID他のグループが自分のグループになっている間補助グループID
  • プロセスが次のようにグループのメンバーが必要なタスクを実行するときファイルにアクセス、グループは、プロセスの有効グループIDまたは補助グループIDのいずれかでなければなりません。

ご覧のとおり、ユーザーのグループメンバーシップに対する変更は、ユーザーがログインしている場合にのみ適用されます。実行中のプロセスの場合は遅すぎます。したがって、ユーザーはログアウトして再度ログインする必要があります。これが面倒すぎる場合、ユーザーは別のセッションにログインすることができます(たとえば、別のコンソールから、またはssh localhost

後ではプロセスのみを実行できます。失う権限(ユーザーID、グループID、機能)カーネルは、initルート(開始後の最初のプロセス)で実行されるプロセスを開始し、各プロセスは最終的にそのプロセスの子孫です。プロセスlogin(またはsshdログインしているデスクトップ管理者の一部)はまだrootとして実行されています。そのタスクの一部は、root権限を放棄し、正しいユーザーとグループに切り替えることです。

1つの例外があります。実行setuid または setgidプログラム。プログラムは追加の権限を受け取ります。オプションで、親プロセスメンバーシップのさまざまなサブセットとsetxid実行可能ファイルを所有するユーザーまたはグループの追加メンバーシップで機能できます。具体的には、setuid rootプログラムはroot権限を持っているので、プログラムは必要に応じてすべての操作を実行できますsu² sudo

1 時々init(initrd、udev)から分岐しないプロセスがありますが、原則は同じです。ルートで始まり、時間の経過とともに権限を失います。 ²SELinuxなどのマルチレベルセキュリティフレームワークの使用は禁止されています

おすすめ記事