SetUIDビットが設定された実行可能ファイルが所有者として実行されているはずですが、実際には再現できません。以下を試しました。
$猫prepare.sh cp / bin / bash。 chown root.root bash chmod 4770 bash#確認済み $ sudo sh prepare.sh $ ./bash $ id -u 1000 $出口 ドル
$猫test.c
#include <stdio.h>
#include <unistd.h>
int main(){
printf( "%d、%d \ n"、getuid()、geteuid());
0を返します。
}
$ gcc -o test test.c
$ chmod 4770 test#確認済み
$ sudo chown root.root test
$ ./テスト
1000、1000
$#なぜ???
しかしながら
$ su #./bash #id -u 0 #./test 0,0 # 出口 # 出口 ドル
注:マウントポイントには何nosuidもnoexec設定されていません。
Ubuntu 16.04 LTSで動作しない理由を誰かが説明できますか?
3
シェルスクリプト
—
Kusalananda
@Kusalanandaそれはスクリプトではありません。
—
enzotib 2017
スクリプトは少し混乱しますが、それは単なるニシンです。私はそれが2つの使用を保存するためにあると思い
—
ilkkachu 2017
sudoますか?バグやタイプミスがchmodありますが、ファイル名がありません。