Macos setuid(0)在Mac OS X 10.9上提供EPERM

Macos setuid(0)在Mac OS X 10.9上提供EPERM,macos,launchd,setuid,Macos,Launchd,Setuid,执行此操作时: err = setuid(0); if (err < 0) { fprintf(stderr, "return value: %d \n", err); fprintf(stderr, "error code: %d \n", errno); } 错误代码1表示EPERM错误。我该怎么修呢 不能将UID从非root用户设置为root用户 如果要以root用户身份运行应用程序,请使用,如果是命令行工具,请使用sudo。 如果用户不是超级用户,或者指定的ui

执行此操作时:

err = setuid(0);
if (err < 0) {
    fprintf(stderr, "return value: %d \n", err);
    fprintf(stderr, "error code: %d \n", errno);
 }
错误代码1表示EPERM错误。我该怎么修呢

不能将UID从非root用户设置为root用户

如果要以root用户身份运行应用程序,请使用,如果是命令行工具,请使用sudo。

如果用户不是超级用户,或者指定的uid不是 实际ID、有效ID或保存的ID,这些函数返回-1

setuid0;将仅从rootSU用户起作用

错误代码:1

#define EPERM       1       /* Operation not permitted */

它在10.9以下运行良好,10.9中是否有任何具体的变化限制了它的使用。
#define EPERM       1       /* Operation not permitted */