文件属性的第一列,由10个字符组成,第1个字符是文件类型,之后9个字符每3个为1组,每组里的字符代表权限。
这3组称之为ugo权限,就是划分文件对应所属分组的权限。
u: --user 文件的所有者
g: --group 文件的所属组
o: --other 其他用户
权限的分类
r: --read 读权限,数字表示为4
w: --write 写权限,数字表示为2
x: --execute 执行权限,数字表示为1
示例:ll -h /etc/passwd
-rw-r--r-- 1 root root 1.6K Aug 3 11:15 /etc/passwd
该文件的所有者所属组都是root,所有者权限为rw,读写,属组和其他用户均为r,只读权限。
chmod -- 修改或者设置文件的权限
# 语法,chmod可以使用数字或字母两种方式给文件授权
chmod 选项 文件
# 数字方式授权
chmod 777 passwd
# 字母方式授权,可以同时做多个授权,用 , 号分隔
chmod o=r passwd
chmod go+rw passwd
# 取消权限 -
chmod g-w passwd
chown -- 修改文件的所有者和所属组
# 语法
chown [-R] user[.group] 文件或目录
# 示例,同时修改passwd的所有者为priv2,属组为priv1
chown priv2.priv1 passwd
# 递归修改目录的所有者和所属组,会同时作用于目录里面的文件及目录
chown -R priv3.priv4 /priv/
特殊权限
suid:作用于可执行命令,当用户执行该命令时,会临时获得这个命令的所有者的权限。在u位上用s表示。
sgid:作用于可执行命令,当执行该命令时,会临时获得这个命令所属组的权限,sgid也可以作用于目录,那么其他用户在该目录下创建的文件的所属组会继承该目录的所属组。在g位上用s表示。
sticky:一般作用于所有人都有全部权限的目录上,用来限制用户只能删除自己的文件,不能够删除其他用户的文件。在o位上用t表示。
注:添加suid、sgid、sticky权限时,如果原来相应的位置上没有x权限,那么小写的s或者t会变成大写的S或者T。
# suid 使用 4 开头后3位正常授权
chmod 4757 1.txt # 实际权限表示:-rwsr-xrwx
# sgid 使用 2 开头后3位正常授权
chmod 2755 1.txt # 实际权限表示:-rwxr-sr-x
# sticky 使用 1 开头后3位正常授权
chmod 1777 1.txt # 实际权限表示:-rwxrwxrwt
# 使用字母方式授权
chmod u+s,g+s,o+t 1.txt # 实际权限表示:-rwsrwsrwt
ACL权限
ACL主要是针对单一用户、单一文件或者目录对rwx权限进行细分。可以针对用户、群组还有umask进行设置。
# 设置ACL权限使用 setfacl 命令,对目录设置默认ACL权限,在目录内创建的文件会继承目录的ACL权限
# 语法
setfacl 选项 u|o:用户名|组:权限 文件名
# 选项
-m # 设置acl权限,示例,给用户tom该文件rwx权限:setfacl -m u:tom:rwx test.txt
-x # 移除单个用户的acl权限,示例:setfacl -x u:tom test.txt
-b # 移除全部用户的acl权限,示例:setfacl -b test.txt
# 查看acl权限使用 getfacl 命令
getfacl test.txt
chattr -- 改变文件属性(使其不能删除和修改,对root也生效)
# 选项有多个,一般常用的是i和a,只要使用了chattr命令添加了权限,root用户也不能删除该文件,会报错不允许的操作
# 添加i权限则该文件完全不能修改,添加a权限则该文件只能追加内容不能修改(一般适用于日志文件)
# 示例
chattr +a passwd
chattr +i passwd
# 查看该权限只能使用 lsattr 命令,使用ls -l并不能查看到该权限。
chattr +a 1.txt
lsattr 1.txt # 结果:-----a-------e-- 1.txt
# 去除权限
chattr -a passwd
chattr -i passwd
标签:文件,txt,--,chmod,passwd,Linux,权限
From: https://www.cnblogs.com/tandabao/p/17009772.html