ユーザーを適切なグループに追加した後、すぐに su を実行できるようにする方法

ユーザーを適切なグループに追加した後、すぐに su を実行できるようにする方法

su次の権限を持つ実行可能ファイルがあります:

bash-4.2# ls -la /bin/su
-rws--s--- 1 root wheel 59930 Sep 14  2012 ./su

グループではなくユーザーとしてログインして をwheel実行しようとするとsu、エラーが発生しますが、これは正しいです。

bash-4.2$ su
bash: /bin/su: Permission denied

その後、このユーザーを次wheelのグループに追加しますroot:

bash-4.2# usermod -a -G wheel user

しかし、同じターミナルセッションではまだ実行できませんsu:

bash-4.2$ su
bash: /bin/su: Permission denied

新しいセッションでは、 を実行できます。ユーザーを適切なグループに追加した後、すぐにsu実行できるようにするにはどうすればよいでしょうか?su

答え1

ユーザーに実行させるだけです

newgrp wheel

これにより、グループIDが に変更された新しいシェルが起動しますwheel。新しいシェルを起動して以前のシェルを終了したい場合は、

exec newgrp wheel

その代わり。

これは、カーネルに現在実行中のプロセスに関連付けられた以前のグループセットがまだ残っているためです。

関連情報