คุณสามารถขอรหัสผ่านโดยวิธีการของ GUI -A, --askpass
พร้อมรับคำด้วยความช่วยเหลือของ
จาก manpage:
-A, --askpass
Normally, if sudo requires a password, it will read it from the user's terminal. If the -A
(askpass) option is specified, a (possibly graphical) helper program is executed to read the user's
password and output the password to the standard output. If the SUDO_ASKPASS environment variable
is set, it specifies the path to the helper program. Otherwise, if sudo.conf(5) contains a line
specifying the askpass program, that value will be used. For example:
# Path to askpass helper program
Path askpass /usr/X11R6/bin/ssh-askpass
If no askpass program is available, sudo will exit with an error.
ดังนั้นคุณสามารถใช้โปรแกรมช่วยเหลือแบบกราฟิกเช่นssh-askpass
ที่ให้ผู้ใช้ใส่วลีรหัสผ่านโดยใช้ GNOME:
$ which ssh-askpass
/usr/bin/ssh-askpass
ดังนั้นเพิ่มบรรทัดต่อไปนี้ลงใน/etc/sudo.conf
:
# Path to askpass helper program
Path askpass /usr/bin/ssh-askpass
และคุณจะพบพรอมต์รหัสผ่าน GUI:
คุณสามารถใช้โปรแกรมอื่นเช่นzenity
นี้ได้ ตัวอย่างที่ฉันใช้ดังต่อไปนี้:
$ cat /etc/sudo.conf
# Path to askpass helper program
Path askpass /usr/local/bin/zenity_passphrase
ชุดzenity_passphrase
สคริปต์ที่กำหนดเองที่จะใช้โดยตรงเป็นคำสั่งอยู่ที่ไหน:
$ cat $(which zenity_passphrase)
#!/bin/bash
zenity --password --title="sudo password prompt" --timeout=10
ซึ่งทำงานเหมือน:
บันทึก:
คุณยังสามารถใช้gksudo
(GTK + ส่วนหน้าสำหรับ su และ sudo) แทนsudo
สคริปต์ที่ถามด้วยพรอมต์ GUI:
นอกจากนี้คุณยังสามารถใช้pkexec
( แอปพลิเคชันpolkit ) กับแอปพลิเคชั่น / คำสั่งบางรายการ (สำหรับผู้อื่นที่จำเป็นต้องกำหนดค่า):
pkexec leafpad
มันจะให้Cannot open display:
หลังจากป้อนรหัสผ่าน จำเป็นต้องมีการกำหนดค่าเพิ่มเติมหรือไม่?