“Su-s” ve “sudo -s” komutları arasındaki fark nedir?


23

İki süper kullanıcı komutu arasındaki fark nedir su -sve sudo -s?

Her ikisi de süper kullanıcı hesabına erişimi olan bir kabuk verir.

Yanıtlar:


30

Uygulamada, ikisi de sizi süper kullanıcı yapacak. Ancak, biraz farklı şekillerde, biraz farklı şeyler yaparlar.

İlk olarak, su -sizi bir giriş kabuğuna geçirir, oysa sudo -skullanmaz. Uygulamada, sizin ortam değişkenleri geçiş olmayacak bu genellikle araçlar root'için s sudo -s. Sadece koşmak anlamına Not suiçin değil bir giriş kabuğu alabilir veya sudo -ibir giriş kabuğu olsun [değil tüm sürümlerinde] olarak.

İkincisi suve su -sizden yeni kullanıcı olarak kimlik doğrulamanızı isteyerek yeni bir kullanıcıya geçin. sudo -sve sudo -i(ve sadece düzenli olarak sudo foo) /etc/sudoers, muhtemelen mevcut kimliğinizi onaylamanızı isteyerek [önceden ] yetkili olduğunuzu belirten bir komutu çalıştırmanıza izin verir .

Eğer gerçekten sevimli olmak istiyorsanız , root kullanıcısı ( bölüm) tarafından çalıştırılan sudo su -root ( su -) olarak giriş yapmayı talep edecek şekilde de çalıştırabilirsiniz sudo.

Kök kullanıcı kilitliyse (Ubuntu'da olduğu gibi), root kullanarak giriş yapamazsınız su. Bu durumda, kullanmanız sudo -sveyasudo -i


5
Ayrıca birçok dağıtımda sudo, normal kullanıcılara varsayılan ayrıcalık vermeyeceğini söylemek de önemlidir . Bu sistemlerde, sutek seçenek bu.
Telemachus

12
su -s

Bir kullanıcıya geçecektir (bu durumda kök) ve belirttiğiniz kabuğu ya da kabuğu belirlemek için kullanılan birkaç yöntemden birini başlatır. Bu, gerçekten hızlı bir şekilde root olarak zsh veya başka bir kabuk kullanmak istiyorsanız ... ve nedense sudo kullanmadığınız için kullanışlıdır.

sudo -s

Sadece bir kök kabuğu verecek olan sudo kullanarak bir kabuk çalıştırır. Ona bir kabuk da geçirebilirsin.

su -s daha eski, sudo -s komutundan çok daha eski. Tahminime göre, geliştirici sudo kullanmaya olabildiğince kolay gelmeye çalışıyor.


9

su, bir kabuğu çalıştırmak veya belirli bir komutu çalıştırmak için başka bir kullanıcıya geçmek için kullanılan bir komuttur. Diğer kullanıcı olarak kimlik doğrulaması yapmanız gerekir. Kök için dava açmak istiyorsanız, kök şifre gerekir.

sudo, farklı bir kullanıcı olarak başka bir komutu (isteğe bağlı olarak bir kabuk) yürütme komutudur. Kendi kullanıcı olarak kimlik doğrulaması yapmanız gerekir . Sudo kullanma izni (ve onunla yapabileceğiniz belirli şeyler) sudoers dosyasında bir yönetici tarafından belirtilir.

Birine su'ya erişim izni verirseniz (örneğin, onlara kök şifresi vererek), bununla her şeyi yapabilir - başka komutları çalıştırın, bir kabuk açın, şifreyi değiştirin, ssh ile uzaktan giriş yapın, vb. Esasen diğer hesaba erişmelerine izin veriyorsunuz, 'su' onunla yapabilecekleri tek şey.

sudo çok daha ince taneli. Bir kullanıcıya veya bir gruba ayrıcalıklar verebilirsiniz. Bir kullanıcının veya grubun belirli bir zaman dilimi içerisinde sudo yapmasına izin verebilirsiniz (örn. Pazartesiden cumaya, sabah 9'dan akşam 5'e kadar). Çalıştırmasına izin verilen belirli bir komut listesi belirtebilirsiniz (örneğin, yalnızca / usr / local / bin / run_backup) veya komutları çalıştırmasına izin verilen belirli bir kullanıcıyı belirtebilirsiniz (örneğin, www, yedekleme, personel vb.) ).

Esnekliğinin yanı sıra, sudo her durumda daha iyi bir çözümdür, çünkü kullanıcının zaten sahip olmadığı hiçbir şeye erişim gerektirmez. Birine sudo erişimi verirseniz, sudoers dosyasındaki satırlarını kaldırarak veya sudoers grubundan kaldırarak iptal edebilirsiniz. Hesaplarını silerseniz, erişimleri kaybolur.

