Neden root olarak giriş yapmak yerine root kullanıyorsunuz?


33

Doğrudan root kullanıcısı olarak oturum açmak yerine kökten su kullanmanın daha iyi olduğunu duydum (ve elbette insanlar sudo kullanmanın daha da iyi olduğunu söylüyorlar). Neden birinin diğerinden daha iyi olduğunu hiç anlamadım, içgörü?


2
Ssh girişlerini mi, yoksa fiziki makineden de girişleri mi düşünüyorsun?
Telemachus

Yanıtlar:


43

Çıkarım yalnızca suveya sudogerektiğinde yapılır.

Gündelik görevlerin çoğunda kök kabuğu gerekmez. Bu nedenle, ayrıcalıklı olmayan bir kabuğu varsayılan davranışınız olarak kullanmak ve ardından özel görevler gerçekleştirmeniz gerektiğinde yalnızca kökten yükseltmek iyi bir uygulamadır.

Bunu yaparak, kullandığınız herhangi bir uygulamadaki tehlikeli hataların (hatalı komut dosyası oluşturma, yanlış yerleştirilmiş joker karakterler vb.) Ve güvenlik açıklarının kapsamını azaltıyorsunuz. Özellikle İnternete bağlananlar - eski atasözünü "Kök olarak IRC yapma" yı görün .

sudo sıkça tavsiye edilir, çünkü ince öğütmenize izin verir ve bu ayrıcalıkların kullanımını denetler.

Bu uygulamaları gözlemleyerek, aynı zamanda uzak kök girişlerini devre dışı bırakabilecek bir konumdasınız demektir. Bu, "tekerlek" grubunun bir üyesi olan ve ideal olarak yalnızca SSH ortak anahtarlar, sonra da kök hesabın kendisi tarafından yetkilendirilen normal bir kullanıcı hesabını tehlikeye atmaları gerekeceğinden herhangi bir saldırganın giriş çubuğunu arttırır.


1
Uzak kök girişinin neden "oldukça büyük bir güvenlik açığı" olduğunu anlayabilir misiniz?
thepocketwade

5
Çünkü tüm dünyanın kullanıcı adını ('root') bildiği göz önüne alındığında, bu sadece şifreyi çözme meselesidir. Ve bunu kaba kuvvetle yapabilir ve bilgisayarınızı ele geçirebilirler.
Shalom Craimer

2
Sudo'nun diğer bir avantajı: Yürütülen komutların günlüğe kaydedilmesi.
Manuel Faux

Bu denetim;)
Dan Carley

1
sudoÜstün olsa suda, -mbir kök terminalinde çevre değişkenlerini aynı tutmak için bayrağı kullanmanıza da izin verir . Hiçbir şey beni daha fazla bonker daha fazla zorlayamaz su, sadece ~dizin isminde bir şeyler yapmaya ve çalışmayabilir.
tj111

27

Kök erişimini uzaktan erişimden devre dışı bırakmalısınız, böylece bir saldırgan önce bir kullanıcıyı tehlikeye atmadan, sonra köke yükselen kökten ödün veremez. Yalnızca konsolda root erişimini sağlıyoruz.

Ayrıca hesap verebilirlik yaratır. :)


+1 kısa ve noktaya
lexu

15

Ana sebep, bir denetim izi oluşturmaktır. Düzenli bir kullanıcı olarak bir sisteme giriş yapmanız ve ardından su kullanmanız gerekirse, verilen işlemlerden kimin sorumlu olduğunu bulmak mümkündür.


Birisi su - root çalıştırdıktan sonra hangi komutları koştuğunu nasıl belirlersiniz? Bu bir yere mi kaydedildi?
Dobes Vandermeer 17:11

10

sudo ayrıca her komutu otomatik olarak syslog'a kaydeder ve her kullanıcının kullanabileceği komutları tanımlayabilirsiniz.


3
Günlüğe kaydetme gelince: Bu, 'sudo' tarafından verilen her komut için geçerlidir, ancak sudo'nun bir kök kabuğuna yükseltmek için kullanılması durumunda, komutlar yalnızca geleneksel alanlarda (özellikle kabuk geçmişi) günlüğe kaydedilir.
Zenham,

2
Nitekim, sudo vim foo.txtsonra vim içinden bir kabuk bırakarak düzenli sudo günlüğü olmadan size bir kök kabuğu verecektir.
Ophidian

Ya da sadece sudo -ietkileşimli bir oturum almak için ...
Kamil Kisiel

Sudo vim foo.txt ile ilgili sorunu anlamıyorum. Bunu koştum, sonra vim'den çıktım ve hala kendimdeydim, eksik bir şey var mı?
thepocketwade

