1

C 中的任何系统调用以在非 root 用户模式下更改 HP-UX 中文件的权限?我使用了 Chmod 系统调用,它在 root 用户模式下对我有用,但在非 root 用户模式下却不行。我觉得 setuid 系统调用会在这里帮助我,但我不知道如何使用它?因此,对我的问题或如何使用 setuid 的任何新建议。

4

1 回答 1

0

chmod() 是正确的系统调用,但如果您没有更改文件权限的访问权限,那么您就不走运了。

正如您当然可以想象的那样,更改您无权更改权限的文件的权限会造成巨大的安全漏洞。

Wrt setuid(),往往仅限于超级用户,或者设置了 setuid 位的程序。同样,出于明显的安全原因,在一般情况下,随机用户不能将自己更改为其他随机用户。

因此,如果您想让 chmod() 在没有任何超级用户权限的情况下工作,解决方案是进程 UID 必须与您尝试更改权限的文件的所有者相同。

于 2011-04-06T13:04:38.093 回答