问题描述
我有两个用户,user1 和 user2,他们都是 groupA 的成员。 user2 在其主目录中有一个名为 folderA 的文件夹。如果他们希望为 groupA 的所有成员授予 read-write-execute 权限,他们会怎么做?
如果 folderA 包含许多文件和其他文件夹也需要具有 read-write-execute 权限怎么办?
关于群组的信息在网络上很少见 ‘spotty’,所以我把我的问题放在这里,希望有人发布一个明确的答案,这也可能对其他人有所帮助。
谢谢!
最佳办法
FolderA 首先需要成为 groupA 的一部分 – 文件夹的所有者或根可以执行此操作
chgrp groupA ./folderA
然后 groupA 将需要文件夹的 rwx 权限
chmod g+rwx ./folderA
如果需要,chgrp
和 chmod
命令中有选项可以递归到目录中。
次佳办法
我自己在这方面的经验在这里。在 Ubuntu 18.04 上测试。
允许写入系统文件夹
授予对 /etc/nginx/
文件夹的写入权限。
# 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
授予对 /etc/systemd/system/
文件夹的写入权限。
# 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