sudo -A
(SUDO_ASKPASS) seçeneği görünüşte nedenleri aşımını (örneğin timestamp_timeout) ayarını kaybetmek sudo.
Sudo -A seçeneğini kullanmak istiyorum ama bir bash komut dosyasında varsayılan zaman aşımı (örneğin, Ubuntu üzerinde 15 dakika) korumak istiyorum. Güvenli ve bir GUI iletişim kutusunda kullanıcının parolasını sormak istiyorum, ama sadece bir kez benim komut dosyası (50 + kez değil) istemek istiyorum.
Ayrıca, tüm betiğimi kök kullanıcı olarak çalıştırmak istemiyorum çünkü sadece kötü bir fikir olduğunu düşünüyorum. Ayrıca, komut dosyam tarafından oluşturulan dosyalar bu durumda yanlış sahipliğe sahip.
Sudo -A seçeneği, varsayılan zaman aşımı tutarsa benim için çalışır.
Sudo kılavuzundan:
Seçenek: ‑A
Normalde, sudo bir parola gerektiriyorsa, kullanıcının terminalinden okuyacaktır. ‑A (askpass) seçeneği belirtilirse, kullanıcının parolasını okumak ve parolayı standart çıktıya çıkarmak için bir (muhtemelen grafik) yardımcı program yürütülür. SUDO_ASKPASS ortam değişkeni ayarlanmışsa, yardımcı programın yolunu belirtir. Aksi takdirde, /etc/sudo.conf askpass programını belirten bir satır içeriyorsa, bu değer kullanılır. Örneğin:
# Path to askpass helper program
Path askpass /usr/X11R6/bin/ssh-askpass
BTW, kdesudo'da aynı sorun var - aynı komut dosyasında bir saniye sonra bile, her çağrıldığında parola gerekiyor.
Kubuntu 12.04 64 bit kullanıyorum.
İşte çözümün tüm bölümlerinin tam çalışma örneği. Bir bash betiği, burada önerildiği gibi bir "myaskpass" betiği ve bir ".desktop" dosyasından oluşur. Her şey% 100 GUI (terminal etkileşimi yok) olmalıdır, bu nedenle .desktop dosyası esastır (afaik).
$ cat myaskpass.sh
#!/bin/bash
kdialog --password "Please enter your password: "
exit 0
$ cat askpasstest1.desktop
#!/usr/bin/env xdg-open
[Desktop Entry]
Comment=SUDO_ASKPASS tester1
Exec=bash /home/user/test/askpasstest1.sh
GenericName=SUDO_ASKPASS tester1
Name=SUDO_ASKPASS tester1
NoDisplay=false
Path[$e]=
StartupNotify=true
Terminal=false
TerminalOptions=
Type=Application
Categories=Application;Utility;
X-KDE-SubstituteUID=false
X-KDE-Username=
Ve bir test senaryosunun kendisi. Bu, bu çözümü kullanırken iki kez şifrenizi soracaktır.
#!/bin/bash
sudo -k
SUDO_ASKPASS="/home/user/test/myaskpass.sh" sudo -A touch filemadeas_askpass1
touch filemadeas_regularuser1
SUDO_ASKPASS="/home/user/test/myaskpass.sh" sudo -A touch filemadeas_askpass2
touch filemadeas_regularuser2
ls -la filemadeas* > /home/user/test/fma.log
kdialog --title "Files Created" --textbox /home/user/test/fma.log 640 480
sudo rm filemadeas_*
rm fma.log
exit 0
kdesudo
yukarıda tarif ettiğim aynı problemi yaşıyor. sudo -A
Bir alternatif olarak test yapıyordum kdesudo
ve durumum için daha iyi, ancak zaman aşımı sorununu çözmedi (en azından şimdiye kadar).
gksudo
burada değil bir seçenek? linux.die.net/man/1/gksudo