linux文件权限
文件访问控制列表(ACL)
getfacl
getfacl 命令来获取文件访问控制列表(ACLs)。
Usage: getfacl [-aceEsRLPtpndvh] file ...:这是 getfacl 命令的基本使用方法,它显示了可以使用的选项和参数。
选项解释
-a, --access:仅显示文件的访问控制列表。
[root@server opt]# getfacl -a mmmmmmm
# file: mmmmmmm
# owner: root
# group: root
user::rw-
group::r--
other::r--
-d, --default:仅显示默认的访问控制列表。
[root@server opt]# getfacl -d mmmmmmm
# file: mmmmmmm
# owner: root
# group: root
-c, --omit-header:不显示注释标题。
[root@server opt]# getfacl -c mmmmmmm
user::rw-
group::r--
other::r--
-e, --all-effective:打印所有有效的权限。
[root@server opt]# getfacl -e mmmmmmm
# file: mmmmmmm
# owner: root
# group: root
user::rw-
group::r--
other::r--
-E, --no-effective:不打印任何有效权限。
[root@server opt]# getfacl -E .
# file: .
# owner: root
# group: root
user::rwx
group::rwx
other::rwx
-s, --skip-base:跳过只有基本条目的文件。
[root@server opt]# getfacl -sR /opt
getfacl: Removing leading '/' from absolute path names
# file: opt/setfacl
# owner: root
# group: root
user::rwx
user:sum:rwx
group::r-x
mask::rwx
other::r-x
-R, --recursive:递归进入子目录。
[root@server opt]# getfacl -R .
# file: .
# owner: root
# group: root
user::rwx
group::rwx
other::rwx
# file: rh
# owner: root
# group: root
user::rwx
group::rwx
other::rwx
# file: testfile
# owner: root
# group: root
user::rw-
group::r--
other::r--
# file: mmmmmmm
# owner: root
# group: root
user::rw-
group::r--
other::r--
-L, --logical:逻辑遍历,跟随符号链接。(也称为软链接)
[root@server opt]# getfacl -L lianxi
# file: lianxi
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
# file: lianxi/test.txt
# owner: root
# group: root
user::rwx
group::-w-
other::-w-
-P, --physical:物理遍历,不跟随符号链接。(符号链接也称为软链接)
[root@server opt]# getfacl -P lianxi/
# file: lianxi/
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
-t, --tabular:使用表格输出格式。
[root@server opt]# getfacl -t lianxi/
# file: lianxi/
USER root rwx
GROUP root r-x
other r-x
-n, --numeric:打印数字用户/组标识符。
[root@server opt]# getfacl -n lianxi/
# file: lianxi/
# owner: 0
# group: 0
user::rwx
group::r-x
other::r-x
-p, --absolute-names:不删除路径中的前导'/'。
[root@server opt]# getfacl -p /opt/lianxi/
# file: /opt/lianxi/
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
-v, --version:打印版本信息并退出。
[root@server opt]# getfacl -v
getfacl 2.2.51
-h, --help:显示此帮助文本。
[root@server opt]# getfacl -h
getfacl 2.2.51 -- get file access control lists
Usage: getfacl [-aceEsRLPtpndvh] file ...
-a, --access display the file access control list only
-d, --default display the default access control list only
-c, --omit-header do not display the comment header
-e, --all-effective print all effective rights
-E, --no-effective print no effective rights
-s, --skip-base skip files that only have the base entries
-R, --recursive recurse into subdirectories
-L, --logical logical walk, follow symbolic links
-P, --physical physical walk, do not follow symbolic links
-t, --tabular use tabular output format
-n, --numeric print numeric user/group identifiers
-p, --absolute-names don't strip leading '/' in pathnames
-v, --version print version and exit
-h, --help this help text
setfacl
setfacl(Set file access control lists)是一种在Linux系统中设置文件访问控制列表(Linux ACL(Access Control Lists)是一种权限控制机制,用于在文件和目录级别上设置访问控制。它提供了一种更灵活和精细的权限管理方式,可以针对不同的用户、用户组或特定的文件进行访问权限的配置。)
setfacl命令用于设置文件的ACL规则。它允许用户在文件或目录上定义不同用户或组的访问权限。以下是setfacl命令的一些常见用法:
显示当前文件的ACL规则:
getfacl filename
添加或删除ACL条目:
setfacl -m u:username:rwx filename # 添加读取、写入和执行权限给用户username
setfacl -m g:groupname:rwx filename # 添加读取、写入和执行权限给组groupname
setfacl -x u:username filename # 删除用户username的ACL条目
setfacl -x g:groupname filename # 删除组groupname的ACL条目
设置默认ACL:
bash
setfacl -d u:username:rwx filename # 设置用户username的默认ACL权限为读取、写入和执行
setfacl -d g:groupname:rwx filename # 设置组groupname的默认ACL权限为读取、写入和执行
设置继承性ACL:
setfacl -R u:username:rwx directory # 将目录及其子目录和文件的所有ACL权限赋予用户username
setfacl -R g:groupname:rwx directory # 将目录及其子目录和文件的所有ACL权限赋予组groupname
这些命令可以帮助您在Linux系统中使用setfacl工具来设置文件的ACL规则,以实现更精细的权限控制。
setfacl的选项
setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ...:这是 setfacl 命令的基本使用方法,它显示了可以使用的选项和参数。
选项解释
-m, --modify=acl:修改指定文件的当前ACL。
setfacl -m u:username:rwx filename
#上面的命令会给用户 username 在 filename 文件上的读、写和执行权限。
实践:
[root@server opt]# setfacl -m u:sum:rwx setfacl/
-M, --modify-file=file:从一个文件中读取ACL条目来进行修改。
[root@server opt]# setfacl -M u::r,u:sum:r,o::w setfacl/
setfacl: u::r,u:sum:r,o::w: No such file or directory
-x, --remove=acl:从指定文件的ACL中移除条目。
[root@server opt]# setfacl -x -m u:hum:rwx setfacl/
setfacl: Option -x: Invalid argument near character 1
错误消息“setfacl: Option -x: Invalid argument near character 1”表明 setfacl 命令无法识别 -x 选项。这可能是因为你的 setfacl 版本不支持 -x 选项,或者该选项的使用方式不正确。
-X, --remove-file=file:从一个文件中读取ACL条目来进行移除。
-b, --remove-all:移除所有扩展的ACL条目。
-k, --remove-default:移除默认的ACL。
--set=acl:设置指定文件的ACL,替换当前的ACL。
--set-file=file:从一个文件中读取ACL条目来进行设置。
--mask:重新计算有效的权限掩码。
-n, --no-mask:不重新计算有效的权限掩码。
-d, --default:操作应用于默认的ACL。
-R, --recursive:递归地应用于子目录。
-L, --logical:逻辑遍历,跟随符号链接。
-P, --physical:物理遍历,不跟随符号链接。
--restore=file:恢复ACLs(与 getfacl -R 的逆操作)。
--test:测试模式(ACLs不会被修改)。
-v, --version:打印版本信息并退出。
-h, --help:显示此帮助文本。
这个帮助文档为用户提供了关于如何使用 setfacl 命令的详细信息,包括各种选项和参数的解释,以及它们如何影响命令的行为.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本