Sudo su ve sudo -i arasındaki fonksiyonel fark nedir?


19

Neden bu örnekte diğeri tercih edilir?

sudo su
echo "options iwlwifi 11n_disable=1" >> /etc/modprobe.d/iwlwifi.conf
exit

Lütfen Ubuntu belgelerine bağlantılar sağlayın.


Lütfen "kabul edilen" cevaplar seçiminizi yeniden düşünün. En düşük oyu alan tek aslında doğru olanıdır.
Kyle Strand

Yanıtlar:


15

sudo suKomut "anahtar kullanıcı" anlamına gelir ve başka bir kullanıcı olmayı sağlar. İzin verilen bir kullanıcının sudoers dosyasında belirtildiği gibi süper kullanıcı veya başka bir kullanıcı olarak bir komut yürütmesine izin verir.

‑İ (ilk girişi simüle et) seçeneği, hedef kullanıcının şifre veritabanı girişi tarafından giriş kabuğu olarak belirtilen kabuğu çalıştırır. Bu, .profile veya .login gibi girişe özgü kaynak dosyalarının kabuk tarafından okunacağı anlamına gelir. Bir komut belirtilirse, kabuğun optionc seçeneği ile yürütmek üzere kabuğa geçirilir. Herhangi bir komut belirtilmezse, etkileşimli bir kabuk yürütülür.

Kaynak: ManPage


1
"Su kullanmak güvenlik sorunu yaratır ve aslında tehlikelidir." Ne?
Monica'ya Zarar Vermeyi Durdurun

1
Çalıştırırsanız sudo su, kök parolayı değil parolanızı girmeniz istenir. Kök kullanıcının bir parolasına bile ihtiyacı yoktur. Ne olursa olsun, bir yönetici kök parolayı kullanıyorsa, bu normal kullanıcıların bildiği anlamına gelmez.
Monica'ya Zarar Vermeyi Durdurun

2
Hayır, olmayacak. root olarak sudoçalışır suve root suşifresini bilmeden herhangi bir kullanıcıya olabilir . Sistemin nasıl çalıştığıyla ilgili temel yanlış anlaşılmalar, aşağı yönde bir IMO'yu hak ediyor.
Monica Zararını Durdur

3
Ve yorumlarınızı silmek sadece karışıklığa neden olur.
Monica Zararını Durdur

1
Çok daha iyi yapmıyorsun. sudo -iroot şifresi de istemez, bu yüzden soru ile ilgili değildir.
Monica Zararını Durdur

14

sudo suyalnızca geçerli kullanıcıyı kök olarak değiştirir. Ortam ayarları (PATH gibi) aynı kalır.

sudo -i root yeni giriş yapmış gibi yeni bir ortam yaratır.

Diğer kullanıcıları kullanırsanız fark daha belirgindir. Sonra sudo su bobbob olacaksın, ama aynı yerde. Sonra sudo -i -u bobbob olacaksınız, bob'un ana dizininde, bob'un varsayılan kabuğu ve bob'un .profileve diğer tüm giriş komut dosyalarının çalıştırıldığı.

man sudoNeler hakkında daha fazla ayrıntı için bkz -i. Maalesef man suayrıntılara ışık tutuyor.


man suŞunun için söyleyecek bir sürümü (login-1: 4.1.4.2 + svn3283-3ubuntu5.1) bulundu:

$ PATH /etc/login.defs ENV_PATH veya ENV_SUPATH seçeneklerine göre sıfırlama (aşağıya bakın);

$ IFS, ayarlanmışsa “<space> <tab> <newline>” olarak sıfırlanır.

Ortam için varsayılan davranışın aşağıdaki olduğuna dikkat edin:

$ HOME, $ SHELL, $ USER, $ LOGNAME, $ PATH ve $ IFS ortam değişkenleri sıfırlanır.

--Login kullanılmazsa, yukarıdaki değişkenler dışında ortam kopyalanır.

--Login kullanılırsa, $ TERM, $ COLORTERM, $ DISPLAY ve $ XAUTHORITY ortam değişkenleri ayarlandıysa kopyalanır.

Diğer ortamlar PAM modülleri tarafından ayarlanmış olabilir.

Dolayısıyla sudo su, ortamın değişip değişmeyeceği ve ne ölçüde değiştiği dağıtımınıza ve kurulumunuza bağlıdır. Böylece sudo -iteorik olarak daha taşınabilir.


su does değişim ortamı ayarlarını ve kullanan bir giriş simüle etmek için kullanılabilir -ya da -l. Hatta olmadan -l, $PATH olduğu değişti. Bu iddiaları yapmadan önce test edin! (Bunu PWDaynı mı demek istediniz ?)
Kyle Strand

Asıl soru şu ki, sudo su -ve arasında bir fark var sudo -imı?
Kyle Strand

1
Bunu açıkça düşünüyor ve kabuğun içinde biraz test yapıyorsunuz, bu yüzden snippy "bu iddiaları test et" yorumum için özür dilerim. Dedi ki, benim sistemde bunu gözlemlemek yok $PATHben kullandığınızda değiştirilir suolmadan sudo(kök şifresini kullanarak). Göre info su(cevabınızda bağlantı kurmak daha iyi bir şey olabilir), sugerçekten olduğunuz kullanıcı için şifre girişini okur. Muhtemelen $PATHgözlemlediğim değişiklik sisteme bağlı (Debian 7'deyim).
Kyle Strand

1
Hmmm. Benim man su(bağlandığınızdan daha uzun olan) bunun bir parçası olduğunu söylüyor shadow-utils 4.1.5.1. Sayfam manda kullanılsa $PATHbile ayarlandığını söylüyor --preserve-environment. Bu yüzden sanırım gerçekten farklı versiyonları arasında bir fark var su.
Kyle Strand

1
Davranış ayrıca PAM yapılandırmanızdan da etkilenir. /etc/pam.d/sudove /etc/pam.d/sutamamen farklı veya tamamen aynı şeyleri yapmak üzere ayarlanmış olabilir.
Monica

7

Asıl sorun aklı başında ortam ortamlarından biridir.

sudo suYeni kabuğun kullanılması , çevresini komut veren kullanıcıdan alır - ki bu sorunlu olabilir.

Seninle sudo -itemiz bir kök kabuğu olsun.

Bkz . Sudo ve kabukları ile ilgili özel notlar

Bir kök kabuk oluşturmanın nadiren gerekli olduğunu gözlemlemek için kalır.


Bağlandığınız "özel notlar" sudo -i, buna benzer olduğunu söyler sudo su -, bu da aslında ortamını komut veren kullanıcıdan almaz .
Kyle Strand

@KyleStrand thx bunu işaret ettiği için - bir yazım hatasıydı, soru gerçekten sudo suvs. ile ilgili sudo -i.
guntbert
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.