Как разрешить запускать su сразу после добавления пользователя в соответствующую группу

8

У меня есть 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сразу после добавления пользователя в соответствующую группу?

user4035
источник
1
newgrpОтвет Джозефа верен - но он применяется ТОЛЬКО к оболочке, в которой вы его запускаете, поэтому, если у вас запущено несколько оболочек, легко забыть, что вы использовали, newgrpа что нет. Это может быть проще / проще просто выйти и войти снова.
Cas

Ответы:

8

Просто запустите пользователя

newgrp wheel

Это запустит новую оболочку с идентификатором группы, измененным на wheel. Если вы хотите запустить новую оболочку и убить предыдущую, используйте

exec newgrp wheel

вместо.

Это связано с тем, что ядро ​​все еще имеет предыдущий набор групп, связанный с запущенными в данный момент процессами.

Джозеф Р.
источник
Как я могу работать в графическом эмуляторе терминала? Когда я запускаю newgrp wheelкак пользователь, он запрашивает какой-то пароль. Даже когда я
набираю
@ user4035 Случайно ли мы говорим о сетевой среде с механизмом аутентификации, таким как NIS / LDAP? Если это так, возможно, новые ассоциации групп еще не были должным образом распространены на клиентские машины.
Джозеф Р.
Нет, это моя локальная машина. Я вхожу как пользователь, затем запускаю X Session, затем запускаю терминал и запускаю suтам, чтобы переключиться на root. Я попытался запустить "колесо Newgrp", но он запрашивает какой-то пароль: bash-4.2$ newgrp wheel Password: пароль root не работает
user4035
@ user4035 Согласно man-странице, это будет пароль пользователя, а не пароль root. Это логично, так как это в основном то же самое, что новый логин.
Нильс
2
Обратите внимание, что этот ответ является неточным, поскольку эффект newgrp wheelне позволяет «добавить пользователя в группу колес» для вступления в силу, эффект состоит в том, что основной GID пользователя изменился, что принципиально отличается - например, вновь созданные файлы будут иметь новый GID.
Якуб Клинковский