Şifrenin grafik bir arayüz üzerinden sorulması için sudo komutuna hangi seçeneği vermeliyim?


11

Bu sorun bir süredir beni rahatsız ediyor.

Arada sırada, sudokomutları yürütmesi gereken bir komut dosyası yazmam gerekiyor . Önceden böyle çalışacağımı bilmiyorum, bu sudoyüzden güzel bir grafik arayüzü (örneğin bir yazılım yüklerken açılır gibi) açmak için bir yol olduğundan eminim ama nasıl?

man sudodiyor ki:

-A          Normally, if sudo requires a password, it will read it from the current 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, the value specified by the askpass option in
            sudoers(5) is used

Bu yüzden çözümün içinde olduğundan eminim -Ave SUDO_ASKPASStuple ancak bunlara ne koyacağımı bulmayı başardım.


1
Linux'ta bunlar gtksudoveya gibi kullanıcı arabirimleri tarafından ele alınacaktır kdesudo. İşlerin OS-X tarafında ne olduğunu bilmiyorum, ama bu çizgiler boyunca bir şey aradığınızı varsayıyorum.
Caleb

Yanıtlar:


17

OS X'in bunu yapmak için tamamen temiz bir yolu yoktur, ancak sahte olmanın birkaç yolu vardır. İlk olarak, AppleScript'in grafik kimlik doğrulamasına dayalı sudo-ish işleri yapmak için iyi bir yolu vardır ve bunu kullanabilirsiniz:

osascript -e "do shell script \"stufftorunasroot\" with administrator privileges"

Bu mekanizmayı sudo zaman damgasını ayarlamak için kullanabilir ve daha sonra bir şeyler yapmak için normal sudo'yu (5 dakikalık zaman aşımı penceresinde) kullanabilirsiniz:

osascript -e "do shell script \"mkdir -p /var/db/sudo/$USER; touch /var/db/sudo/$USER\" with administrator privileges" && \
    sudo stufftorunasroot

Son olarak, bir parola istemek için AppleScript'i kullanabilir ve ardından sudo'ya iletebilirsiniz:

pw="$(osascript -e 'Tell application "System Events" to display dialog "Password:" default answer "" with hidden answer' -e 'text returned of result' 2>/dev/null)" && /
    echo "$pw" | sudo -S stufftorunasroot

bu harika ipucu için çok teşekkürler bekledi
apouche

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.