文件权限
ls -l
drwxr-xr-x 4 shyman shyman 4096 3月 14 22:05 .cargo
对于drwxr-xr-x,一共10个标记
第1位:文件类型
d 目录
- 文件
l 链接文件
b 块设备
第2,3,4位: 文件拥有者权限
2:w 可写
3:x 可执行
4:r 可读
第5,6,7位:文件拥有者同组用户的权限
同上
第8,9,10位:非文件拥有者且非同组用户的权限
同上
文件权限对目录与文件的区别
权限 | 文件 | 目录 |
---|---|---|
w | 对文件可编,可改,可增 | 增,删,改目录下的文件(不管该文件的权限是什么) (文件目录,名字,位置) |
x | 可被系统执行 | 是否可以进入该目录,成为工作目录(cd) |
r | 可读文件的实际内容 | 可以查询该目录下的文件名数据 即ls |
注意:要开放目录给任何人浏览时,应该至少也要给予r及x的权限,但是w是万万不可轻易给的。
一些特殊权限 SUID,SGID, SBIT
#SUID
限制:
1.SUID权限仅对可执行文件有效
2.执行者对于该可执行文件需要具有x权限
效果:
1.在执行过程中,调用者会暂时获得该文件的拥有者权限
2.该权限只在程序执行的过程中有效
3.用户权限的x位置变为s
#SGID
限制:
1.既可以作用于目录,也可以作用于可执行文件
2.执行者对于该可执行文件需要具有x权限
效果:
1.只要父目录有SGID权限,所有的子目录都会递归继承
2.在执行过程中,调用者会暂时获得该文件的所属组权限
3.组权限的x位置变为s
#SBIT
限制:
只针对目录有效
所有权限全开 rwxrwxrwt
效果:
当用户在该目录下建立文件或目录时,仅有自己与 root才有权力删除
任何人都可以在该目录内增加、修改文件(因为权限全是rwx) 如 /tmp
当t出现在其他用户的x权限位置时,表示其他用户具有SBIT的权限。
修改文件用户组
chgrp GROUP dir/file
chgrp -R GROUP dir #目录下的文件拥有组都改成GROUP
修改文件用户
chown [-R] USER dir/file
chown [-R] USER:GROUP dir/file
修改文件权限
chmod [-R] sxyz file/dir
#
s 为特殊权限 不用时可忽略
xyz 分别为用户,用户组,其他的权限数加和
#
chmod [-R] u+x g+r o+w file/dir
chmod [-R] a-x file/dir #全部取消可执行权限
其中,权限数:
r:4 suid:4
w:2 sgid:2
x:1 sbit:1