我最近在Xubuntu 12.04和14.04中发现了一个相当奇怪且出乎意料的行为。
我正在做以下事情:
使用
测试我的用户是否在组users
中
groups $USER
默认情况并非如此。所以我将我的用户添加到这个组:
sudo usermod -a -G users $USER
我可以查看文件/etc/group
,并会在条目中添加我的用户。
然后我想让群组用户访问一些文件,在我的例子中是www和cgi-bin目录:
sudo chgrp users /var/www /usr/lib/cgi-bin
我也希望我的小组可以写入目录:
sudo chmod g+w /var/www /usr/lib/cgi-bin
我认为,我现在可以在这些目录中创建一个文件,但我不能。既不是命令行,也不是Xubuntu的标准文件浏览器。
我读到的某个地方,我需要从终端注销才能使其工作,所以我关闭并重新打开命令行终端,但它现在仍在工作。
但是:我重新启动整个系统一切正常......
严重???为什么这样,它是一个错误还是一个功能,是否有更好的方法,然后重新启动完整的操作系统?
(我认为Linux的优势正是你不需要像其他人一样#34;流行的"操作系统一直重启
(注意:我还没有在其他系统上对此进行测试,例如Debian ......)
答案 0 :(得分:1)
组合成员资格从unixoid环境中的许多其他事物继承。这意味着正在运行的shell将不受到帐户配置中此类更改的影响。此外,只是打开一个新的终端或shell将不会显示更改,因为它是从已经运行的进程生成的,最终是从登录后立即启动的初始进程中生成的。
您必须重新运行登录过程。通过重新启动图形环境,或者在处理虚拟终端时执行注销/登录序列。显然,重新启动将导致新的登录过程。
唯一的直接选择是显式生成一个新的登录shell:bash -l
例如诀窍:它重新执行登录时运行的所有东西。但请注意,这只会影响启动shell和从中生成的进程。 不会影响其他已在运行的进程。所以你有一个混合的环境......