perl コードの値は : ex.pl
system("cat /etc/shadow");
上記のファイルをルートに chown (chown root ex.pl) します。私の質問は、グループ (例: apache) のユーザーが上記の perl ファイルを実行すると、シャドウ ファイルが彼にカテゴライズされますか? 前もって感謝します 。
自分で試してみてください。機能しない理由を理解するには:
/etc/shadow
通常、次のような権限があります。
[cnicutar@fresh ~]$ ls -l /etc/shadow
-rw------- 1 root root 316 Jul 20 09:36 /etc/shadow
スクリプトを実行するとき、誰がそれを所有しているかは問題ではありません (ただし、スクリプトに使用できない setuid を使用する場合を除く)。
重要なのは、誰がそれを実行しているかです。したがってapache
、スクリプトが実行され、「その他」と見なされます。権限はありません。
いいえ、perl コード (CGI スクリプト?) は apache ユーザーの権限で実行されるためです。ただし、Apacheユーザー(またはWebサーバーのユーザー、またはデーモンの場合はコードを実行しているもの)がsudoファイルにある場合は、 system("sudo cat /etc/shadow"); を実行できます。そしてそれはうまくいくでしょう。