#useradd aming
#which passwd 【检查可执行命令passwd的路径】
/usr/bin/passwd
#ls -l /usr/bin/passwd 【此处第一目录是usr,不是user。】
-rw
sr-xr-x. 1 root root 25980 2月 22 2012
/usr/bin/passwd 【此处user的权限不再是rwx,而是rw
s】
【s表示:当其他用户执行该命令的时候,赋予该用户临时root权限,==set_uid == suid】
例子:
#ls -l /root 【root用户下,执行ls命令,列出root目录列表】
-rw-r--r--. 1 root root 4 1月 2 05:27 1.txt
-rw-------. 1 root root 1305 12月 30 02:46 anaconda-ks.cfg
-rw-r--r--. 1 root root 23851 12月 30 02:46 install.log
-rw-r--r--. 1 root root 5775 12月 30 02:45 install.log.syslog
#su - aming 【切换至aming用户】
$
ls -l /root 【在aming用户下,执行ls命令】
ls: 无法打开目录/root/: 权限不够 【该用户没有使用ls命令的权限】
$
exit 【在aming用户下,退出到root用户,logout也可以】
#ls -l /bin/ls
-rwxr-xr-x. 1 root root 112664 11月 22 2013 /bin/ls
#chmod u+s /bin/ls 【给ls命令增加s特殊权限】
#ls -l /bin/ls
-rw
sr-xr-x. 1 root root 112664 11月 22 2013
/bin/ls 【此时ls命令user的权限是rws】
#su - aming 【再次切换到aming用户】
$
ls -l /root 【在aming用户下,使用ls命令查看root目录】
-rw-r--r--. 1 root root 4 1月 2 05:27 1.txt
-rw-------. 1 root root 1305 12月 30 02:46 anaconda-ks.cfg
-rw-r--r--. 1 root root 23851 12月 30 02:46 install.log
-rw-r--r--. 1 root root 5775 12月 30 02:45 install.log.syslog
#chmod u-x /bin/ls 【去掉ls命令的可执行权限】
#ls -l /bin/ls
-rw
Sr-xr-x. 1 root root 112664 11月 22 2013
/bin/ls 【user权限里面的rws变成了大写S】
#ls -l /root 【root用户,执行ls命令,S没有影响】
-rw-r--r--. 1 root root 4 1月 2 05:27 1.txt
-rw-------. 1 root root 1305 12月 30 02:46 anaconda-ks.cfg
-rw-r--r--. 1 root root 23851 12月 30 02:46 install.log
-rw-r--r--. 1 root root 5775 12月 30 02:45 install.log.syslog
#su - aming
$
ls -l /root 【此时仍可以执行,是因为其user权限去掉了s,但是others的权限,仍然有x可执行权限】
-rw-r--r--. 1 root root 4 1月 2 05:27 1.txt
-rw-------. 1 root root 1305 12月 30 02:46 anaconda-ks.cfg
-rw-r--r--. 1 root root 23851 12月 30 02:46 install.log
-rw-r--r--. 1 root root 5775 12月 30 02:45 install.log.syslog
$
exit
#chmod o-x /bin/ls 【去掉others的可执行权限】
#su - aming
$
ls -l /root 【aming用户下,执行ls命令】
-bash: /bin/ls: 权限不够
NOTE:
set uid 只能作用于
可执行的
二进制文件
拓展
当有特殊权限时,当用数字表示user/group/others的权限时,是四个数字表达。
传统表达为755,766等。
#ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 25980 2月 22 2012 /usr/bin/passwd
此处users的权限时rws,表达式为 4755
第一位数字规定:
setuid=4 setgid=2 stiky_bit=1
user | group | others | 数字 |
- | - | - | 0 |
- | - | t | 1 |
- | s | - | 2 |
- | s | t | 3 |
s | - | - | 4 |
s | - | t | 5 |
s | s | - | 6 |
s | s | t | 7 |
如果不想普通用户修改自己的密码
#chmod u-s /usr/bin/passwd
或者
#chmod 0755 /usr/bin/passwd