:
err = setuid(0);
if (err < 0) {
fprintf(stderr, "return value: %d \n", err);
fprintf(stderr, "error code: %d \n", errno);
}
我收到了这个输出:
return value: -1
error code: 1
错误代码1表示EPERM错误。有关如何修复它的任何想法?
答案 0 :(得分:0)
您无法setuid()
从非root用户root。
如果您想以root用户身份运行应用程序,请使用Authorization Services或sudo
(如果它是命令行工具)。
答案 1 :(得分:0)
如果用户不是超级用户,或者指定的uid不是 真实,有效ID或保存的ID,这些函数返回-1。
setuid(0);
仅适用于root(SU)用户。
错误代码:1
#define EPERM 1 /* Operation not permitted */