HISTIGNORE'ı " sudo -S " olarak ayarlayın
$ export HISTIGNORE='*sudo -S*'
Ardından şifrenizi güvenle sudo'ya iletin:
$ echo "your_password" | sudo -S -k <command>
"HISTIGNORE", bu komutu tarihe kaydetmemek anlamına gelir. Bu bellekteki veya "~ / .bash_history" dosyasındaki geçmiş.
Örneğin, aşağıdakiler, şifrenizin geçmişini tutmadan şifrenizi sudo komutuna güvenli bir şekilde aktaracaktır.
“-S”, şifre için stdin kullanmak anlamına gelir,
“-K”, sudo'yu her zaman sormaya zorlamak için önbelleğe alınmış bilgileri yok saymak anlamına gelir. Bu tutarlı davranış için.
$ export HISTIGNORE='*sudo -S*'
$ echo "<your_password>" | sudo -S -k whoami
$ echo "<your_password>" | sudo -S -k cat /etc/shadow
$ echo "<your_password>" | sudo -S -k bash /tmp/myscript.sh
Yukarıdaki yöntemin dezavantajı, daha sonra tarihte koştuğunuz komutları görmek isterseniz orada bulunmayacaklarıdır. Başka bir yöntem de sudo kimlik doğrulama kimlik bilgisi önbelleğini güncellemektir (varsayılan olarak 5 dakika zaman aşımı ile etkindir), ardından sudo'yu ayrı ayrı çalıştırın. Ancak bunun dezavantajı, 5 dakikalık önbellekten haberdar olmanız gerektiğidir.
Örneğin:
$ export HISTIGNORE='*sudo -S*'
$ echo "<your_password>" | sudo -S -v
$ sudo whoami
$ echo "<your_password>" | sudo -S -v
$ sudo cat /etc/shadow
$ echo "<your_password>" | sudo -S -v
$ sudo /tmp/myscript.sh
Not Her komuttan önce bir sudo koştum, sudo önbelleğinin güncellenmiş olduğundan emin olmak için varsayılan olarak 5 dakika. Evet, whoami 5 dakika sürmemelidir, fakat tutarlılık için her komuttan önce çalışmasını sağlayabilirim. "Export HISTIGNORE = ' sudo -S komutunu da ekleyebilirsiniz.'"~ / .bashrc dosyanızda, sonra yükleyin". ~ / .bashrc "veya logff sonra giriş yapın. Ancak, bunu komut dosyası amacıyla kullanmayı düşünüyorum, bu yüzden en iyi güvenlik uygulamaları için tüm komut dosyalarımın başında tutacağım." echo "ayarı | sudo -S -v "yerine bir değişkene de iyi bir fikir olabilir, daha sonra değişkeni kök ayrıcalıklarına ihtiyaç duyan her komuttan önce çalıştırın, Janar'ın yorumuna bakın." John T "nin yorumu da" -k "parametresini içermelidir "sanki" -k "olmadan" sudo -S "yi çalıştırıyorsanız ve sudo kimlik doğrulama önbelleği zaten sizin kimlik bilgilerinizi içeriyor (ve hala geçerliyse, varsayılan sudo kimlik doğrulama önbelleği 5 dakikadır), sonra bash parolanızı bir komut olarak çalıştırır; kötü.
halt
Kök olarak koşman gerek .