Shell-Script

Linux Mint:如何在不輸入密碼的情況下通過快捷鍵以 root 權限執行腳本?

  • December 13, 2020

我正在使用 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 中註冊腳本時出錯了?提前謝謝了。

在朋友的幫助下,我終於找到了問題所在。我在 sudoers.d 中的條目已損壞。它實際上包含字元串“使用者名”而不是我的實際使用者名“xoric”——一個經典的複制和粘貼錯誤。

在我更正了條目後,第二次嘗試正常:按 Ctrl+Alt+W 現在創建兩個文件夾(腳本以 root 權限執行,沒有密碼提示)。

引用自:https://unix.stackexchange.com/questions/619039