sudo su - ya da sudo vim yazarak bir kabuk vermek için sudo'yu "kandırabilirsiniz" ve ardından yeni bir alt kabuğa gidin. Fakat sudo kullanıyorsanız, çünkü syslog'da her şeyin oturum açmasını istiyorsanız (merkezileştirilmiş) ve başka bir denizaltı almak için de kullanılabileceğinin farkındaysanız, o zaman yanlış bir şey göremiyorum, bu sadece bir bonus. sadece ona bağlı değilim.
Jure1873,

9

Başka bir iyi neden: Kullanıcıya sudo ile yükseltirken, kullanıcı kendi kimlik bilgileriyle kimlik doğrulaması yapar, bu da birisine kuruluşunuzdan ayrıldığında işleri kilitlemenizi kolaylaştıracak şekilde kök şifre verilmesi gerekmediği anlamına gelir.


4

Bir denetim izi oluşturmak ve burada belirtilen "sudo su -" veya "sudo vim foo.txt" sorunlarına kurban etmek istemiyorsanız, "sudosh" kullanabilirsiniz. Sudo aracılığıyla root erişimini dağıtın, ancak "sudosh" komutunu çalıştırmak için izin verilen tek komutu verin.

sudosh bir günlük kabuğudır ve daha sonraki bir tarihte tüm terminal oturumunu tekrarlayabilir ve kullanıcının terminalinde tam olarak ne gördüğünü gösterebilirsiniz.


Bu elbette sistemde sudosh bulunduğunu varsayar. Sadece kontrol ettim ve hiçbir Linux kutumda yok.
John Gardeniers

Yeni ksh93'ü denetim izi kaydı etkinken de kullanabilirsiniz. IBM developerWorks adresinde
Mei

Sadece bir kabuk betiği çalıştırarak atlamak oldukça kolaydır (daha sonra silersiniz). Komut dosyasını denetlenmeyen bir kullanıcı olarak zararsız bir adla oluşturun (veya iş istasyonunuzdan kopyalayın), sonra sudo yapın ve çalıştırın. Hatta 'ls' veya somesuch olarak adlandırıp onu $ PATH (gerekirse $ PATH değiştirerek) koyarak ve hatta normal görünmesi için / bin / ls'yi çağırırken kirli işini yapmasını bile gizleyebilirsiniz. Daha sonra silin. Denetim günlüğü / home / anthony / bin'in 'ls' içerdiğini bilmiyor.
derobert

Evet, mükemmel değil; Bunu biliyoruz - ama düz bir "sudo su -" IMHO'dan daha iyi bir site. Ve evet, varsayılan olarak hiçbir yerde AFAIK yüklü değil. Bununla birlikte, Solaris ve Linux üzerinde oldukça kolay bir şekilde çalışıyor.
mibus

1

Güvenliği derinlemesine uygulamanız gerekir.

Uzak kök erişimine (veya en azından şifrelerle kök erişimine) izin vermeyin. (Anahtarlar yoluyla kök erişimine izin verirseniz, bu anahtarları dikkatlice kontrol edin veya daha iyi bir şekilde anahtarların merkezi olarak iptal edilmesini sağlayan kerberos gibi bir şey kullanın).

Suyu devre dışı bırakıp sudo kullanırdım. Bu şekilde, kullanıcılar sisteme erişmek için anahtarları (tercihen şifreli) kullanırlar , sonra şifrelerini yalnızca ayrıcalık yükseltmek için kullanırlar. Hangi programların sudo ile erişebileceğini kısıtlayabilirsiniz, ancak çoğunlukla sadece root şifresini bilenlere erişimi kısıtlarsınız.

İdeal bir dünyada, kök şifrelerinizi internette yayınlayabilmelisiniz ve insanlara makinenize erişebilseydiniz bile (ama / etc / sudoers dosyasına koymamış olsanız) farketmez. Tabii ki, olmamalıdır kök şifresini yayımlamak, ancak Fikir koruma yatay tabakalar ile sistemlerini korumak olmasıdır.


0

Fikir, kök girişini devre dışı bırakmaktır ve bu nedenle varsayılan bir yönetici hesabınız yoktur. Bu şekilde bir saldırgan hem kullanıcı adını hem de parolayı (yalnızca parolayı değil) tahmin etmelidir.


0

Root'u düzenli bir şekilde kullanıyorsanız , izinleriniz yanlış olabilir veya dosya veya dizinleri açmak için sudo hakları veya yeni bir grup hakları vermeniz gerekebilir.

İyi izinler programları, Linux kullanıcılarının uzun süredir yanlış yaptıkları veya sahip oldukları kapsamı anlamadıkları bir şeydir.

Beni Ubuntu’nun yaptıkları hakkında başlatma!


-2

Rm -r -f komutunu çalıştırmanızı engeller / ben sadece 2 gün önce koştum (ayrıcalıklı bir kullanıcı olarak, rm -r -f * komutunu kullanmak istedim)


Kabul edilen cevap zaten tüm bilgileri içeriyordu.
Theuni
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.