|
|
发表于 2005-6-17 21:51:43
|
显示全部楼层
Post by rickxbx
呵呵.为什么你的思维跟我的思维就这么相近呢 ^_^
好,下面的问题是,我又写了一个程序:
#include <unistd.h>
int main()
{
char *name[2];
name[0] = "/bin/sh";
name[1] = 0;
execve(name[0],name,0);
}
设了suid后,仍然不能得到root权限,再下去就不明白了~~~~~~~~~~
呵呵,你可以翻一下apue英文版214页,最上面的图8.7,如果被exec的文件suid,则有效用户权限变为文件的所有者;如果没有suid,则有效用户限权为进程实际用户。所以,上面那个程序如果是suid,则它有root权限,但如果它再调用exec,则又变成实际用户权限。所以,执行的shell是没有root权限的。 |
|