![运行 shell 脚本而不提示输入密码](https://linux22.com/image/914987/%E8%BF%90%E8%A1%8C%20shell%20%E8%84%9A%E6%9C%AC%E8%80%8C%E4%B8%8D%E6%8F%90%E7%A4%BA%E8%BE%93%E5%85%A5%E5%AF%86%E7%A0%81.png)
我有一个调用 dpkg 的 shell 脚本,显然需要使用 sudo 才能执行任何操作。我已将 dpkg 添加到 /etc/sudoers.d 中不再需要密码的文件列表中(我知道这是个坏主意),但当我尝试运行脚本时,它仍然要求输入密码。该脚本很简单
sudo dpkg -i $1
当我从终端运行 dpkg 时,它不需要密码,但是当我从 .sh 文件执行时,它会立即要求输入密码。
除了添加 sudoers.d 之外,还有什么建议或想法我还需要做什么?
答案1
所以解决方案相当简单。问题是 shebang 行作为单独的用户帐户运行。当我将 /etc/sudoers.d 目录中的 更改为 时username usergroup = (root)...
,ALL ALL = (root)...
它允许我们运行脚本而无需密码。这里存在明显的安全隐患,需要进行调查,但这超出了我最初提出的问题的范围。