将用户添加到新组后是否需要重新启动以刷新权限?


26

在ubuntu服务器上,我已经不止一次注意到,将用户添加到组后,该用户直到重新启动系统后才具有组权限。例如:

用户'hudson'需要读取目录'root:shadow / etc / shadow'的权限,因此我将hudson添加到影子组中。哈德森仍然无法阅读。因此,我“ sudo shutdown -h -r now”,当系统再次启动时,用户hudson可以读取。

将用户添加到组后,是否需要重新启动或有更好的方法来获取权限?


为了将来参考,我在下面添加了一个实际的解决方案。我很惊讶这是一个问题。希望能有所帮助。
TryTryAgain 2012年

Answers:


25

我在寻找解决方案,遇到了这篇文章,后来发现了!

我以为我会提供解决方案,以便其他人可以从中受益。登录和注销是如此,1995年。

取自:

https://arkaitzj.wordpress.com/2010/03/08/linux-add-user-to-a-group-without-logout/

因此,如果您需要获得该cdrom组的权限,则可以将用户添加到:

newgrp cdrom 

例如

因此,步骤将是:

#adduser my_user cdrom

然后

$newgrp cdrom

我已经确认可以使用。

$groups从CLI进行的简单检查显示该用户在组中。快速执行该组所需的特权即可。

无需杀死Windows并登录和注销!希望对别人有帮助!

其他信息(基于jytou的有用评论):“ [此]解决方案仅适用于当前打开的外壳。如果打开了另一个外壳,则需要使用相同的命令来考虑更改。”


1
太好了,它确实有效!!!:D
dadexix86

3
请注意,TryTryAgain的解决方案仅适用于当前打开的外壳。如果您打开了另一个外壳程序,则需要使用相同的命令来考虑更改。
jytou 2012年

无论如何,对于正在运行的X会话,要这样做吗?
artfulrobot

@artfulrobot对不起,我不确定您的意思。您可能想提出一个新问题,并参考此帖子和解决方案以获取最佳帮助。
TryTryAgain 2013年

19

将用户添加到新组时,该用户必须注销并重新登录,以使其生效。虽然重新启动可以完成此任务,但不需要这样做。


安装软件包时,如何注销由aptitude创建的用户?
Michael Prescott 2010年

哪个软件包可以创建hudson用户?
womble

正如Justin回答的那样,请尝试停止并启动该服务。
Scott Pack 2010年

这就是我的工作。只需注销并重新登录。
特伦特·斯科特

谢天谢地,您实际上不需要注销并重新登录。我在下面提供了一个可行的解决方案。经过测试,很高兴!
TryTryAgain 2012年

8

将用户添加到组不会影响当前登录的用户。

对于守护程序,您需要重新启动它以应用新组。

此外,使用守护程序本身中的选项重新启动守护程序将不起作用,因为它将继承当前环境。

使它正常工作最简单的方法是完全停止守护程序,然后再次启动它,如:

/etc/init.d/foo stop ; /etc/init.d/foo start

4

这更加容易,您可以通过键入以下命令检查当前的访问级别:

id

重新加载组,您只需要:

su - $USER

之后,再次检查访问级别:

id

您会看到新的群组现在处于活动状态。


1

这里有一个不同的故障模式,也应该在这里解决。

如果管理员已更新/etc/group但更新失败/etc/gshadow(在具有此设置的系统上),则注销并重新登录实际上不会将您分配给新组。

令人困惑的是,groups会告诉你真正的,目前的情况,而id将错误地打印输出,表明你正确的组的成员。

tripleee@vbvntv$ groups
tripleee

tripleee@vbvntv$ id
uid=1234(tripleee) gid=1234(tripleee) groups=1234(tripleee),4(adm)

tripleee@vbvntv$ ls -l /var/log/mail.log
-rw-r----- 1 root adm 15728 May 26 14:26 /var/log/mail.log

tripleee@vbvntv$ tail /var/log/mail.log
tail: cannot open `/var/log/mail.log' for reading: Permission denied

我无法使用,newgrp因为它要求输入密码,而且我没有密码,只有SSH公钥身份验证。

解决的办法是让管理员还原的手动编辑,/etc/groups然后使用再次进行sudo gpasswd -a tripleee adm;或者,用于grpconv合并更改(我从/server//a/389719/98333拾取了这些更改)


实际上,事实证明,真正的问题是我正在重用SSH主会话。通过删除ControlPath套接字并再次登录来断开连接,可以解决此问题。
三胞胎
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.