Need to reboot Xubuntu to make chgrp work?

那年仲夏 提交于 2019-12-12 01:44:41

问题


I recently noticed a fairly strange and for me unexpected behaviour in Xubuntu 12.04 and 14.04.

I was doing the following:

Testing if my user in in the group users, with

groups $USER

This is not the case by default. So I add my user to this group:

sudo usermod -a -G users $USER

I the can check the file /etc/group and will see my user added in the entry.

I then would like to give the group users access to some files, in my example the www and cgi-bin directory:

sudo chgrp users /var/www /usr/lib/cgi-bin

I also want that my group can write into the directories:

sudo chmod g+w /var/www /usr/lib/cgi-bin

I would assume, that I can now create a file in those directories, but I can't. Neither by commandline, nor by the standard filebrowser from Xubuntu.

Somewhere I read, that I need to logout from the terminal to make it work, so I close and reopen the commandline terminal, but it is still now working.

But: It I reboot the whole system everything works as it should...

Seriously??? Why is this, is it a bug or a feature and are there better ways then restarting the complete OS?

(I thought the strength of Linux is exactly that you don't need to reboot all the time like in other "popular" OS)

(Note: I have not tested this on other systems as e.g. Debian yet...)


回答1:


Group memberships are inherited from process to process like many other things in a unixoid environment. That means a running shell will not be affected from such changes in the account configuration. Also just opening a new terminal or shell will not show the change, since it is spawned from an already running process, ultimately from the initial process started right after the login.

You have to re-run the login process instead. Either by restarting the graphical environment, or by doing a logout/login sequence when working on the virtual terminals. Also obviously rebooting will lead to a new login process.

The only direct alternative is to spawn a new login shell explicitly: bash -l for example does the trick: it re-executes all stuff run through at login time. But note that this only effects that started shell and processes spawned from it. It does not affect other already running processes. So you have a somewhat mixed environment then...



来源:https://stackoverflow.com/questions/23493582/need-to-reboot-xubuntu-to-make-chgrp-work

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!