C/C++:以 root 身份运行多个命令

C/C++:以 root 身份运行多个命令

我想在我的 C 程序中执行命令。但是,我需要 root 权限才能创建一些文件夹。我运行以下命令:

system("echo <rootpass> | sudo cd <folder> && make install");

<rootpass> is given by the user (and thus the command should only execute if the user has root priviliges). 

但是,当我运行此命令时,系统返回代码 256(EPERM /* 不允许操作 */)。

我该如何解决这个问题?

答案1

您必须编写一个脚本,其中包含expect,sudomake install来解决您的问题,并且您的system()函数调用您的脚本,例如:

system("myscrip.sh");

对于阅读期望:如何从 Bash 以 root 身份登录并执行操作

相关内容