
У меня есть 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
Это запустит новую оболочку с измененным идентификатором группы на wheel
. Если вы хотите запустить новую оболочку и завершить предыдущую, используйте
exec newgrp wheel
вместо.
Это связано с тем, что ядро по-прежнему имеет предыдущий набор групп, связанный с текущими запущенными процессами.