我有以下代码:
std::string cmd = "sudo chmod a+x file";
int r = system(cmd.c_str());
哪个工作正常。
如何在不调用 system() 函数的情况下做同样的事情?
我能得到的是:
#include <sys/stat.h>
int r = chmod("file", S_IXUSR | S_IXGRP | S_IXOTH);
在这种情况下如何使用“sudo”?
谢谢。
最佳答案
你不能。除非您的程序是 suid root,但很可能不是这种情况 - 否则您不会使用 sudo。
但是,根据您的程序执行的操作,给它设置 setuid-root 可能确实是可行的方法。您需要执行需要 root 权限的操作,并且通常不会向非 root 用户授予对 chmod
的 sudo 访问权限,尤其是在任意模式/路径上。
关于c - 如何在不使用 system() 的情况下从 C 程序中使用 "sudo"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10580797/