linux上的特殊权限有三个,分别是SUID,SGID,STICKY
SUID
默认情况下,用户发起的进程,进程的属主是其发起者;因此,其发起者的身份在运行;
SUID的功用是,用户运行某程序时,如果此进程拥有SUID权限,那么程序运行为进程时,进程的属主不是发起者,而是程序文件自己的属主;
-
管理文件的SUID权限
-
chomd u+|-s FILE...
-
展示位置:属主的执行权限位
-
如果属主原本有执行权限,显示为小写s;否则,显示为大写S;
-
-
SGID
SGID的功用是,当目录有写权限,且有SGID权限时,那么所有属于此目录的属组,且以属组身份再次目录中新建文件或目录是,新文件的属组不是用户的基本组,而是此目录的属组;
-
管理文件的SGID权限
-
chomd g+|-s FILE...
-
展示位置:属组的执行权限位
-
如果属组原本有执行权限,显示为小写s;否则,显示为大写S;
-
-
Sticky
Sticky的功用是,对于属组可写和全局可写的目录,组内所有用户或系统上的所有用户对再次目录中都能创建新文件或删除所有已有的文件,如果为此类目录设置Sticky文件,则每个用户都能创建新文件,且只能删除自己的文件;
-
管理文件的Sticky权限:
-
chmod o+|-t FILE...
-
展示位置:属组的执行权限位
-
如果属组原本有执行权限,显示为小写t;否则,显示为大写T;
-
-
-
系统上的/tmp和/var/tmp目录默认都有Sticky权限
管理特殊权限的另一种方式
八进制权限
SUID(4) | SGID(2) | Stick(1) | 八进制权限 |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 |
0 | 1 | 0 | 2 |
0 | 1 | 1 | 3 |
1 | 0 | 0 | 4 |
1 | 0 | 1 | 5 |
1 | 1 | 0 | 6 |
1 | 1 | 1 | 7 |
基于八进制方式赋权时,可以默认的三位八进制数字左侧再加一位八进制数字;
例如:
chmod 1777 FILE
facl文件访问控制列表
文件的额外赋权机制,在原有的u,g,o之外,另一层让普通用户能控制赋权给另外的用户或组的机制;
-
getfacl:查看赋权列表
-
getmacl FILE
-
-
setfacl:
-
赋权给用户:
-
setfacl -m u:USERNAME:MODE FILE...
-
-
赋权给组:
-
setfacl -m g:GROUPNAME:MODE FILE...
-
-
撤销赋权:
-
setfacl -x u:USERNAME:MODE FILE...
-
setfacl -x g:GROUPNAME:MODE FILE...
-
-