Linux Mint:如何在不输入密码的情况下通过快捷键运行具有 root 权限的脚本?

Linux Mint:如何在不输入密码的情况下通过快捷键运行具有 root 权限的脚本?

我正在使用 Linux Mint 20,并且想使用快捷键以 root 权限运行脚本。我想这样做而不必输入我的 root 密码。为此,我已在 /etc/sudoers.d 中注册了该脚本。

/etc/sudoers.d/myscript

username ALL=(ALL) NOPASSWD: /home/xoric/scripts/myscript.sh

出于测试目的,此脚本仅创建两个文件夹。第一个需要 root 权限,第二个不需要。

/home/xoric/scripts/myscript.sh

#!/bin/bash
mkdir /etc/test1          #requires root
mkdir /home/xoric/test2   #does not require root

接下来,我创建一个运行此脚本的自定义快捷键。我用它注册了组合键 Ctrl+Alt+W。


第一次尝试

/命令:/home/xoric/scripts/myscript.sh

这仅用于测试目的。当按 Ctrl+Alt+W 时,将创建第二个文件夹。未创建第一个文件夹(需要 root 权限)。这是可以预料的,因为我在没有 root 权限的情况下运行脚本。


第二次尝试

命令: sudo /home/xoric/scripts/myscript.sh

当按 Ctrl+Alt+W 时,没有任何反应。这两个文件夹均未创建,即脚本未执行。我的期望是该脚本将以 root 权限运行并且没有密码提示(因为它是在 sudoers.d 中注册的)。然而,这种情况并非如此。


第三次尝试

命令: gnome-terminal -e“sudo /home/xoric/scripts/myscript.sh”

当按 Ctrl+Alt+W 时,会打开一个终端并要求我输入 root 密码。当我这样做时,脚本将被执行并创建两个文件夹。这就是我想要实现的,但无需输入密码。


对 Linux (Mint) 有更好了解的人知道为什么第二次尝试不起作用吗? Linux Mint 不允许使用 root 权限的快捷键吗?或者我在 sudoers.d 中注册脚本时犯了一个错误?提前谢谢了。

答案1

在朋友的帮助下我终于找到了问题所在。我在 sudoers.d 中的条目已损坏。它实际上包含字符串“用户名”,而不是我的实际用户名“xoric” - 一个典型的复制和粘贴错误。

更正该条目后,第二次尝试工作正常:按 Ctrl+Alt+W 现在会创建两个文件夹(脚本以 root 权限运行,无需密码提示)。

相关内容