Linuxに再度ログインすることなくユーザー/グループのプロパティを更新する方法はありますか?


24

/ etc / groupを編集し、所属していないグループにユーザーを追加すると、ユーザーは、新しいセッションを開始しない限り、新しく取得した特権を使用できなくなります。

進行中のセッションでユーザー/グループのプロパティを更新するコマンドはありますか?


1
使用する代わりに手動でファイルを編集する理由はありますuseradd -G groupname usernameか?
ボビー

4
@ボビー:これは何の違いもありません。
niXar

あなたはこの答えを見るかもしれません。
パブロA

回答:


16

カーネルレベルでは、グループメンバーシップは各プロセスのプロパティです。適切な機能(私が間違っていない場合はCAP_SETGID)、つまり、すべての意図と目的に対するルート特権がない限り、プロセスは新しいグループに属することはできません。

ユーザーは、カーネルレベルではオブジェクトとして存在しません。プロセス(およびファイル)のみが行います。プロセスにはuid(有効なものとその他のもの)およびグループIDのリストがあります。

ユーザーをグループに追加するとき、カーネルはそれが何を意味するのか分からない。間接的に、次に/ bin / loginまたは/ usr / bin / newgrpがそのユーザーIDでプロセスを実行するときに、リストに新しいグループIDが含まれることを知っているだけです。

したがって、質問に答えるには、GnomeまたはKDEセッションについて話している場合、実際に再起動する必要があります。または、新しいグループに関する限り、1つのコマンドの結果のみを考慮する場合は、先ほど述べたnewgrpを使用できます。新しく追加されたグループで新しいシェルを開始します。


5

以前、newgrpコマンドがこれを行うことを読みましたが、これは現在のシェルに対してのみです。ログアウトしてから再度ログインするよりも良い方法はないようです。


3
newgrpが行うことは、実際に新しいシェルを開始することです。したがって、^ Dから古いシェルに戻ります。私は通常、単に「exec newgrp」を実行します
-niXar
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.