Sudo

是否會再次提示我輸入 sudo 密碼?

  • May 26, 2014

這是我打算做的:

#!/bin/bash

sudo -i <<'EOF'
iptables-save | awk '/^[*]/ { print $1 } 
                /^:[A-Z]+ [^-]/ { print $1 " ACCEPT" ; }
                /COMMIT/ { print $0; }' | iptables-restore
EOF

我將保存以上內容並將其命名為 cleariptables.sh。我將其設置為執行檔。

它將被放置在以下路徑中名為 bin 的文件夾中:/home/cymbal/bin/

(其中 cymbal 是使用者名)

我將在桌面上創建一個 cleariptables.sh 的快捷方式。快捷方式的內容將是:

[Desktop Entry]
Version=1.0
Type=Application
Terminal=true
Icon[en_US]=nm-device-wired
Name[en_US]=ClearIPtables
Exec=gksudo /home/cymbal/bin/cleariptables.sh
Comment[en_US]=Flush iptables filters
Name=ClearIPtables
Comment=Flush iptables script
Icon=nm-device-wired

每當我點擊桌面快捷方式時,都會提示我輸入密碼,然後腳本就會執行。

問題:點擊桌面快捷方式提示我輸入密碼。由於腳本中有sudo -i,會再次提示我輸入密碼嗎?

您可以在文件中使用NOPASSWD指令。sudoers

將此行添加到您的/etc/sudoers文件中

your_login ALL = (root) NOPASSWD: /path/to/your/script

編輯此文件時,您應該使用visudo命令而不是正常文本編輯器。這將在保存更改之前檢查語法錯誤。

不,不應再次提示您輸入密碼。由於gksudo. 根據我的經驗,sudo如果您已經是 root,則永遠不要要求輸入密碼(儘管我找不到明確的文件)。

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