我没有成功使用sudo visudo
。我已阅读了这篇文章如何以 root 身份运行特定程序而不提示密码?和这篇文章sudo:即使设置了 NOPASSWD 也会提示密码(标记为重复)。
我正在尝试创建一个快捷命令来调用 IDrive。我创建了一个只/usr/local/bin/idrive
运行较长的脚本sudo /opt/IDriveForLinux/bin/idrive
。我将其设置为可执行文件sudo chmod +x /usr/local/bin/idrive
,然后运行sudo visudo
并在文件末尾添加了此行:
<username> ALL=(ALL) NOPASSWD: /usr/local/bin/idrive
但是当我输入时idrive
,它仍然提示输入 sudo 密码。我遗漏了什么?
使用 sudo 时,您必须输入 sudoers 文件中的路径。
sudo /usr/local/bin/idrive
如果只是idrive
输入,脚本内部的 sudo 会提示输入密码,因为它未在任何地方配置。我建议使用以下配置:<username> ALL=(ALL) NOPASSWD: /opt/IDriveForLinux/bin/idrive
并将其放入脚本中:/usr/local/bin/idrive
sudo -l
应该提示您 /opt/IDriveForLinux/bin/idrive 命令。你的 ~/.bashrc 中的别名也可以完成这项工作:
alias idrive='sudo /opt/IDriveForLinux/bin/idrive'