运行带有suid set on bash的bash脚本

时间:2012-07-10 16:54:27

标签: bash suid

我写了一个小的bash脚本来测试suid权限

$ cat phone.sh
#!/bin/sh
echo "abc" >> out.txt

$ ls -l out.txt phone.sh
-rw-r--r-- root wzj      ...         out.txt
-rwsr-xr-x root wzj      ...         phone.sh

$ ./phone.sh
./phone.sh: 2: cannot create out.txt: Permission denied

为什么呢?我以为我已经设置了suid权限,所以我可以运行具有root权限的phone.sh来修改out.txt文件,但我失败了。谁能告诉我哪里出错了?

1 个答案:

答案 0 :(得分:4)

大多数* nix操作系统不允许脚本使用SUID。查看有关主题的Vidar's blog entry。 Perl脚本可以使用SUID,但正如Vidar所解释的那样,这是由于Perl的实现方式。看来Bash脚本根本不会与SUID一起运行。对不起,我没有更有用的答案,看起来这只是“事情如何”。