
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
その代わり。
これは、カーネルに現在実行中のプロセスに関連付けられた以前のグループセットがまだ残っているためです。