Sudo kullanıcısı ile kök kullanıcı arasındaki fark [kapalı]


21

/etc/sudoersKullanıcılar ne yapabilirim dosya listeleri sudokomuta

Kök kullanıcı /etc/sudoersdosyayı oluşturur ve değiştirir .

Bu kavramı anlamak benim için zor.

Eğer sudo privilage'a sahip tüm kullanıcılar sudoersgruba aitse , o zaman hepsi sudo sukomutu vererek kök olabilir .

O zaman asıl kök kullanıcı kimdir ve sudoers grubundaki kullanıcıların güçlerini nasıl kontrol eder?

Lütfen bana açıkla.


4
Bence anlaşılması zor olan kısmı genişletmeniz gerekiyor.
garethTheRed

root kullanıcısı kim? Bu soruyu anlamak benim için zor. Çünkü humn kullanıcıları sadece sudoers grubuna bağlanabilir
rancho

@rancho soruyu güncelleyin, lütfen
peterph


Temel sorunuza basit cevap (cevabın yorumlarına dayanarak): Çalışmaya izin verirseniz rooterişim ve sudohaklar arasındaki farkın önemsiz hale geldiği doğrudur sudo su. Ancak buna izin vermek zorunda değilsiniz. Yalnızca belirli bir komut kümesine izin verebilirsiniz, örn. Junior sysadmin'inize sudoyalnızca belirli yedekleme komutları için erişim izni verin .
Wildcard

Yanıtlar:


29

Yönetici özeti: "root" yönetici hesabının gerçek adıdır. "sudo" sıradan kullanıcıların yönetim görevlerini yerine getirmesine izin veren bir komuttur. "Sudo" bir kullanıcı değil.


Uzun cevap:

"root" (diğer adıyla "superuser") sistem yöneticisi hesabının adıdır. İsmin kökenleri biraz arkaiktir, ama bu önemli değil.

Kök kullanıcı 0 kullanıcı kimliğine sahiptir ve nominal olarak sınırsız ayrıcalıklara sahiptir. Kök herhangi bir dosyaya erişebilir, herhangi bir programı çalıştırabilir, herhangi bir sistem çağrısını yürütebilir ve herhangi bir ayarı değiştirebilir. (Ama aşağıya bakınız¹).

"Sudo" komutunun icadından önce, yönetimsel görevleri gerçekleştirmek istiyorsanız, bir şekilde oturum açma istemi² alarak veya sukomutla ("su" yedek kullanıcı için kısa olacak şekilde) root olarak oturum açmanız gerekiyordu .

Bu biraz güçlük çekiyor ve kullanıcılara kısmi idari güçler vermenize izin vermiyor. Böylece "sudo" komutu ("yedek kullanıcı do" ifadesinin kısaltması) icat edildi.

"Sudo" komutu, kullanıcı kimliğiniz sudoers dosyasında olduğu sürece süper kullanıcı ayrıcalıklarına sahip komutları çalıştırmanıza olanak tanır ve size gerekli yetkileri verir.

Örneğin sudo vi /etc/hosts, hosts dosyasını root olarak çalışıyormuş gibi düzenlemenize izin verir. Kök şifresine bile ihtiyacınız yok, sadece kendi giriş şifreniz.

Ve elbette, sudo susadece kök olmanıza izin verir. Sonuç, root olarak giriş yapmış veya sukomutu yürütmüş olmanızla aynıdır, ancak root şifresini bilmeniz gerekmez, ancak sudoers dosyasında olmanız gerekir.

Sudoers dosyası, sudo komutunu kimlerin kullanabileceğini ve bu komutla neler yapabileceğini belirler.

Sudoers dosyası size birden çok yönetici⁴ verir. Etkili bir şekilde, yöneticileriniz köktür, ayrıca sudoers dosyasında listelenen herkes. Sudoers dosyası olmadan, tek yönetici köküdür.

Aslında, bir başkasının bilgisayarınızı sizin için yönettiği kuruluşlarda, kendi bilgisayarınızın kök şifresini bilmeniz oldukça yaygındır - sudoers dosyasında olduğunuz sürece önemli değildir.

Çalıştığım bir şirkette, devasa bir sunucu çiftliğiyle, çok az sayıda insan kök şifreleri biliyordu. Bunun yerine, kimin hangi sunucular üzerinde çalışmasına izin verildiğine dair bir veritabanı vardı. Otomatikleştirilmiş bir işlem sizi erişim yetkiniz olan sunucuların sudoers dosyalarına ekler ve yetkinizin süresi dolduğunda sizi kaldırır.


¹ Bir şey daha var: Modern Unix sürümleri artık kök kullanıcının yapabileceklerini bile kısıtlayabilir.

SELinux (Güvenliği Geliştirilmiş Linux) altında , hangi programın ne yapabileceğini ve hatta root'un bu kısıtlamaları aşamayacağını belirleyen bir erişim kontrol listesi etkili bir şekilde vardır.

