Yanıtlar:
İşlevsel olarak aynı şeye yakın olabilirler, ancak 'sudo -i' daha hafiftir ve ortamınızda bazı kullanışlı geri referansları tutar.
Ekstra işlemleri 'ps auxf' e bakarak görebilirsiniz (f size orman görünümü verir)
sudo -i bu işlem ağacını verir
jkrauska 4480 0.0 0.0 76828 1656 ? S 23:38 0:00 | \_ sshd: jkrauska@pts/0
jkrauska 4482 0.0 0.0 21008 3816 pts/0 Ss 23:38 0:00 | \_ -bash
root 4675 0.6 0.0 19512 2260 pts/0 S+ 23:42 0:00 | \_ -bash
sudo su - bu işlem ağacını verir
jkrauska 4480 0.0 0.0 76828 1656 ? S 23:38 0:00 | \_ sshd: jkrauska@pts/0
jkrauska 4482 0.0 0.0 21008 3816 pts/0 Ss 23:38 0:00 | \_ -bash
root 4687 0.5 0.0 43256 1488 pts/0 S 23:42 0:00 | \_ su -
root 4688 0.5 0.0 19508 2252 pts/0 S+ 23:42 0:00 | \_ -su
Aynı bash işlem pidinden (4482) başladıklarını unutmayın, ancak bu su - başka bir adım ortaya çıkıyor gibi görünüyor.)
İlk 'sudo'nuz zaten erişim seviyenizi kök seviyesine yükseltiyor. Sudo içinde bir kullanıcı adı belirtmeden su çalıştırıldığında, geçerli kullanıcı iki kez rootlanır.
Bunu araştırmanın başka bir yolu da her iki komutu strace -f ile çalıştırmaktır.
strace -f -o sudoi sudo -i
vs
strace -f -o sudosu sudo su -
Bu iki çizgiyi ayırırsanız, sudo su için daha fazla exeve çalıştırıldığını göreceksiniz.
Bir şey daha.
sudo -i , SUDO tarafından ayarlanan ekstra ortam değişkenlerini korur.
SUDO_USER=jkrauska
SUDO_UID=1000
SUDO_COMMAND=/bin/bash
SUDO_GID=1000
sudo su - bu değişkenleri toplar.
Atış cevabı: Hayır, aynı değiller.
Uzun cevap: sudo ve su - aynı görevi gerçekleştiren, sizi kök ayrıcalıklarına yükselten farklı programlardır.
su , Linux sistemlerinde kök salmanın fiili yolu olmuştu. Ancak her zaman ayrıcalıkların ayrılması ve bazı denetim bilgilerinin geride bırakılması gerekti. Ayrıca ne zaman su yaptığınızda - yaptığınız her şey kök olarak yapılır ve bu kadar güce sahip olmak tehlikelidir. İşte sudo kurtarmaya geldi.
sudo bazı özelliklere sahiptir su yok. Sudo'daki anahtar öğe "one" komutunu root olarak çalıştırabilmeli ve sonra da normal kullanıcıya ayrıcalıkları bırakabilmeli. Örnek: Kök sahip olduğu bir dosyayı kaldırın.
sudo rm /root/someFile
Bu komut dosyayı siler, çünkü sudo başka bir komuttan önce her sudo komutunu kullandığınızda sizi kök dizinine yükseltir. Bir sonraki komutunuz normal bir kullanıcı gibi çalıştırılacaktır (başlangıçta sudo komutunu eklemezseniz). Bu, yönetici görevini yerine getirmenize ve ardından tehlikeli durumlardan kaçınmanıza yardımcı olacak ayrıcalıkları hemen bırakmanıza olanak tanır.
sudo ayrıca, bir kullanıcının çalıştırabileceği program kümesini kısıtlamak, sudo ve diğer şeyler altında çalıştırılan komutları günlüğe kaydetmek gibi başka avantajlar da sağlar. Daha fazla bilgi içinKısaca sudo
Bunu yaptığınızda su - ya -i sudo aynı şeyi. Bu kök haline geliyor, ancak su ve sudo'nun tamamen farklı olduğunu ve size bir sistem yöneticisi olarak farklı araçlar sunduğunu unutmayın . Şahsen ben ASLA su çalıştırmam - ve pam politikam bunu yasaklıyor , kimsenin çalıştırmasına izin vermiyor. Sistemlerimde her zaman eklenen faydaların sudo nedenini kullanmanız gerekir.
Daha fazla bilgi: sudo'yu kullanma ve etkinleştirme
su
sadece tek bir komut da çalıştırabilir:su -c 'command ...'
sudo -i
ve sudo su -
değil arasındaki sudo
ve su
.
sudo su -
anlamsız mı?