我写了一个小的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文件,但我失败了。谁能告诉我哪里出错了?
答案 0 :(得分:4)
大多数* nix操作系统不允许脚本使用SUID。查看有关主题的Vidar's blog entry。 Perl脚本可以使用SUID,但正如Vidar所解释的那样,这是由于Perl的实现方式。看来Bash脚本根本不会与SUID一起运行。对不起,我没有更有用的答案,看起来这只是“事情如何”。