特殊权限

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