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 命令的详细信息,包括各种选项和参数的解释,以及它们如何影响命令的行为.

posted on   代码你敲我不敲  阅读(55)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本

导航

统计

返回顶端
点击右上角即可分享
微信分享提示