linux - sudoers NOPASSWD 在桌面启动器脚本中无效

标签 linux launcher sudoers

我在 Linux Mint 13 中有一个启动器脚本,这样我就可以单击桌面上的图标来安装我的 NAS。为了在没有密码的情况下使用/bin/mount,我必须将这一行添加到 sudoers:

<username> ALL = NOPASSWD: /bin/mount

挂载NAS的脚本非常简单:

#!/bin/bash
if [ 0 = `sudo mount |grep -c nasbox` ]
    then
        sudo mount -a
fi

如果我使用终端,我的脚本无需输入密码即可运行,但当它从启动器运行时(使用“终端中的应用程序”),它会要求输入密码。如果我提供密码,它会接受并运行 - 所以它必须知道哪个用户正在运行它并允许用户使用 sudo,所以它确实尊重 sudoers 的一部分,但它不尊重/bin/mount 的 NOPASSWD 关键字.如何让 NOPASSWD 在这里工作?

最佳答案

删除/var/run/sudo、/var/lib/sudo 和/var/db/sudo 以清除 sudo 可能缓存的任何内容。然后确保系统的时间和日期设置正确。作为一种(偏执的)安全措施,如果 sudo 确定系统时钟不可靠,它可能会提示输入密码。

这实际上发生在我身上一次,在一个没有持久 RTC 时钟的系统上。我想我通过删除这些目录并将系统时钟设置为启动时的 future 值来解决它。 sudo 实用程序现在可能已经更改,所以我不确定这是否仍然适用,但请尝试一下!

关于linux - sudoers NOPASSWD 在桌面启动器脚本中无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11053388/

相关文章:

linux - 如何保持 git clone 更新?

java - 我选择 UDP 作为我的 peer 2 peer 服务,我如何证明它在我的情况下是可靠的

php - 添加到 sudoers.d 的脚本未以 root 身份执行

sudo - 如何修复/etc/sudoers : syntax error near line number

apache2 - 如何摆脱 - sudo :/usr/lib/sudo/sudoers. 因此只能由所有者写入 sudo : fatal error, 无法加载插件

php - 我的网站使用哪些 php 模块?

linux - 如何 'grep'连续流?

asp.net - 如何使用网站中的 'Launch'按钮启动游戏?

java - 我可以通过桌面上的图标运行 Java 程序吗?

android - 当 LauncherProvider.DatabaseHelper.convertDatabase(SQLiteDatabase db) 在 Android 默认启动器中返回 true 时?