Linux 文件权限总结
作者:互联网
【以上参数详细解释】
— — — — — — — — — — . 1 所属者 所属组 大小 时间 文件名
文件类型 所属者权限 所属组权限 其它权限 . 硬连接数 所属者 所属组 大小 时间 文件名
(文件类型:- 普通文件 d 目录文件 b 块设备 c 字符设备 | 符号链接文件 p 管道文件pipe s 套接字文件socket)
1、Linux的文件和目录的权限,只有rwx三种:
r(Read,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。
w(Write,写入):对文件而言,具有新增,修改,删除文件内容的权限;对目录来说,具有新建,删除,修改,移动目录内文件的权限。
x(eXecute,执行):对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。
1、目录的只读访问不允许使用cd进入目录,必须要有执行的权限才能进入。
2、只有执行权限只能进入目录,不能看到目录下的内容,要想看到目录下的文件名和目录名,需要可读权限。
3、一个文件能不能被删除,主要看该文件所在的目录对用户是否具有写权限,如果目录对用户没有写权限,则该目录下的所有文件都不能被删除,文件所有者除外
4、目录的w位不设置,即使你拥有目录中某文件的w权限也不能写该文件
2、文件所有分为:u(user所属者)、g(group所属组)、o(other其它)、a(all所有)=u+g+o
(模式法)权限分为:r(读) w(写) r(执行)
(数字法)权限分为:4(读) 2(写) 1(执行)
(二进制)权限分为:100(读) 010(写) 001(执行)
3、优先级
一般情况:所属者>所属组>其它 (3个权限只有一个有效,判断一个权限满足后不会再判断后面的权限)
ACL情况:所属者>ACL权限.用户>所属组>ACL权限.组>其它 (只要满足一个就不会往下判断)
4、文件和目录的读写执行权限的区别:
目录的读权限:可以列出文件名,但无法查看文件内容。
目录的写权限:创建和删除文件。创建和删除由目录的权限决定,与文件权限无关
目录的执行权限:可以进入目录,访问目录的文件内容。没有执行权限基本上是对这个目录没有访问权限
5、特殊权限
5.1 SUID:— — — s — — — — — — . 1 所属者 所属组 大小 时间 文件名
运行shell命令(二进制程序,如:passwd)时,普通用户临时转变身份继承程序所属者权限
s=S+x。单独只有 SUID 权限时显示为大写S,s要配合x使用。
SUID一般不用自己修改(慎改),由系统默认。
数字法:4700,单独算是数字4 如:chmod 4700 /etc/passwd或chmod u+s /etc/passwd
5.2 SGID:— — — — — — s — — — . 1 所属者 所属组 大小 时间 文件名
5.2.1 运行shell命令(二进制程序)时,普通用户临时转变身份继承程序所属组权限
属于该用户组的所有用户都继承s权限
s=S+x。单独只有 SGID 权限时显示为大写S,s要配合x使用。
SGID一般不用自己修改(慎改),由系统默认。
数字法:2755,单独算是数字2 如:chmod 2755 /bin/cat或chmod g+s /bin/cat
5.2.2 作用于目录
多个用户同时对一个目录所有文件(不同用户的文件)读写执行
chmod g+s 目录名 :目录下的新创建的所有文件都会继承目录的所属组
chmod 2770 目录名 :目录下的新创建的所有文件都会继承目录的所属组
5.3 STID:— — — — — — — — — t . 1 所属者 所属组 大小 时间 文件名
作用于目录,粘滞位:目录里的文件要修改和删除,必须所属者才能删除。root除外
目录下所有文件都继承t权限
t=T+x。单独只有 Sticky 权限时显示为大写T,t要配合x使用。
Sticky一般不用自己修改(慎改),由系统默认。
数字法:1777,单独算是数字1 如:chmod 1777 /root/test或chmod o+t /root/test
6、针对root的特殊权限(一般的root有最高文件权限,常用的权限无法限制root)
6.1 chattr +i 文件(目录): 限制任何账号(包括root)对文件和目录读写执行
6.2 chattr +a 文件(目录): 只允许对文件追加内容
6.3 lsattr 文件(目录):显示文件特定属性
7、umask 功能:将777|666中对应的权限去掉(掩藏),得出默认权限 (mask:掩码)
创建文件的权限是666-umask=644(rw_ r__ r__) 相减后有奇数位需要加一 ,偶数不变 (理解:掩)
创建目录的权限是777-umask=755(rwx r_x r_x) 直接减适用于目录
8、ACL访问控制列表。access control list :实现灵活的权限管理 (一般情况如:临时给test用户读写执行权限,时间到回收。在windows等操作系统上也有ACL的用法)
8.1 setfacl -m u:test:w b.txt 为用户test添加b.txt的写权限,设置ACL有+标识 ( — — — — — — — — — — + . 1 所属者 所属组 大小 时间 文件名 )
setfacl -m g:admin:w b.txt 为用户组 admin 添加b.txt的写权限
注意:acl没有 o(other 其它)权限的设置
8.2 setfacl -b 1.txt :删除(回收)1.txt的所有acl权限
8.3 ACL中的mask:限制ACL中的成员,不允许超过mask的权限(mask为上限)
setfacl -m mask:rw b.txt 设置b.txx的acl中mask为rw
setfacl -m u:test:rwx b.txt 设置用户test对b.txt的acl权限为rwx (实验:先设置 mask 在设置 test 权限,mask 不响应)
setfacl -m mask:rw b.txt 设置b.txx的acl中mask为rw (mask 最后设置,才会对 test 权限生效)
【小技巧】:同时有多个文件需要设置一样的权限。第一步设置好 B文件 的 acl,第二步备份 C文件 的 acl,第三步设置 C文件 --set-file= b.txt.acl c.txt
ACL 备份:getfacl -R b.txt > b.txt.acl
ACL 恢复:setfacl -R --set-file= b.txt.acl c.txt
标签:总结,文件,txt,mask,Linux,权限,所属,目录 来源: https://www.cnblogs.com/leihongnu/p/12837307.html