0

次の内容の「ルートファイル」があります。

$ cat root-file 
#!/bin/bash   
echo $EUID
id

このファイルのアクセス許可は次のとおりです。

$ ls -l root-file 
-rwsr-sr-x 1 root root 15 Nov 18 02:20 root-file

このファイルには set-user-id ビットが設定されているため、このファイルを実行すると、root 以外のユーザーが実行した場合でも有効な uid が 0 として表示されることが予想されます (set-user-id ビットにより、ファイルの所有者 (この場合は root) の実効ユーザー ID で実行されるプロセス)。ただし、代わりに、非ルート シェルから「root-file」を実行すると、次の出力が得られます。

$ ./root-file 
1000
uid=1000(chanakya) gid=1000(chanakya) groups=1000(chanakya),4(adm),20(dialout),24(cdrom),46(plugdev),105(lpadmin),119(admin),122(sambashare)

このファイル/スクリプトは有効なユーザー ID 0 で実行されていません。なぜですか?

4

1 に答える 1

1

シェルスクリプトで setuid を使用することはできません...

絶対に setuid チェックアウトを使用する必要がある場合http://isptools.sourceforge.net/suid-wrap.html

通常、このようなものは、いくつかのカスタム sudo 構成を使用して確立することもできます...

于 2012-11-18T01:52:07.747 に答える