ログアウトして新しいグループ設定を適用する方法

ログアウトして新しいグループ設定を適用する方法

新しいグループの設定をユーザーに適用できるように、コマンドラインからログアウトして再度ログインする方法を教えてください。これを理解するために、現在testuseraccountとしてログインし、端末で次のコマンドを実行するとします。

su
usermod -aG sudo testuseraccount

だから私はsuを入力するとrootに入ることができると思います(しかしシェル内でのみ可能です)。その後、端末からルートからログアウトし、testuseraccountからログアウトして再度ログインするにはどうすればよいですか(sudoグループがtestusersaccountに適用されるように)。

答え1

既存のプロセスのグループIDは変更できません。つまり、既存のプロセスを再起動することが1つの方法です。子プロセスは親プロセスのグループIDを継承するため、デスクトップ環境(メニュー...)で実行されているプログラムには影響しません。

指定されたシェル内で、次のnewgrpコマンドを使用して新しい有効グループIDで新しいシェルを開始します。

> id
uid=1000(user) gid=100(users) groups=100(users),92(audio)
> newgrp audio
> id
uid=1000(user) gid=92(audio) groups=92(audio),100(users)

audioこのシェルで開始されたすべてのプロセスは新しい有効なグループID(この場合)を持ちます。

グループに新しいユーザーを追加した場合は、そのユーザーが新しいプロセスを開始した後にこの内容が再適用されます。

だから欲しいなら新しいX(グラフィックログイン)セッションを開始します。を使用するには、前のセッションから完全にログアウトし、ログインして新しいセッションを開始する必要があります。パスワードのないログインが有効になっていない場合は、ログイン画面(XDM / GDM / KDM経由)を介して対話せずにログアウトしてから再度ログインすることはできません(誰もお勧めできません)。 1つの理由は、ログアウト中にユーザーのすべてのプロセスが終了し、ログインを開始するプロセスが残っていないためです。

解決策を作成することは可能であると予想しましたが、「醜い」と思います。

関連情報