当前位置: 首页>>技术教程>>正文


permissions – 允许组对目录进行读写访问

问题描述

我有两个用户,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

如果需要,chgrpchmod 命令中有选项可以递归到目录中。

次佳办法

我自己在这方面的经验在这里。在 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

Original how-to

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/13461.html,未经允许,请勿转载。