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


Yanıtlar:


30

İş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.


Teşekkürler, sana doğru cevap olarak oy verdim. Bir soru daha, sudo su -anlamsız mı?
Howard

SUDO geri referanslarını yavaşlatmak istiyorsanız faydalı olabilir. Bu durumda anlamsız değil.
Joel K

Kök olmayan bir kullanıcı haline geldiğinde argüman işleme, ortam değişkeni işleme ve güvenlik açısından da büyük farklılıklar vardır. Buraya eklediğim şeyleri görün: serverfault.com/q/601140/102814
Craig Ringer

1

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


susadece tek bir komut da çalıştırabilir:su -c 'command ...'
Eliah Kagan

Sorusu arasındaki fark hakkında oldu sudo -ive sudo su -değil arasındaki sudove su.
Alessio Gaeta
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.