4

suid権限をテストするための小さなbashスクリプトを書きました

$ 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 OS では、スクリプトで SUID を使用できません。この件に関するVidar のブログ エントリを参照してください。Perl スクリプトは SUID を使用できますが、Vidar が説明するように、それは Perl の実装方法によるものです。Bash スクリプトは SUID では実行されないようです。申し訳ありませんが、これ以上役立つ答えはありません。これは単なる「現状」のようです。

于 2012-07-10T17:09:52.153 に答える