ctr*_*lor 20 linux filesystems permissions gnu
在 Unix 上,很久以前,我了解到chmod:在 Unix 上设置权限的传统方法(并允许程序获得权限,使用 setuid、setgid)。
我最近在 GNU/Linux 上发现了一些较新的命令:
setfacl扩展了传统的ugo:rwx位和t位chmod。setcap给出比多个鳍状晶粒控制ug:s的位chmod。chattr 允许文件的一些其他控件(有点混合)。还有其他人吗?
Tho*_*man 30
chmod: 更改文件模式位用法(八进制模式):
chmod <octal-mode> files...
Run Code Online (Sandbox Code Playgroud)
用法(符号模式):
chmod <references><operator><modes> files..
Run Code Online (Sandbox Code Playgroud)
references是字母的组合ugoa,指定哪个用户对 的访问files将被修改:
u 拥有它的用户 gfile的组中的其他用户o 不在文件组中的其他用户a 全部用户
如果省略,则默认为所有用户,但只umask修改允许的权限。
operator是字符之一+-=:
+ 将指定的文件模式位添加到每个文件的现有文件模式位 file- 将指定的文件模式位删除到每个文件的现有文件模式位 file=除非明确指定,否则添加指定的位并删除未指定的位,除了为目录设置的setuid和setgid位。mode由字母组合组成rwxXst,用于指定要修改的权限位:
r 读 w 写 x 执行(或搜索目录)X 仅当文件是目录或已经为某些用户设置了执行位时才执行/搜索ssetuid 或 setgid(取决于指定references)t 受限删除标志或粘滞位或者,mode可以由字母 之一组成ugo,在这种情况下,模式对应于当前授予所有者 ( u)、file组成员 ( g) 或上述任一类别 ( o) 中的用户的权限。
chmod解释的各种位:setfacl)
rwx — 读 (r)、写 (w) 和执行/交叉 (x) 权限。
#!)和其他可执行文件。s和t- 粘滞位 (t) 和目录上的 setgid (s)
s — 可执行文件上的 setuid、setgid。
setcap更现代的方法来做到这一点。chown chgrp:chattr: 更改文件属性用法:
chattr <operator><attribute> files...
Run Code Online (Sandbox Code Playgroud)
operator是以下字符之一+-=: *+将选定的属性添加到现有attributes的files
*-删除选定的attributes
*=用指定的文件覆盖当前的一组属性attributes。
attribute是字母的组合acdeijstuADST,对应于属性:
a 仅附加 c 压缩的d 没有转储e 范围格式i 不可变的j 数据日志s 安全删除t 没有尾部合并u 不可删除的A没有atime更新D 同步目录更新S 同步更新T 目录层次结构的顶部setfattr: 更改扩展文件属性用法(设置属性):
setfattr -n <name> -v <value> files...
Run Code Online (Sandbox Code Playgroud)
用法(删除):
setfattr -x <name> files...
Run Code Online (Sandbox Code Playgroud)
name 是要设置或删除的扩展属性的名称
value 是扩展属性的新值
setfacl: 更改文件访问控制列表用法:
setfacl <option> [default:][<target>:][<param>][:<perms>] files...
Run Code Online (Sandbox Code Playgroud)
option 必须包括以下内容之一:
--set 设置文件或目录的ACL,替换之前的ACL-m| --modify修改文件或目录的ACL-x| --remove 删除文件或目录的 ACL 条目
target是字母之一ugmo(或如下所示的较长形式):
u,users由 标识的命名用户的权限,如果省略param,则默认为文件所有者uid
g,group由 标识的命名组的权限,如果省略则param默认为拥有组uidm,mask有效权限掩码o,other其他人的权限
perms是字母的组合rwxX,对应于权限:
r 读
w 写x 执行X 仅当文件是目录或已对某些用户具有执行权限时才执行
或者,perms可以是一个八进制数字 ( 0- 7),表示权限集。
setcap: 更改文件功能用法:
setcap <capability-clause> file
Run Code Online (Sandbox Code Playgroud)
Acapability-clause由逗号分隔的功能名称列表组成,后跟操作符-标志对列表。
可用的运算符是=,+和-。可用标志是e,i并且p对应于Effective、Inheritable和Permitted能力集。
该=运营商将提高特定功能集和重置等。如果没有与=操作员一起给出标志,则所有能力集将被重置。在+和-运营商将分别升高或降低一个或多个指定的功能集。
chcon: 更改文件SELinux 安全上下文用法:
chcon [-u <user>] [-r <role>] [-t <type>] files...
Run Code Online (Sandbox Code Playgroud)
user是 SELinux 用户,例如user_u,system_u或root。
role是 SELinux 角色(始终object_r用于文件)
type是 SELinux 主题类型
chsmack: 更改SMACK扩展属性用法:
chsmack -a <value> file
Run Code Online (Sandbox Code Playgroud)
value是要为SMACK64扩展文件属性设置的 SMACK 标签
richacl s 是一个功能,将添加更高级的 ACL。
目前正在进行中,所以我不能告诉你太多关于它们的信息。我没有使用过它们。
另请参阅此问题是否有比传统的“rwx”和 POSIX ACL 更高级的文件系统 ACL? 和手册页