标签:style blog http color strong 文件
1.setuid的作用
$ ls -l /etc/shadow
-rw-r----- 1
root shadow 1186 2012-03-09 11:35 /etc/shadow
$ ls -l /usr/bin/passwd
-rwsr-xr-x 1
root root 42856 2011-02-15 06:11 /usr/bin/passwd
$ sudo chmod u-s /usr/bin/passwd
$
ls -l
/usr/bin/passwd
-rwxr-xr-x 1
root root 42856 2011-02-15 06:11 /usr/bin/passwd
$
passwd wlxxsj
更改 wlxxsj 的密码。
(当前)UNIX 密码:
输入新的 UNIX 密码:
重新输入新的
UNIX 密码:
passwd:认证令牌操作错误
passwd:
password unchanged
2.
对setuid的误用
下面说一下我对setuid的一个误用。还是通过一个实验来说明。
先建立一个文件夹和两个文件,它们的关系及属性如下图所示:
其中rmtest.sh是一个shell脚本,作用是删除同目录下的rmtest.txt这个文件。
文件夹setuid,文件rmtest.sh和rmtest.txt的属主和属组都是root。
rmtest.sh具有setuid权限。
我期望的是,当用普通用户执行rmtest.sh这个脚本的时候,能够删除rmtest.txt这个文件。但是删除失败。
再来做个实验。
把rmtest.sh的s位去掉,给rm这个命令添加s位,然后用普通用户执行rmtest.sh这个脚本,rmtest.txt这个文件被成功删除。
3.
总结
我对setuid的误解:
当给一个脚本赋予了setuid权限后,脚本中的命令就会以脚本的身份执行。这是错误的。
应该这么理解:
setuid只对命令有效,对脚本无效。或者说只对原子操作(系统命令)有效,对组合操作(用户脚本)无效,除非脚本中
所用到的命令都具有setuid权限且与脚本同属主。
Shell编程 之 对setuid的误解,码迷,mamicode.com
标签:style blog http color strong 文件
原文地址:http://www.cnblogs.com/daojoo/p/3698833.html