【问题标题】:How to run Sudo code without password in mac如何在mac中运行没有密码的sudo代码
【发布时间】:2016-06-09 06:40:33
【问题描述】:

我想在终端中运行“sudo rm ing /tmp/instruments_sock”。我通过使用robotil jar的代码来做到这一点。但我无法输入密码。有没有什么方法可以让我运行这个命令而不需要在 mac 中输入密码。!! 我只想删除此命令的密码。

【问题讨论】:

  • 好吧,我只是谷歌“mac sudo without password”,它给了我结果。如果你愿意,我可以在这里复制粘贴步骤...
  • @AlexanderB。最好不要,OP也可以谷歌 - 这表明OP没有做任何研究。更重要的是 - 这不是一个编程问题,它在 StackOverflow 上是题外话,并且 OP 应该查看超级用户,看看是否有人已经在那里回答了这个问题。
  • @ErwinBolwidt,我同意,基本上我的评论是一个提示,可以去搜索一些东西。
  • 大部分基本搜索结果只显示如何禁用用户或命令的密码。我认为 OP 希望对特定命令 具有特定参数 使用无密码 sudo。
  • @jjs 这仍然不是编程问题,对于 StackOverflow 来说是题外话

标签: macos terminal sudo


【解决方案1】:

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

简而言之,您可以编写一个小程序来执行您想要的操作。然后通过将程序所有者设置为 root 并启用 setuid 位来授予程序 root 权限。

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

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

【讨论】:

  • 也许指出您使用sudo chmod u+s YourScript 设置了setuid 位,并使用sudo chown root YourScript 将其所有者设置为root。
猜你喜欢
  • 2016-09-22
  • 2016-07-22
  • 1970-01-01
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
  • 2014-10-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多