Apple'ın Sistem Bütünlüğü Koruma (SIP) ("köksüz") sistemi altında, belirli dosyalar ve dizinler kilitlenir, böylece yalnızca uygun beyaz listedeki uygulamalar bunlara erişebilir.

Bu sistemler, bir sistemi kötü niyetli bir kullanıcının kök erişimi elde etmeyi başardığı durumdan korumak için vardır. (Veya bazı durumlarda, kullanıcıların yerleşik cihazlarını hapse atmasını önlemek için.) Açık nedenlerden dolayı, kök erişimiyle bile bu kısıtlamaları atlamak son derece zordur.

² "login:" istemi Unix tarihinin bir diğer arkaik parçası olup, pencere sistemleri yerine seri hatlarda ascii terminalleri kullandığımız zamana dayanır. Yine loginde herhangi bir terminal penceresini yazarak veya başka bir yerden bilgisayarınıza bir ssh (veya telnet veya rsh) bağlantısı açarak bir "login:" istemi alabilirsiniz . İsterseniz oradan başka bir kullanıcı olarak giriş yapabilirsiniz. (Bilgisayarınızda seri bağlantı noktaları varsa, yine de üzerlerinde oturum açmaya izin verecek şekilde yapılandırabilirsiniz.)

İndividual Bireysel programlara root erişimi verilmesi de mümkündür. Bu programlar, sıradan bir kullanıcı tarafından çalıştırıldığında bile root erişimi olan bir kullanıcının yapabileceği her şeyi yapabilir. Bunlar genellikle belirli görevlerle sınırlıdır. Örneğin, crontab programının, cron tablolarını düzenleyebilmesi için kök ayrıcalıkları vardır. Açıkçası, "sudo" kök ayrıcalıklarına sahiptir, böylece yaptığı şeyi yapabilir.

⁴ Daha önce parladığım bir noktayı daha ele alacağım. Ben "yönetici" ve "kök" dönüşümlü olarak kullanıyorum, ama başka tür yöneticiler var. Bunlara genellikle "rol hesapları" denir, yani bu hesaplar gerçek insanlara ait değildir, bunun yerine sistem üzerinde belirli bir rol oynamak için vardır. /etc/passwdSisteminizdeki dosyaya bakarsanız, onlarca ve onlarca hesap bulacaksınız.

Örneğin, sisteminize mysql yüklüyse, bir "mysql" kullanıcısı olur ve tüm veritabanı dosyaları, yapılandırma dosyaları vb. Bu kullanıcıya ait olur. Yalnızca bu kullanıcı dosyalara erişmek ve mysql sunucusunu çalıştırmak için gerekli izinlere sahip olacaktır. Bir anlamda, bu kullanıcı bir yönetici hesabı olurdu, ancak yalnızca mysql için.

Veritabanı yönetim görevlerini gerçekleştirmeniz gerekiyorsa, su mysqlkomutla "mysql" olur veya sudosudoers dosyasının bu belirli komutlar için size mysql ayrıcalıkları vereceği yeri kullanırsınız.


1
Sudoers dosyası size birden fazla yönetici sağlayan dosyadır . Etkili bir şekilde, yöneticileriniz köktür, ayrıca sudoers dosyasında listelenen herkes. Sudoers dosyası olmadan, tek yönetici köküdür.
Edward Falk

1
"SELinux (Security Enhanced Linux) altında, kimin ne yapabileceğini ve hatta root'un bu kısıtlamaları aşamayacağını belirleyen bir erişim kontrol listesi var." - root bile bu kısıtlamaları geçemezse, o zaman bu kısıtlamaları kim oluşturur?
rancho

1
Bunu açıklığa kavuşturmak için: "Etkili bir şekilde, yöneticileriniz kök ve sudoers dosyasında listelenen herkes köktür." sudoers girişlerinin tam kök veya hatta kök düzeyinde erişim anlamına gelmesi gerekmez; Sven'e, izleyici olarak çalışan bir izleme aracısını yeniden başlatma yeteneğini verebilirim.
Jeff Schaller

1
The "sudo" command lets you execute commands with superuser privileges as long as your user id is in the sudoers file [..]. Makinemde (Solus OS 3), bu yanlış. Kullanıcı adım sudoers dosyasında değil. ve hala yapabilirim sudo.
Martin Andersson

2
Eski cevap ve bu bilgiçliktir, ancak su"ikame kullanıcının" kısaltmasıdır; sudobu nedenle "yedek kullanıcı" dır. Yalnızca sukullanıcı değil, başka bir kullanıcı olarak oturum açmak için kullanabilirsiniz root. Ve sudokomutları başka bir kullanıcı olarak yürütmek için kullanabilirsiniz .
josaphatv
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.