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 位会导致使用文件所有者的有效用户 ID(在本例中为 root)执行的进程。但是,相反,我在从非根 shell 执行“根文件”时得到以下输出。

$ ./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

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

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

通常,也可以使用一些自定义 sudo 配置来建立这样的事情......

于 2012-11-18T01:52:07.747 回答