Ubuntu 文件的归属身份有四种:
u - 拥有文件的用户所有者
g - 所有者所在的组群
o - 其他人不是所有者或所有者的组群
a - 每个人或全部
1. 查看文件/文件夹权限
ls -l filename # 查看文件权限 ls -ld folder # 查看文件夹权限
输出结果如:
drwxrwxrwx
d
- 文件夹(-
- 文件, l
- 链接)
rwx
- r读/w写/x执行
九位字母,依次每三个为一组,依次分别为 User、Group、Other的权限.
r=4,w=2,x=1. 如,rwx - 4+2+1=7; rw- - 4+2=6; r-x - 4+1=5.
常用的文件权限:
444 r--r--r-- 600 drw------- 644 drw-r--r-- 666 drw-rw-rw- 700 drwx------ 744 drwxr--r-- 755 drwxr-xr-x 777 drwxrwxrwx
owner/group/others)各自的权限
分数是需要累加的,如,当权限为 -rwxrwx--- 即:
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= --- = 0+0+0 = 0
2. 修改权限 chmod
chmod [-R] 权限 filename/folder
-R
表示递归
变更目录及子目录和文件的权限.
如:
chmod -R 777 filename
另一种修改权限的方法是:
chmod [u/g/o/a] [+加入/-减去/=设定] [r/w/x] filename/folder
3 修改文件的用户名/用户组
chown [-R] 用户名:用户组名 filename/folders
-R
- 递归修改路径下所有子路径和文件的用户组.
如:
chown -R root:root /data/
4.查看所有用户组
$cat /etc/group
ssl-cert:x:110:postgres
最前面一个字段ssl-cert是用户组名,最后一个字段postgres是用户名
5.查看所有用户
$sudo cat /etc/shadow
postgres:$6$m8anDHdE$FDY4j0CdAbgeLOM90EH1xCW/IMqHEZwM87sepyHHjUYccdmFOCVaFealGTd2zGBVfDV.AR9CWTlGz0Sw/JivL1:15910:0:99999:7:::
postgres是用户名
ubuntu cp 复制不修改权限?
cp -rp web webb
ubuntu文件特殊权限
SUID (Set owner User ID up on execution)
当s这个标志出现在文件所有者的x权限上时,称为SetUID
SUID基本上有这样的限制与功能:
- SUID权限仅对二进制程序有效
- 执行者对该程序需要有x可执行权限
- 本权限仅在执行程序过程中有效
- 执行者将具有该程序拥有者的权限
SGID(Set Group ID up on execution)
当s这个标志出现在文件所属用户组的x权限上时称为SetGID
与SUID类似,只不过获得的是程序用户组的权限
应用于目录时:
- 用户若对此目录具有r与x权限,则该用户能够进入此目录
- 用户在此目录下的有效用户组将会编程该目录的用户组
- 若用户在此目录下具有w的权限,则用户所创建的新文件的用户组与此目录的用户组相同
SBIT(Sticky Bit)
当t这个标志出现在目录其他人的x权限上时及设置了SBIT
SBIT仅针对目录有效,用于避免文件夹或其内容被具有w权限的用户删除,设置了SBIT的目录仅可被其所有者或root用户删除。
权限设置
SUID 为 4 SGID 为 2 SBIT 为 1
chmod 4755 test 加入SUID权限
chmod g+s,o+t 加入SGID和SBIT
注意:大写S,T代表“空的”及对应的user,group,others没有x这个可执行权限
评论