Set-user-id位如何在Linux上运行?

时间:2012-11-18 01:34:56

标签: linux file-permissions setuid

我有以下“root-file”,其中包含以下内容:

$ 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位导致进程使用文件所有者的有效用户ID执行,在这种情况下是根)。但是,我从非root shell执行“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执行。为什么会这样?

1 个答案:

答案 0 :(得分:1)

你不能在shell脚本上使用setuid ......

如果您绝对需要使用setuid checkout http://isptools.sourceforge.net/suid-wrap.html

通常使用一些自定义sudo配置也可以建立这样的东西......