linux以root身份运行命令,以普通用户身份运行的c代码

时间:2015-06-23 12:44:06

标签: c++ linux

我有一个c ++代码,我需要从它运行一个命令来调整系统时间。 所以我想从我的c ++代码中使用system(" su root -c date hh:mm")命令。
问题在于,当我写“su -c date hh:mm'在终端之后需要密码,如何在一行中传递系统命令的密码? 或其他解决方案...... 谢谢!

1 个答案:

答案 0 :(得分:1)

解决方法是修改sudoers文件并从用户ID中删除密码要求,以使特定脚本具有sudo权限。

输入sudo visudo

在此之后,按以下方式添加详细信息。

username ALL=(ALL) NOPASSWD: /path/to/script

另一种方法是将密码作为输入传递给sudo命令。我不建议这样做,因为您将以纯文本形式输入密码。您可以使用变量来存储密码,然后访问它,但它仍然不是一种安全的方法。您可以将命令作为

运行
echo $PASSWORD | sudo ./a.out