0

ユーザーAとBがいて、別のグループに属しているとしましょう。それらのボットはルートではありません

最初に、ユーザー A として。

1) touch a.txt; echo "hello word" > a.txt
2)chmod 600
3) touch b
4) echo "cat a.txt" > b
5) chmod 4755 b

次にユーザーBに切り替えます。ユーザーBはバイナリを正常に実行して「こんにちは」という挨拶を受け取ることができると想定していますが、実際にユーザーBとしてバイナリを実行すると、「許可が拒否されました」。なぜ?

4

2 に答える 2

1

S_ISUIDLinux は、スクリプト ファイルの一部の処理を実装していません。代わりに、インタプリタ (シェル) のモード ビットが使用されます。

于 2014-05-09T07:27:08.523 に答える
0

setuidファイルの概念は、ファイルをsetuid bitオンにした場合、そのコマンド(ファイル)を実行するすべてのユーザーがファイルの所有者のアクセス許可を継承することを意味します。

$ chmod 4755 b --verbose
mode of `b' changed to 4755 (rwsr-xr-x)

ユーザーAとBは別々のグループに属していると思われるので、あなたsetgidもそうする必要があります。これは、setuidとsetgidの両方で2を追加して6を取得することで実行できます。

$ chmod 6755 b --verbose
mode of `b' changed to 6755 (rwsr-sr-x)
于 2012-12-11T09:28:08.840 に答える