Sudo ile hangi ortamı elde ederim?


15

Sudo'yu çalıştırdığımda, çevreme tam olarak ne oluyor?

Koştuğumda sudo command, benim veya kökümün çevresini görmüyor gibi görünüyor. Örneğin, her ikisi için de yolum var /usr/local/bin, ancak programın birini tam yol olmadan çalıştırmaya çalışırsam başarısız olur.

Sudo'nun kök olarak çalıştığını düşündüm ve dolayısıyla kök ortamına sahip oldum. Bash'ın sudo altında root veya normal kullanıcımdan farklı bir şekilde yürütülmesi farklı bir yol var mı?

DÜZENLE:

sudo -iSon zamanlarda kullanıyorum , ancak şu anki çalışma dizinim ayarlandığı için sorunlara neden oluyor /root. Bu beklendiği gibi (sorta), ama hala sudo'nun neden çalıştırılabilir dosyalarımı tanımadığını anlamıyorum /usr/local/bin.

DÜZENLE:

Fedora 15 kullanıyorum.


Hangi işletim sistemini kullanıyorsunuz (eğer Linux, hangi dağıtım)? Yapılandırmanın (çok) birçok yolu vardır PATHve bazen en son kimin geçersiz kıldığını bulmak kolay değildir. Bazı sistem ayarları (örn. PAM'de), sudo'nun kendisi veya bir sonraki profil komut dosyası olabilir.
Gilles 'SO- kötü olmayı bırak'

@ Gilles- İyi bir noktaya değindin. İşletim sistemimi ekledim. Ben sadece Fedora (Ubuntu kullanmak için kullanılan) gerçekten fark ettim, ama onlar kolaylık kurulumu çok eklemedim çünkü olduğunu düşündüm.
beatgammit

Yanıtlar:


6

Fedora varsayılanları hakkında bilmiyorum, ama Debian sudovarsayılan secure_pathseçeneği varsayılan değeri kullanarak varsayılan /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin.

Bu, her kullandığınızda yolun bu değere değiştirildiği anlamına gelir sudo; ancak kullandığınızda sudo -i, yol bundan sonra kök kullanıcının RC dosyaları tarafından değiştirilir.


Bu secure_pathseçeneği bilmiyordum . Varsayılan, yüklememe dahil edilmedi /usr/local/bin. Teşekkürler, bu gerçekten net şeyler yardımcı oldu!
beatgammit

4

Bu gibi şeylerle bunu oldukça kolay kontrol edebilirsiniz

Çıktısını karşılaştırın

sudo env 
env

Ve benzeri şeyler

sudo whoami 
whoami

Bu şekilde kurulumunuzda nelerin eksik olduğunu bulmayı deneyebilirsiniz.


Harika, bunu bilmiyordum. Her neyse, /usr/local/binbenim sudo env benim değil, ama benim kök env ve kullanıcı env. Bu neden?
beatgammit

sudo whoami rootbeklendiği gibi geri döner . Benim sudo env'imin root env'imden farklı olmasına ne sebep olabilir?
beatgammit

Bilmiyorum, ancak bir yerde bazı eksik kurulumlar olmalı, / usr / local / bin genellikle dahil edilir. Belki bazı yapılandırmalarda yanlışlıkla $ PATH ortamını temizlediniz?
Johan

Sudo /root/.bashrc kaynağını kullanıyor mu? /usr/local/binKök yoluna eklediğim yer (maalesef manuel olarak yapmak zorunda kaldım)?
beatgammit

Sanırım mermilerinizin global yapılandırmasını değiştirmeli ve ne olacağını görmelisiniz. Eğer bash çalıştırıyorsanız /etc/bash.bashrc gibi bir şey olurdu
Johan

2

sudo -iKomutunun benzetmek, başlangıç giriş. Debian sistemimde ayrıca:

Bu, .profile veya .login gibi girişe özgü kaynak dosyalarının kabuk tarafından okunacağı anlamına gelir. Bir komut belirtilirse, yürütmek için kabuğa geçirilir. Aksi takdirde, etkileşimli bir kabuk yürütülür. sudo, kabuğu çalıştırmadan önce kullanıcının ana dizinine geçmeye çalışır. Ayrıca, ortamı başlatır ve DISPLAY ve TERM'i değiştirmeden HOME, MAIL, SHELL, USER, LOGNAME ve PATH öğelerinin yanı sıra Linux ve AIX sistemlerindeki / etc / ortamının içeriğini ayarlar. Diğer tüm ortam değişkenleri kaldırılır.


0

sudo'In env_keepparametresini içerecek şekilde ayarlayabilirsiniz PATH, ancak bunu yapmanın güvenlikle ilgili sonuçlarını aklınızda bulundurmalısınız.

visudo

... başlatacaksanız $EDITOR, Defaults env_keep =uygun şekilde değişiklik yapabilirsiniz .

Ayrıca, dosya yolunu ekleyerek sistemin yoluna / usr / local / bin ekleyebilirsiniz /etc/profile.d.

Örneğin:

cat <<EOF > /etc/profile.d/tjameson.sh
export PATH=$PATH:/usr/local/bin
EOF

sudoözel işlemesi vardır, PATHbu yüzden bunu yapmamalısınız.
Arrowmaster
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.