【Linux学习笔记】之【文件目录权限与文件系统属性管理命令】
程序员文章站
2022-06-19 16:54:26
...
文件目录权限管理命令
chmod
更改文件权限。
chmod +w,g+rwx,o-rwx 1.txt
# g:文件属组 o:其他用户 a:所有用户
chmod +730 1.txt
# 4:读 2:写 1:执行
# 特殊权限:
chmod 4755 files
# 赋予 SUID(u+s) 权限(二进制文件)
# 执行者对于该程序需要具有x的可执行权限;
# 本权限仅在执行程序过程中有效;
# 执行者将具有该程序所有者的权限;
# 通俗讲就是给他所有者的执行权限
chmod 2755 files
# 赋予 SGID(g+s) 权限(都可以)
# 如果针对文件:
# 只有可执行的二进制程序才能设置 SGID 权限;
# 命令执行者要对该程序拥有 x(执行)权限;
# 命令执行在执行程序的时候,组身份升级为该程序文件的属组;
# SetGID权限同样只在该程序执行过程中有效,也就是组身份改变只在程序执行过程中有效。
# 如果 SGID 针对目录:
# 普通用户必须对此目录拥有 r 和 x 权限,才能进入此目录
# 普通用户在此目录中的有效组会变成此目录的属组
# 若普通用户对此目录拥有 w 权限时,新建的文件的默认属组是这个目录的属组
chmod 1755 files
# 赋予 SBIT(o+t) 权限(目录)
# 当用户对于此目录具有 w, x 权限时;
# 当用户在该目录下创建文件或目录时,仅有自己与root 才有权利删除该文件;
# 通俗讲就是不允许别人删除
chown
更改文件所有者。
chown stu1 1.txt
# 修改文件所有者为stu1
chown :groupA 1.txt
# 更改其所属组为groupA
chown stu1:groupA 1.txt
# 同时修改其所有者与所属组
setfacl
ACL权限管理。
setfacl -m u:stu1:rwx /mnt/test
# 给 test 目录赋予 stu1 读写执行的 ACL 权限
setfacl -m u:stu1:rx -R /mnt/test
# 赋予递归 ACL 权限,只能赋予目录
setfacl -m d:u:aa:rwx -R /mnt/test
# ACL 默认权限,只能赋予目录,用于新建目录添加子目录后生成默认ACL
setfacl -x u:stu1 /mnt/test
# 删除指定用户和用户组的 ACL 权限
setfacl -b /mnt/test
# 删除文件的所有的 ACL 权限
getfacl
查看文件ACL权限。
getfacl a.txt
# 查看文件acl
文件系统属性
chattr
更改文件属性。
chattr [±=] [选项] 文件或目录名
chattr +i 1.txt
# i: 如果对文件设置 i 属性,那么不允许对文件进行删除、改名,也不能添加和修改数据;如果对目录设置 i 属性,那么只能修改目录下文件的数据,但不允许建立和删除文件。
# a: 如果对目录设置 a 属性,那么只允许在目录中建立和修改文件,但是不允许删除。
# e:Linux 中绝大多数的文件都默认拥有 e 属性。表示该文件是使用 ext 文件系统进行存储的,而且不能使用“chattr -e”命令取消 e 属性。
lsattr 文件属性
lsattr 选项 文件名
lsattr 1.txt
# 查看其文件系统属性
# -a 显示所有文件和目录
# -d 若目标是目录,仅列出目录本身的属性,而不是子文件的
下一篇: Java新手入门的30个基本概念三