4

我写了一个小 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文件,但我失败了。谁能告诉我我哪里做错了?

4

1 回答 1

4

大多数 *nix 操作系统不允许脚本使用 SUID。查看Vidar关于该主题的博客条目。Perl 脚本可以使用 SUID,但正如 Vidar 解释的那样,这是由于 Perl 是如何实现的。看来 Bash 脚本根本无法使用 SUID 运行。抱歉,我没有对你更有用的答案,看起来这只是“事情是怎样的”。

于 2012-07-10T17:09:52.153 回答