Görünüşe göre, buradaki kaygıyla başka kimsenin ilgilenmediği görülüyor. sudo
Betiğinizin içine dağıttığınızı koymak , kötü kullanıcı alışkanlıklarını teşvik eder . (Dağıtım yaptığınızı farz ediyorum çünkü "kullanıcı açısından" diyorsunuz.)
Gerçek şu ki, bankacılığın güvenlik ilkesine benzer uygulamaların ve komut dosyalarının kullanımında bir rehber vardır: Kişisel bilgilerinizi asla sizi arayan ve "bankanızdan" aradıklarını söyleyen ve var olanları söyleme benzer nedenlerden dolayı.
Uygulamalar için kural:
Sizden ne yapıldığından emin değilseniz, istendiğinde şifrenizi asla yazmayın . Bu, sudo
erişimi olan herkes için üç kere uygulanır .
Parolanızı yazıyorsanız, çünkü sudo
komut satırında koştuğunuzda harika. Bir SSH komutu çalıştırdığınız için yazıyorsanız, sorun değil. Bilgisayarınızda oturum açtığınızda yazıyorsanız, elbette, harika.
Yalnızca bir yabancı komut dosyasını veya yürütülebilir dosyasını çalıştırırsanız ve istendiğinde şifrenizi tam olarak girerseniz , betiğin onunla ne yaptığı hakkında hiçbir fikriniz yoktur . Bildiğiniz her şey için düz metin dosyasında geçici bir dosyada depolanıyor olabilir ve hatta kendisinden sonra temizleyemeyebilir.
Açıkçası, bilinmeyen bir dizi komutun çalıştırılmasıyla ilgili ayrı ve ek endişeler var root
, fakat burada bahsettiğim parola üzerindeki güvenliği korumak . Uygulamanın / komut dosyasının kötü amaçlı olmadığını varsaysanız bile, diğer uygulamaların onu ele geçirmesini ve kötü amaçlı olarak kullanmasını önlemek için şifrenizin güvenli bir şekilde kullanılmasını istiyorsunuz.
Bu yüzden, kendi kişisel cevabım, kök ayrıcalıklarına ihtiyaç duyuyorsa bülteninize koymak için en iyi şey şudur:
#!/bin/bash
[ "$UID" -eq 0 ] || { echo "This script must be run as root."; exit 1;}
# do privileged stuff, etc.
exec
- kendisini çağırın ama aynı zamanda süreci değiştirirken, komut dosyasının birden çok örneğini ortaya çıkarmayız