Linux 对目录授予用户读写权限的方法
一、传统权限管理:chmod 和 chown
1. 使用 chown
更改所有者和所属组
sudo chown user1:group1 /datasudo chown -R user1:group1 /data
# 如果需要子目录也更改,使用-R参数,递归更改
2. 使用 chmod
设置读写权限
Linux 权限包括读(r)、写(w)和执行(x),分别对应数字 4、2 和 1。权限可以通过数字或符号表示。
chmod 600 /data
# # 6 = 4 (读) + 2 (写),表示所有者具有读写权限。
# 第二个和第三个数字 0 表示组和其他用户无权限。chmod u+rw /data
# u:表示所有者(user)。
# +rw:添加读(r)和写(w)权限。chmod -R u+rw /data
# 同样可以递归
二、使用 ACL 进行细粒度权限管理
访问控制列表(ACL)可以对某个目录 给某个用户授权,而不用修改整个文件的所属用户。
# 安装 ACL 工具
sudo apt-get install acl# 修改/data目录的权限
sudo setfacl -m u:user2:rw /data# 查看 ACL 权限
getfacl /data# 递归应用到子目录和文件 (/data如果是软连接,要使用指向文件的路径)
setfacl -R -m u:user2:rw /data# 应用到新建的文件和目录。
setfacl -m d:u:user2:rw /data# 删除特定用户的ACL权限
setfacl -x u:user2 /data# 删除所有ACL权限
setfacl -b /data# 同时设置多个用户
setfacl -m u:bob:rw,u:charlie:rw /data/share
三、传统权限与 ACL 的对比
特性 | 传统权限 (chmod/chown) | ACL |
---|---|---|
权限分配对象 | 所有者、组、其他用户 | 任意用户或组 |
灵活性 | 较低 | 较高 |
复杂度 | 简单 | 稍复杂 |
适用场景 | 简单权限管理 | 复杂、多用户权限管理 |