web-dev-qa-db-ja.com

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

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

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

24
Gubatron

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

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

ユーザーをグループに追加するとき、カーネルはそれが何を意味するのかわかりません。間接的に、次に/ bin/loginまたは/ usr/bin/newgrpが実行されるときに、そのユーザーIDを持つプロセスのリストに新しいグループIDが含まれることだけがわかります。

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

16
niXar

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

5
Andy Shellam