Onlara kök şifre verirseniz, onunla ilgili hoş olmayan bir şey yapmadıklarını varsaysanız bile, sonsuza dek bileceklerdir. Yönetici görevleri için kök erişimine ihtiyaç duyan birden fazla kişiye sahipseniz, bu, herhangi biri ne zaman ayrılırsa tüm kök şifrelerini değiştirmek veya ayrıldıktan sonra sisteminize tam erişime sahip olmalarının uygun olduğunu varsaymak anlamına gelir.


su ve sudo komutları arasındaki farkların iyi bir açıklaması.
John aka hot2use,

5
  • su size kök kullanıcı şifresini soracaktır .
  • Sudo size soracaktır size şifre (ve sudo erişim bunu yapabilmeleri için temizlenmesi gerekir).

2
Genellikle sudo için varsayılan davranış budur, ancak sizden kök veya başka bir şifre isteyecek şekilde de yapılandırılabilir.
theotherreceive

2

Gönderen Vikipedi :

su (yedek kullanıcı veya anahtar kullanıcısı için kısa), çıkış yapmadan başka bir kullanıcının kabuğunu çalıştırmak için kullanılan bir Unix komutudur.

Sudo adlı bir komut, başka bir kullanıcı olarak bir komut çalıştırır, ancak hangi kullanıcıların hangi diğer komutları uygulayabileceklerini (genellikle / etc / sudoers adındaki bir yapılandırma dosyasında, visudo komutuyla en iyi düzenlenebilir) bir komut dosyasında uygulayabilir. Su'dan farklı olarak, sudo kullanıcıları hedef kullanıcınınkinden ziyade kendi parolalarıyla doğrular (belirli komutları belirli ana bilgisayarlarda belirli parolalar arasında parola paylaşmadan ve katılımsız terminallerin riskini azaltırken) yetkilendirmesine izin vermek için.


2

Tam adı geçen almıyor bir şey şudur: hangisini yapabilirsiniz sık kullandığınız hangi dağıtım bağlıdır ve kim çalıştırır kullanın. Biri veya diğeri ( suveya sudo) muhtemelen varsayılan olarak tam kullanım için ayarlanmamış. Örneğin, bazı kişilerin söylediği gibi, OS X ve Ubuntu, root hesabını ( su) varsayılan olarak devre dışı bırakır . Aynı şekilde, Debian, normal kullanıcılara varsayılan hiçbir varsayılan ayrıcalık vermez sudo. (Tüm bu sistemlerde, bu varsayılanları değiştirebilirsiniz, ancak yalnızca başlamak için bir tür yönetimsel ayrıcalıklarınız varsa. Sanırım sunucu dışı bir durumdan bahsediyoruz ve makineyi SÜ’den beri yönetiyorsunuz. sf, ancak sadece durumda)

Son olarak, sudodaha iyi ayarlanmış bir şekilde kullanmak istiyorsanız man sudoers, / etc / sudoers dosyasını nasıl düzenleyeceğinize bakmalısınız . Ancak, asla elle düzenlememelisiniz. Program visudo'yu kullanın - düzenlemelerinizi en az minimum düzeyde akıllıca olmadıkça kaydetmenizi önler. Sizi kendi sisteminizin yönetici ayrıcalıklarından uzak tutabilecek basit hatalara karşı mükemmel bir koruma sağlar.


1

Mac OS X gibi süper kullanıcı hesabının devre dışı bırakıldığı sistemlerde suçalışmaz; sudo -sirade.

Ayrıca, görünen o ki su -s, en azından makinemde mevcut değil.


Tersi genellikle doğrudur. Diğer bir deyişle, eski unix benzeri birçok dağıtımda, düzenli kullanıcıların altında hiçbir varsayılan imtiyaz yoktur sudo(ki bunlar her zaman yüklü değildir).
Telemachus

1

Bu giriş size yardımcı olabilir. suKısaca su root, diğer kullanıcı olarak haklarınızı süresiz olarak koruyorsunuz. Daha tehlikeli, ancak belirli bir süre boyunca çok sayıda kök erişim komutu kullanıyorsanız daha uygun olur.


1

su temelde başka bir kullanıcı ayrıcalıklarına sahip yeni bir giriş kabuğu oluşturacaktır (login) sudo yalnızca geçici olarak belirttiğiniz kullanıcıyı kullanarak komut çalıştırmanıza izin verecektir. FreeBDS gibi bazı UNIX'lerde '-s' seçeneği yoktur.

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.