我编写了一个脚本,提示我在 dmenu 中安装或卸载可用的驱动器,并添加了visudo
以下行
ALL ALL = NOPASSWD: /path/to/usb-mount
脚本基本上做出决定,并执行这两行之一
sudo mount $drive $target
sudo umount $drive
我有一个执行命令的键绑定,例如
sudo /path/to/usb-mount
好吧,它运行,它不会安装驱动器,但是如果我在终端中运行脚本,则sudo
运行脚本并安装。
知道我需要做什么吗?
据说(据我了解)如果我运行sudo
所有后续操作都会获得sudo
特权。
答案1
读取 记录的消息sudo
,通常写入/var/log/secure
或/var/log/auth.log
(取决于发行版)以查看发生了什么。
某些发行版requiretty
在其默认sudoers
文件中启用该设置,或者将其作为sudo
.这增加了在非交互式上下文中使用的额外步骤sudo
(即它不能要求密码也不能向用户输出消息)。作为您的常规用户帐户运行sudo -l
:输出将告诉您该requiretty
设置是否对您有效。
要从您的用户帐户中删除此限制,如果您的用户名是例如ekiim
,您可以添加
Defaults:ekiim !requiretty
到sudoers
文件中任何现有Defaults
行之后。