Değişken sudo ile kullanım için nasıl verilir?


24

Slackware'de, sbopkgbirinin kaynaktan bir paket oluşturmasına izin verilir. Repolar Debian kadar büyük değil ama güzel.

Bazı yazılım, değişken FFMPEGolarak ayarlanmışsa , örneğin VICE c64 öykünücüsündeki ortam değişkenlerini kullanabilir .yes , bu sağlayacak ffmpegemülatör kayıt.

Kullanmaya çalıştım

$ export FFMPEG=yes; sudo sbopkg -B -i vice

fakat ffmpeg devre dışı.

Bunun yerine kullanmak zorunda kaldım

$ su -
$ export FFMPEG=yes
$ sbopkg -B -i vice

hangi çalışır.

Ortam değişkenleri ile nasıl kullanılır sudo?

Yanıtlar:


39

Sudo'nun -Eseçeneğini kullanabilirsiniz :

FMPEG=yes sudo -E sbopkg -B -i vice

Kılavuzdan:

-E, --preserve-env

Kullanıcının mevcut ortam değişkenlerini korumak istediği güvenlik politikasına işaret eder. Kullanıcı çevreyi koruma iznine sahip değilse güvenlik politikası hata verebilir.

Bunun mevcut tüm ortam değişkenlerinizi verdiğini unutmayın . Aşağıdaki sözdiziminde yalnızca ihtiyacınız olan ortam değişkenlerini dışa aktarmak daha güvenlidir :

sudo FMPEG=yes sbopkg -B -i vice


Teşekkürler ama işe yaramadı (.-E seçeneği) diğer satır tamam yani ilk cevap ben doğru olarak seçin.
elbarna

11

sudoVerilen komutu çağırmadan önce ortamdaki değişkenleri temizler. Komutunuzun çalışması için ortamdaki değişkenleri korumasını istemeniz gerekir.

Ayrıca, gerekecek kullanmadan önce değişkeni ( ), çağırarak aynı seferde atamak ( ) veya kullanım ( ).exportFMPEGsudoexport FMPEG=yes; sudosudoFMPEG=yes sudoenvenv FMPEG=yes sudo

Ortam değişkenlerini korumak için, -E(veya --preserve-env) kullanın :

$ env FMPEG=yes sudo -E sbopkg -B -i vice

Bunun gibi belirli ortam değişkenlerini ayarlamak da mümkündür:

$ sudo FMPEG=yes sbopkg -B -i vice

Bu, güvenlik politikası nedeniyle başarısız olursa, bir kök kabuğu açın ve değişkeni oraya ayarlayın:

$ sudo -s
# env FMPEG=yes sbopkg -B -i vice
# exit

6

Not: (export a=b; command)eşittir a=b command. Destekleri not edin.

Sonra değişkeni değil sudodoğrudan uygularsak, sbopkgbunun yerine FFMPEG=yes sudo sbopkg -B -i vice yapabiliriz. sudo FFMPEG=yes sbopkg -B -i vice

Bir güvenlik polisi bunu önlerse, o zaman: sudo bash -c "FFMPEG=yes sbopkg -B -i vice"

(Kullanmayın -E, beklenmedik değişkenleri her türlü sızdıracağından bizi güvensiz.)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.