2013-09-11 28 views
5

$HOME/path/to/script/myscript ve export PATH=$PATH:$HOME/path/to/script/'da bir kabuk komut dosyası yazıyorsam sudo -E myscript komut dosyasının doğru çalışması gerektiğini düşünüyor musunuz? sudo E seçeneği çalışmıyor mu?

From sudo man page:

-E -E (çevreyi korumak) seçeneği kullanıcı mevcut ortam değişkenleri korumak isteyen güvenlik politikasına işaret eder. Güvenlik seçeneği ‑E seçeneği belirtilmişse ve kullanıcının çevreyi koruma iznine sahip olmaması durumunda hata verebilir.

Ama sudo -E script komutu bulamıyorum. /absolute/path/to/script/'udeğişkenini sudo env için belirleyen dosyalara ekleyebileceğimi biliyorum, ancak almak istediğim yaklaşım bu değil.

yorum adresi için:
H2CO3 @: ben net etrafında yüzen sudo sudo görülen ve müthiş o böcek beni var, anlamıyla "Bana superuser çalışmak için root izinlerine ver" diyor. Problemi çözüp çözemeyeceğini bilmiyorum, ama temel olarak kusurlu bir yaklaşım gibi görünüyor. Sonra tekrar 90'ların ortalarında linux/bsd sistemlerini kullanmaya başladım, bu yüzden sadece sudo komutunun kendisiyle sorun çıkardım. @rici
:) = komut çalıştırılabilir izinleri var, ama bir şey * Nix sistemlerde çalışmaz zaman kontrol etmek kesinlikle bir şey

+0

Belki de daha fazla izin gerekiyor ... 'sudo sudo' deneyin ... Oh iyi ... –

+0

Komut dosyanızın yürütülebilir olduğundan emin oldunuz mu? – rici

+0

Linux/unix'in çoğu dağıtımı artık herhangi bir 'genel bilgi işlem 'görevini yerine getirmek için CLI gerektirmez. Sadece sudo CAN genel bilgisayar kullanımı için kullanıldığından, bu aracın temel amacı değil. Python bir hesap makinesi olarak kullanılabilir (ve çoğu zaman), fakat genel olarak 'genel bilgisayar yazılımı' değildir. Ben sadece, geliştirme için kullanılabilecek araçları ve yazdığım senaryoları yürütmek için sudo kullanıyorum. Bu nedenle, http://stackoverflow.com/help/on-topic, http://superuser.com/help/on-topic adresindeki içeriği veya bu soruyu kapalı olarak işaretleme kararınızı yeniden değerlendirmenizi rica ediyorum. konu. – MishaP

cevap

8

/etc/varsayılan olarak Sudoers çevreyi sıfırlamak için bir ayarı vardır. Ayrıca, sudo -E [cmd] çalıştırdığınızda geçerli olan bir varsayılan güvenli dosyayı da tanımlar.

/etc/sudoers dosyasını düzenlemeniz ve 'env_keep' eklemeniz ve korumak istediğiniz değişkenlerden bahsetmeniz gerekecek.

Standart env_keep + = "PATH"

ama bu yorumun dışında secure_path hat önce

. Daha sonra komutunuzu sudo-E ile deneyin.

+3

'secure_path satırını yorumlayın, bu hile yaptı, teşekkürler! – MishaP