Ben sudo ile çalıştırmam gereken bir betiğim var.
#!/bin/bash
cp "$@" /destionation/dir
İyi bir senaryo mu yoksa birisi hedef hedefini kısıtlamayı geçebilir mi?
Önerileriniz için teşekkürler.
Ben sudo ile çalıştırmam gereken bir betiğim var.
#!/bin/bash
cp "$@" /destionation/dir
İyi bir senaryo mu yoksa birisi hedef hedefini kısıtlamayı geçebilir mi?
Önerileriniz için teşekkürler.
Yanıtlar:
Şey, küçük bir yazım hatası var: /destionation
yerine /destination
.
Orada Hangi Bu betiğin güvenlik sorunları.
Bir kullanıcı geçebilir `sudo /bin/bash`
dosya adı olarak, ve sonra bir kök kabuğu olurdu.
Ayrıca aşağıdakiler gibi komutları yerleştirebilirler:
`sudo /bin/bash; echo "hello" >> /tmp/from_root`
Kök kullanıcı olarak çalışan herhangi bir işlem grubunu oluşturmak için.
Bu betiği kullanmamanı tavsiye ederim çünkü hedef dizin sadece önemli değil, aynı zamanda daha büyük sorunların var.
Muhtemelen daha iyi bir çözüm, dünyaca yazılabilir bir dizin oluşturmaktır, böylece sudo izinlerine ihtiyacınız yoktur.
echo "$@"
, fakat./script '`echo $0`'
döner_`echo $0`
(alt çizgi olmadan). İle aynı./script \`echo \$0\`
. Bash otomatik olarak komut dosyalarına ilettiği argümanlardan kaçıyor mu?