如何在mac中运行没有密码的Sudo代码

时间:2016-02-26 06:37:01

标签: macos terminal sudo

我想运行" sudo rm ing / tmp / instruments_sock"在终端。我通过使用robotil jar的代码来做这件事。但我无法输入密码。有没有办法在没有在mac中输入密码的情况下运行此命令。!! 我只想删除此命令的密码。

1 个答案:

答案 0 :(得分:3)

如果您想在没有密码的情况下执行单个特权任务,最好的方法可能是使用setuid二进制文件。

简而言之,你制作了一个能够做你想要的小程序。然后,通过将其所有者设置为root并启用setuid位来授予程序root权限。

一个非常重要的警告:不要只在你的setuid二进制文件中调用system("rm /tmp/something")!这是一个经典的安全漏洞。不干净的环境变量(例如PATH)可以劫持命令。以上是维基百科链接中对安全问题的简短介绍。

最简单,最安全的方法是使用语言自己的文件处理库,而不是使用system()。如果您不确定自己在做什么,请避免从二进制文件中运行shell命令。