当前位置: 技术问答>linux和unix
不明白seteuid()的作用
来源: 互联网 发布时间:2015-12-24
本文导语: 为了明白seteuid的作用,写了一个程序: #include int main(void) { char *reboot="/sbin/reboot"; char **argument=NULL; if(seteuid(0)==-1) { perror("seteuid errorn"); return 1; } ...
为了明白seteuid的作用,写了一个程序:
#include
int main(void)
{
char *reboot="/sbin/reboot";
char **argument=NULL;
if(seteuid(0)==-1)
{
perror("seteuid errorn");
return 1;
}
if(execv(reboot,argument)==-1)
{
perror("execv errorn");
return 1;
}
}
结果说
seteuid error
: Operation not permitted
seteuid不是说可以运行root的程序吗??我不明白书上写的,请帮助一下。
#include
int main(void)
{
char *reboot="/sbin/reboot";
char **argument=NULL;
if(seteuid(0)==-1)
{
perror("seteuid errorn");
return 1;
}
if(execv(reboot,argument)==-1)
{
perror("execv errorn");
return 1;
}
}
结果说
seteuid error
: Operation not permitted
seteuid不是说可以运行root的程序吗??我不明白书上写的,请帮助一下。
|
权限问题,seteuid(a)如果是root,则修改后euid=a; 如果是普通用户b,则修改后euid=b
|
你搞错了,seteuid(0)只能由root权限用户设置。设置该位后,不管什么用户执行该程序,进程都能取得root权限。所以seteuid(0)的程序是黑客攻击的首要目标。
如果像你想的,只要seteuid(0)就能取得root权限,那Unix权限控制安全机制也太差了,比瘟都斯还不如。
如果像你想的,只要seteuid(0)就能取得root权限,那Unix权限控制安全机制也太差了,比瘟都斯还不如。