使用 sudo 权限执行 bash 时出现问题

使用 sudo 权限执行 bash 时出现问题

我编写了一个脚本,提示我在 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行之后。

相关内容