Sudo'yu bir komut dosyası için kullanabilmek için şifremi parametre olarak çalıştırmak istiyorum. denedim
sudo -S mypassword execute_command
ama başarılı olamadı. Herhangi bir öneri?
Sudo'yu bir komut dosyası için kullanabilmek için şifremi parametre olarak çalıştırmak istiyorum. denedim
sudo -S mypassword execute_command
ama başarılı olamadı. Herhangi bir öneri?
sudo
tür kirli saldırılardan kaçınmak için belirli programlara / kullanıcılara / gruplara şifre sormayacak şekilde doğru şekilde yapılandırmak daha iyidir .
Yanıtlar:
-S anahtarı sudo'nun parolayı STDIN'den okumasını sağlar. Bu yapabileceğin anlamına gelir
echo mypassword | sudo -S command
şifreyi sudo'ya geçirmek için
Ancak, kullanıcının root olup olmadığını kontrol etme gibi bir komutun parçası olarak parolayı geçirmeyi içermeyen başkalarının önerileri, güvenlik nedeniyle muhtemelen çok daha iyi fikirlerdir.
sudo chmod -R 0100 myScriptFolder
? Bu, güvenlik sorunlarını çözmez mi (bilgisayarınızı sizden başka kimsenin root olarak kullanmaması koşuluyla)?
s
Komut dosyanızın bitini, ihtiyaç duymaması sudo
ve root olarak çalışması için ayarlayabilirsiniz (ve komut dosyasında kök parolanızı yazmanız gerekmez):
sudo chmod +s myscript
+s
setuid bitidir. +t
yapışkan bittir.
echo -e "YOURPASSWORD\n" | sudo -S yourcommand
echo -e "YOURPASSWORD\n" | sudo -S "run -x"
. Diyor sudo: run -x: command not found
. Bunu nasıl aşacağınıza dair bir fikriniz var mı?
Bir seçenek sudo için -A bayrağını kullanmaktır. Bu, şifreyi sormak için bir program çalıştırır. Sormak yerine, programın devam edebilmesi için parolayı yazan bir betiğiniz olabilir.
# Make sure only root can run our script
if [ "$(id -u)" != "0" ]; then
echo "This script must be run as root" 1>&2
exit 1
fi