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.
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.
Yanıtlar:
sudo su
Komut "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
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.
sudo
çalışır su
ve 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.
sudo -i
root şifresi de istemez, bu yüzden soru ile ilgili değildir.
sudo su
yalnı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 bob
bob olacaksın, ama aynı yerde. Sonra sudo -i -u bob
bob olacaksınız, bob'un ana dizininde, bob'un varsayılan kabuğu ve bob'un .profile
ve diğer tüm giriş komut dosyalarının çalıştırıldığı.
man sudo
Neler hakkında daha fazla ayrıntı için bkz -i
. Maalesef man su
ayrı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 -i
teorik 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 PWD
aynı mı demek istediniz ?)
sudo su -
ve arasında bir fark var sudo -i
mı?
$PATH
ben kullandığınızda değiştirilir su
olmadan sudo
(kök şifresini kullanarak). Göre info su
(cevabınızda bağlantı kurmak daha iyi bir şey olabilir), su
gerçekten olduğunuz kullanıcı için şifre girişini okur. Muhtemelen $PATH
gözlemlediğim değişiklik sisteme bağlı (Debian 7'deyim).
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 man
da kullanılsa $PATH
bile ayarlandığını söylüyor --preserve-environment
. Bu yüzden sanırım gerçekten farklı versiyonları arasında bir fark var su
.
/etc/pam.d/sudo
ve /etc/pam.d/su
tamamen farklı veya tamamen aynı şeyleri yapmak üzere ayarlanmış olabilir.
Asıl sorun aklı başında ortam ortamlarından biridir.
sudo su
Yeni kabuğun kullanılması , çevresini komut veren kullanıcıdan alır - ki bu sorunlu olabilir.
Seninle sudo -i
temiz 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.
sudo -i
, buna benzer olduğunu söyler sudo su -
, bu da aslında ortamını komut veren kullanıcıdan almaz .
sudo su
vs. ile ilgili sudo -i
.