Linux文件系统上的特殊权限
SUID, SGID, Sticky
1 权限
r, w, x
user, group, other
2 安全上下文
前提:进程有属主和属组;文件有属主和属组;
(1) 任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限;
(2) 启动为进程之后,其进程的属主为发起者;进程的属组为发起者所属的组;
(3) 进程访问文件时的权限,取决于进程的发起者:
(a) 进程的发起者,同文件的属主:则应用文件属主权限;
(b) 进程的发起者,属于文件的属组;则应用文件属组权限;
(c) 应用文件“其它”权限;
3 SUID
(1) 任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限;
(2) 启动为进程之后,其进程的属主为原程序文件的属主;
[root@MyServer ~]# ls -l `which passwd` -rwsr-xr-x 1 root root 30768 Feb 22 2012 /usr/bin/passwd [root@MyServer ~]# ls -l /etc/passwd -rw-r--r-- 1 root root 892 Jul 18 20:52 /etc/passwd [root@MyServer ~]# ls -l /etc/shadow ---------- 1 root root 613 Jul 18 20:52 /etc/shadow [centos@MyServer ~]$ /tmp/cat /etc/shadow /tmp/cat: /etc/shadow: Permission denied [root@MyServer ~]# chmod u+s /tmp/cat [root@MyServer ~]# su - centos welcome 502, your home is /home/centos. note.....
[centos@MyServer ~]$ /tmp/cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin gopher:x:13:30:gopher:/var/gopher:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin saslauth:x:499:499:"Saslauthd user":/var/empty/saslauth:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin aaa:x:501:501::/home/aaa:/bin/bash centos:x:502:502::/home/centos:/bin/bash
权限设定:
chmod u+s FILE...
chmod u-s FILE...
4 SGID
默认情况下,用户创建文件时,其属组为此用户所属的基本组;
一旦某目录被设定了SGID,则对此目录有写权限的用户在此目录中创建的文件所属的组为此目录的属组;
权限设定:
chmod g+s DIR...
chmod g-s DIR...
5 Sticky
对于一个多人可写的目录,如果设置了sticky,则每个用户仅能删除自己的文件;
权限设定:
chmod o+t DIR...
chmod o-t DIR...
SUID SGID STICKY
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7
chmod 4777 /tmp/a.txt
[root@MyServer /]# chmod 4777 /tmp/hosts [root@MyServer /]# ll /tmp/hosts -rwsrwxrwx 1 root root 158 Jul 17 13:49 /tmp/hosts
几个权限位映射:
SUID: user, 占据属主的执行权限位;
s: 属主拥有x权限
S:属主没有x权限
SGID: group, 占据group的执行权限位;
s: group拥有x权限
S:group没有x权限
Sticky: other, 占据ohter的执行权限位;
t: other拥有x权限
T:other没有x权限
[root@MyServer /]# chmod 4777 /tmp/hosts [root@MyServer /]# ll /tmp/hosts -rwsrwxrwx 1 root root 158 Jul 17 13:49 /tmp/hosts [root@MyServer /]# chmod 7777 /tmp/hosts [root@MyServer /]# ll /tmp/hosts -rwsrwsrwt 1 root root 158 Jul 17 13:49 /tmp/hosts
本文出自 “梁小明的博客” 博客,请务必保留此出处http://7038006.blog.51cto.com/7028006/1827891
原文地址:http://7038006.blog.51cto.com/7028006/1827891