我希望fork和exec并以非root用户身份编程,而父级保留root权限。
伪代码:
pid = fork();
if (pid == 0) {
if (RunAsUser(ConvertStringToUserId("John")) == false) {
stop();
}
if (RunAsUser(ConvertStringToUserId("admin")) == true) {
stop();
}
CreateProcess();
}
答案 0 :(得分:3)
如果要删除C代码中的权限,请使用函数setuid
。
答案 1 :(得分:0)
让您的程序调用子进程
sudo -u user /path/to/externalprogram
而不仅仅是
/path/to/externalprogram