linux特殊权限
特殊权限
特殊权限
安全上下文概念:
1. 进程以某用户的身份运行, 进程是发起此进程用户的代理, 能够以该用户的身份和权限完成所有操作
2. 权限匹配模型
(1) 判断进程的属主, 是否为被访问的文件属主, 如果是, 则应用属主的权限, 否则进入下一步
(2) 判断进程的属主, 是否属于被访问的文件的属组, 如果是, 则应用属组的权限, 否则进入下一步
(3) 应用other的权限
linux的特殊权限有3类:
SUID, SGID, STICKY
SUID
默认情况下, 用户发起的进程, 进程的属主是其发起者,
SUID的功用: 用户运行某程序时, 如果此程序拥有SUID权限, 那些程序运行为进程时, 其属主不是发起者, 而是文件的属主.
chmod u+|-s
例如我们使用普通用户的权限不能够使用cat命令查看/etc/shadow下的文件内容, 但是当以root身份把cat命令复制一份并赋予SUID权限, 就可以让普通用户以root的身份运行cat命令并查看原本不能看的命令了. 具体看下面的例子.
[root@localhost ~]# cp /usr/bin/cat /tmp [root@localhost ~]# ls -l /tmp/cat -rwxr-xr-x. 1 root root 54048 Aug 18 09:10 /tmp/cat [root@localhost ~]# chmod u+s /tmp/cat [root@localhost ~]# ls -l /tmp/cat -rwsr-xr-x. 1 root root 54048 Aug 18 09:10 /tmp/cat [root@localhost ~]# useradd gentoo [root@localhost ~]# su - gentoo # 使用原本的命令, 以及使用copy过来的命令 [gentoo@localhost ~]$ cat /etc/shadow cat: /etc/shadow: Permission denied [gentoo@localhost ~]$ /tmp/cat /etc/shadow root:$6$Q3XFP4x9y2obH8P9$9hI.HOX4kMvjJjUDmByipB3BXEd1jX5B6NTBMz3Yc7CKrCnC/DfcbzTuiNBHaj4f1sGo1pjXXcaRLKXXXeS6w.::0:99999:7::: bin:*:16659:0:99999:7::: ...
SGID:
功用: 当目录属组有写权限, 且有SGID权限, 那么所有属于此目录的属组, 且以属组身份在此目录新建文件或目录, 新文件的属组不是用户的基本组, 而此目录的属组;
展示与属组的执行权限位
chmod g+|-s
如果属组有本有执行权限, 显示为小写位
否则, 显示为大写位
STICKY:
功用: 对于属组或全局可写目录, 组内的所有任务或系统上的所有用户对此目录都能创建和删除已有的文件;
如果为此目录设置sticky权限, 则每个用户能够创建新文件, 但是只能删除属于自己的文件.
chmod o+|-t FILE ...
显示在其他用户的执行位
如果其它用户原本就有执行权限, 显示为小写,
否则, 显示为大写
系统上的/tmp和/var/tmp目录均默认有sticky权限.
[gentoo@localhost ~]$ ls -ld /tmp drwxrwxrwt. 82 root root 8192 Aug 18 09:14 /tmp
facl
facl: file access control lists
在原来的ugo之外, 另一层让普通用户能够赋权给其他用户或组的机制
获取访问权限 getfacl FILE...
设置访问权限
setfacl -m u:USERNAME:[rwx] FILE...
setfacl -m g:GROUPNAME:MODE FILE...
撤销赋权:
setfacl -x u:USERNAME: MODE FILE...
setfacl -x g:GROUPNAME:MODE FILE...
如果一个用户不是一个文件的属组或属主, 那么如果在访问控制列表里面有这个用户, 就应用这里的权限, 否则应用other的权限

浙公网安备 33010602011771号