注: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