将用户添加到适当的组后,如何允许立即运行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将用户添加到适当的组后,立即?


1
约瑟夫的newgrp答案是正确的-但它仅适用于您在其中运行的shell,因此,如果您有多个运行的shell,则很容易忘记您曾经newgrp在哪个shell中运行过哪个shell 。仅注销并再次登录可能更简单/容易。
cas

Answers:


8

只需让用户运行

newgrp wheel

这将启动一个新的Shell,其组ID更改为wheel。如果要启动一个新的shell并杀死前一个shell,请使用

exec newgrp wheel

代替。

这是因为内核仍然具有与当前正在运行的进程关联的先前的组集。


如何在图形终端仿真器中运行?当我newgrp wheel以用户身份运行时,它要求输入一些密码。即使我输入root密码,它
也会显示

@ user4035我们是否有机会谈论具有NIS / LDAP之类的身份验证机制的网络环境?如果是这种情况,则可能是新的组关联尚未正确传播到客户端计算机。
Joseph R.

不,这是我的本地机器。我以用户身份登录,然后运行X Session,然后启动一个终端并在su此处运行以切换到root。我尝试运行“ newgrp wheel”,但它要求输入一些密码:bash-4.2$ newgrp wheel Password: root密码不起作用
user4035 2013年

@ user4035根据手册页,这将是用户的密码-而不是root的密码。这是合乎逻辑的,因为这基本上与新登录​​名相同。
Nils

2
请注意,此答案是不准确的,因为的效果newgrp wheel不是让“将用户添加到车轮组”生效,其效果是用户的主要GID发生了根本改变,例如,新创建的文件将具有新的GID。
雅库布·克林科夫斯基
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.