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.