注:suid它有局限性,只作用于可执行二进制的文件
1、查看umask值
[root@wy ~]# umask
0022
前面第一位是权限中的特殊权限
2、查看存放密码文件
[root@wy ~]# ls -l /etc/shadow
---------- 1 root root 799 9月 20 20:48 /etc/shadow
说明:这个是存放密码的文件,是不可以进行任何操作的,但是root这个用户却可以进行任何操作,而其实普通用户可以修改自己的密码,但这里显示的权限却是不可的,这样的说法似乎不成立,但是我们的passwd命令它是一个比较特殊的文件
查看它的权限分配:
[root@wy ~]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 30768 2月 22 2012 /usr/bin/passwd
说明: 跟我们想象的似乎不太一样,这里有一个s,这s就代着set_uid,这个权限的作用它可以把使用这个命令的人,赋予这个人给它一种临时的权限,而这个临时权限的拥有者是root,也就是说当普通用户使用这个命令的时候,它就可以临时拥有root用户的权限,所以它才能更改自己的密码。
3、举例
[root@wy ~]# su - wyy #切换到一个普通用户下
[wyy@wy ~]$ ls /root
ls: 无法打开目录/root: 权限不够
[wyy@wy ~]$ logout
[root@wy ~]# which ls
alias ls='ls --color=auto'
/bin/ls
[root@wy ~]# chmod u+s /bin/ls #修改特殊权限
[root@wy ~]# su - wyy
[wyy@wy ~]$ ls /root
anaconda-ks.cfg install.log install.log.syslog
4、把特殊权限去掉
chmod u-s /bin/ls
5、若去掉了执行权限,小s就变成了大S
[root@wy ~]# chmod u+s /bin/ls
[root@wy ~]# ls -l /bin/ls
-rwsr-xr-x 1 root root 117024 11月 22 2013 /bin/ls
#去掉执行权限后
[root@wy ~]# chmod u-x /bin/ls
[root@wy ~]# ls -l /bin/ls
-rwSr-xr-x 1 root root 117024 11月 22 2013 /bin/ls