特殊权限
SUID,SGID,STICKY
权限匹配模型:
判断进程的 发起者 是否为被访问文件的 属主,如果是 则应用属主的权限;
判断进程的 发起者 是否为陪访问文件的 属组,如果是 则应用属组的权限
否则应用other
1.SUID: 可能会使普通用户获得root权限 危险;文件其他权限位应当有执行权限
管理文件SUID:
chmod u+|-s FILE
如果文件属主权限为 有执行权限显示为小写s -rwsr-xr-x. FILE
没有则为大写S -rwSr-xr-x. FILE
默认情况:用户发起的进程 属主为当前用户
具有SUID属性则:用户运行某程序时,会以该文件 属主身份运行
普通用户不可读或修改/etc/shadow,但是可以运行passwd更改密码,
相当于修改了/etc/shadow;因为/bin/passwd属主为root 且具有S权限
2.SGID: 通常应用在 目录; 目录属组应当有写权限
管理目录SGID:
chmod g+|-s /DIR/
功用:使创建在该目录下的目录或文件的属组 都变为该(具有SGID权限)目录的属组
使得属于同一开发组的成员用户在该目录下工作 可以互相更改彼此的文件;
因为该目录下文件属组会变为同一组,而同组具有相同的权限;
达到共享的目的!
3.STICYK:粘滞位 通常应用在 目录 目录属组应当有写权限
管理目录STICKY:
chmod o+|-t /DIR/
功用:使得该目录下某用户创建的文件 只有 自己可以删除
系统上的/tmp /var/tmp 默认具有t权限
管理特殊权限另一种方式:
suid sgid sticky 八进制
0 0 00
0 0 11
0 1 02
0 1 13
1 0 04
1 0 15
1 1 06
1 1 17
chmod 4777 FILE 文件具有SUID及满权限
*FACL:file access control list 文件访问控制列表 设置特权 允许 或禁止
文件额外的赋权机制
#setfacl
-m d:u:zhou:rx directory 该目录下新建的文件默认的访问控制
-d:设置默认acl
-x:删除后续acl参数
-b:删除全部的acl参数 文件属性后不会遗留"+"
-k:删除默认的acl参数
-R:递归设置acl,包括子目录
-M:从文件读取acl设置
-X:从文件读取删除acl设置
setfacl -m m:### FILE 设置acl权限最大值;有效权限
用户或组所设置的权限必须要存在于mask的权限设置范围内才会生效
备份和恢复ACL:
cp和mv支持ACL,cp命令需要加上-p 参数。
tar等常见的备份工具不会保留目录和文件ACL信息
#getfacl -R /tmp/dir1 > acl.txt
#setfacl -R -b /tmp/dir1
#setfacl -R --set-file=acl.txt /tmp/dir1
#getfacl -R /tmp/dir1
tune2fs -o acl /dev/sdb1
mount -o acl /dev/sdb1 /mnt 有些分区可能没有acl功能 可手动挂载
在u,g,o之外 使用户可以将属主是自己的文件 赋权给另外的用户或组。
通常在u,g,o下普通用户无法更改自己文件的属组,无法让特定的用户获得rwx权限
设置文件facl:
setfacl -m u:USER:MODE FILE 赋权给用户
-m g:GROUP:MODE FILE 赋权给组
查看文件facl:
getfacl FILE
撤销赋权:
setfacl -x u:USER:MODE FILE
-x g:GROUP:MODE FILE
setfacl -m u:zhou:w testfile 给zhou用户写权限
setfacl -m u:he:--- tsetfile 禁止he用户读写执行
文件权限查找路径:
属主->facl属主权限->属组->facl属组权限->other
设置了某文件的facl 则权限后有"+"号
-rw-rw-r--+ 1 he zhou 14 7月 30 15:10 he.txt
普通文件:
-rw-rw-r--. 1 chen zhou 14 7月 30 17:19 chen.txt
"."表示SElinux