80

I have two users, user1 and user2, that are both members of groupA. user2 has a folder in their home directory called folderA. If they wish to allow read-write-execute permissions for all members of groupA, how would they do this?

What if folderA contains many files and additional folders that also need to have read-write-execute permission?

Information regarding groups is a little 'spotty' across the web, so I am putting my question here in the hope someone posts a clear answer that might help others out too.

Thanks!

2 Answers 2

115

FolderA will first need to be part of groupA - the folder's owner or root can perform this operation

chgrp groupA ./folderA

Then groupA will need rwx permissions of the folder

chmod g+rwx  ./folderA

There are options in the chgrp and chmod commands to recurse into the directory if required.

8
  • 1
    note: you should make sure that you can access intermediate directories too (+x might be enough).
    – jfs
    Aug 2, 2016 at 9:55
  • 1
    I originally tried chown :groupname ./folder and that didnt work - as in it changed the group, but didn't give any effective permissions
    – user230910
    Nov 17, 2019 at 21:03
  • didn't worked for me also. Folder somehow can not give write permissions to a group. Whatever I have tried.
    – Gediminas
    May 21, 2020 at 7:04
  • 1
    This did not work for me.
    – Scorb
    Nov 22, 2020 at 23:12
  • 1
    @pbhj That has not been my experience, although I will admit to not having great depth of experience. I do need to logout/in if I have altered the user or group - the login does not pickup altered permissions until the next login. But altered file and directory permissions work immediately for me. Sep 12, 2022 at 14:45
10

My own experience in this area here. Tested on Ubuntu 18.04.

Allow to write in the system folder

Give write permission to /etc/nginx/ folder.

# Check 'webmasters' group doen't exist
cat /etc/group | grep webmasters
# Create 'webmasters' group
sudo addgroup webmasters
# Add users to 'webmasters' group
sudo usermod -a -G webmasters username
sudo usermod -a -G webmasters vozman
sudo usermod -a -G webmasters romanroskach

# Group assignment changes won't take effect
# until the users log out and back in.

# Create directory
sudo mkdir /etc/nginx/
# Check directory permissions
ls -al /etc | grep nginx
drwxr-xr-x   2 root root     4096 Dec  5 18:30 nginx

# Change group owner of the directory
sudo chgrp -R webmasters /etc/nginx/
# Check that the group owner is changed
ls -al /etc | grep nginx
drwxr-xr-x   2 root webmasters   4096 Dec  5 18:30 nginx

# Give write permission to the group
sudo chmod -R g+w /etc/nginx/
# Check
ls -al /etc | grep nginx
drwxrwxr-x   2 root webmasters   4096 Dec  5 18:30 nginx

# Try to create file
sudo -u username touch /etc/nginx/test.txt  # should work
sudo -u username touch /etc/test.txt  # Permission denied

Give write permission to /etc/systemd/system/ folder.

# List ACLs
getfacl /etc/systemd/system

getfacl: Removing leading '/' from absolute path names
# file: etc/systemd/system
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

# Add 'webmasters' group to an ACL
sudo setfacl -m g:webmasters:rwx /etc/systemd/system

# Check
getfacl /etc/systemd/system

getfacl: Removing leading '/' from absolute path names
# file: etc/systemd/system
# owner: root
# group: root
user::rwx
group::r-x
group:webmasters:rwx
mask::rwx
other::r-x

sudo -u username touch /etc/systemd/system/test.txt  # should work
sudo -u username touch /etc/systemd/test.txt  # Permission denied

Original how-to.

2
  • Works great! Thank You!
    – Aleksandar
    Dec 11, 2019 at 10:18
  • Do you use php-fpm with that workflow? With which user? www-data or webmasters
    – Bouffe
    Jul 19, 2020 at 6:07

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