Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I am running Ubuntu 10.04 server and am having some very counter-intuitive experiences with users/groups. For example:

sudo touch test_file                    # create empty file

sudo groupadd test                      # create 'test' group

sudo chown root:test test_file          # change group of file to 'test'

sudo chmod g+rwx test_file              # give write permissions to group

sudo usermod -a -G test {my-user}       # add my user to 'test' group

touch test_file                         # touch the file as my current user

The last line produces a permissions error.

I have ensured that my user is part of the 'test' group (groups {my-user} confirms this). The group of test_file is also definitely set to 'test' and the group permissions are set.

Why can't my user write to the file test file?

share|improve this question

4 Answers 4

up vote 12 down vote accepted

When adding a user to a new group, that won't be applied in any currently-running processes, only new ones. You need to log out and then log back in.

share|improve this answer
    
or hack su - username into your running console. you dont have to logout to login this way :) –  matthias krull Jul 27 '10 at 23:21

You can use the newgrp command to change the user's current group ID. From man newgrp:

The newgrp command is used to change the current group ID during a login session. If the optional - flag is given, the user's environment will be reinitialized as though the user had logged in, otherwise the current environment, including current working directory, remains unchanged.

share|improve this answer
1  
This also has the effect of replacing your current group. It's not always a good idea. –  Daenyth Jul 27 '10 at 23:09

Reboot the computer to make sure no stuck processes are preventing your user and groups from being enforced correctly during logout and login.

These steps should be giving your user of group test the write permission on test_file

sudo touch test_file 
sudo groupadd test
sudo chown root:test test_file
sudo chmod g+rwx test_file
sudo usermod -a -G test {my-user}

Reboot the computer or do an Operating System logout of your user. A terminal restart is not enough.

touch test_file

The user can write to the file because it is a part of the 'test' group and the group has permission rwx.

share|improve this answer
2  
There is no requirement that you must reboot the computer. –  Kevin Panko Nov 27 '13 at 16:50

Both logging out and rebooting server methods didn't work for me.

This method however is working for me: (reference to this answer)

chmod g+rwxs <parent folder>
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.