Sudo nasıl kullanılacak?


24

Daha önce konfigürasyon sudoyapmayı denedim ama çok fazla şansım olmadı. Nasıl farklı su -l -c "x"? Bir yapılandırma dosyası aracılığıyla, bir kullanıcının yalnızca belirli komutlara ve daha fazlasına erişebilmesi için bunu yapabildiği anlaşılıyor. Ben her zaman sudobir komutu başka bir kullanıcı veya grup olarak sıralamanın bir yolu olarak düşündüm . Ubuntu ve Mint gibi dağıtımlar, ana kullanıcıya bir parola ile root erişimini temel alarak kolaylaştığından, kullanım amacının ne olduğundan emin değilim.

Bir kullanıcıyı sudo dosyasına nasıl eklerim, onlara sadece belirli komutları root'ta çalıştırma hakları veririm? Ayrıca güvenlik açığı açmak da istemiyorum.

Yanıtlar:


16

Temel işlemler için - root olarak çalışan komutlar - sudo ve su arasındaki en göze çarpan fark, sudo'nun çağıran kullanıcının şifresini gerektirmesidir (yani şifreniz), su ise hedef kullanıcının şifresini (yani kök şifresini) gerektirir. Güvenlik etkileri daha önceki bir soruda yoğun biçimde tartışılmıştır: Kök ayrıcalıklarını elde etmenin en güvenli yolu hangisi: sudo, su veya login? .

Sudo, suların ötesinde ek özelliklere sahiptir. Özellikle, bir kullanıcı şifreniz olduğunda, bu kullanıcı olarak herhangi bir komutu çalıştırabilirsiniz. Öte yandan, sudo, onu çağıran kullanıcının yalnızca başka bir kullanıcı olarak belirli komutları çalıştırabilmesi için yapılandırılabilir. Bu mümkündür, çünkü sudo herhangi bir kimlik doğrulama gerektirmez (belki de şifrenizi yazarak olduğunuzu onaylamaktan başka bir şey değildir - ancak bu, bir görev için kullanıcı kimliğinizi doğrulamaktan biraz farklıdır).

visudoKomutu root olarak çalıştırarak sudo konfigürasyonunu değiştirirsiniz (konfigürasyonu asla doğrudan düzenlemeyin). Ortam değişkeninin EDITORveya VISUALfavori düzenleyicinize ayarlandığından emin olun, yoksa yabancı bir düzenleyici edinebilirsiniz. sudoersAdam sayfa biraz kısa ve öz ama örnekler vardır. Kullanıcının (herhangi bir sayıda argümanla) ve (ancak başka bir argümanla değil ) bobçalışmasına izin vermek için aşağıdaki satırları kullanın:/bin/foo/bin/bar --saferoot

bob ALL = (root) /bin/foo
bob ALL = (root) /bin/bar --safe

2
sudomüthiş bir buluş
tshepang

1
Sudo'nun root şifresini mi yoksa root şifresini mi gerektirdiği, konfigürasyona bağlıdır. Her iki şekilde de ayarlanabilir.
Jonathan M Davis,

3
@Thepang Amen, kardeşim. Kök şifresini serbest bırakmak ve destek teknisyenlerini nasıl SU yapıp yapamayacağımı / başka bir şey yapmamayı açıklamak zorunda apache2ctl gracefulkalırsam, bileklerimi kesmeyi ve üstesinden gelmeyi tercih ederim.
Shadur

6

En büyük fark, sudosizin gibi bir komutu root olarak çalıştırmak için root parolasına ihtiyacınız olmamasıdır su. Birisini eklemek için kök şifreniz olması gerekir.sudoers dosyaya ancak daha sonra bu kişi daha fazla şifre gerektirmeksizin hepsini veya bir kısmını (kısıtladıysanız) root olarak çalıştırabilir.

Diğer fark, belirttiğiniz gibi sudo tam olarak hangi komutların çalıştırılabileceği üzerinde daha hassas bir kontrole izin veriyor.

sudoersDosyanın formatının detayları için çalıştırın man sudoers. Orada sadece belirli komutların root olarak çalıştırılmasına izin veren örnekler bulacaksınız. Her çizginin temel yapısı:

user_list host_list = cmd_list

cmd_list, gerçek kullanıcının geçiş yapmasına izin verilen kullanıcının detaylarını içerebilir. Örneğin, bir web yöneticisinin apache'yi yeniden başlatmak, ancak root'a değil wwwroot'a geçmesine izin verebilirsiniz. Ayrıca, değiştirmeden önce kullanıcı parolasının gerekip gerekmediği gibi başka seçenekler de içerebilir (bu varsayılandır).

Örnek bir satır olabilir:

joe  ALL=(ALL) ALL

bunun anlamı: joe'un herhangi bir ana bilgisayardaki herhangi bir komutu herhangi bir kullanıcı olarak çalıştırmasına izin verin. Daha sıkı bir çizgi olabilir:

joe  ALL=(operator) /usr/local/ops/

Bunun anlamı şudur: joe / usr / local / ops dizinindeki herhangi bir komutu "operatör" kullanıcısı olarak çalıştırsın

Sudoers man sayfasının sonunda pek çok örnek var.

Düzenleyebilir gerektiğini /etc/sudoerskomutla visudo. Bu, dosyanın yasal olduğunu kontrol eder ve yanlışlıkla kırmanızı önler.


Sudo kullanırken bir parola gerekip gerekmediği tamamen sudoersdosyanın nasıl kurulduğuna bağlıdır . Parola gerektirecek şekilde ayarlanabilir veya parola gerektirmeyecek şekilde ayarlanabilir.
Jonathan M Davis,

Main / etc / sudoers dosyasını değiştirmekten kaçınmak için kullanılan diğer yaygın uygulamalar, çünkü IDS onu izliyor ve biçimlendirmesi gününüzü mahvedebiliyor çünkü: /etc/sudoers.d. Tekerlek grubunu insanlar için kullanmak herhangi bir komuta izin verdi.
bbaassssiiee

2

Diğer cevaplara ek olarak, sudo, hangi komutların ve kim tarafından yönetildiğini takip edebilmeniz için kayıt olanakları sağlar. Bu güvenlik amaçlı değildir, çünkü sudo erişimi olan kötü niyetli bir kullanıcı günlüğü silebilir. Tam olarak sizin ya da başka bir yöneticinin geçen hafta sabah saat 2'de ne kadar kasvetli gözlü olduğunu tam olarak anlamak çok faydalıdır.


3
Güvenlik amaçlıdır çünkü sudo, güvenlikle ilgili herhangi bir büyük kurulumda, ayrı bir uzak makineye giriş yapacak şekilde yapılandırılacak ve böylece bir sistemin tehlikeye atılması durumunda günlüklerin gerçekleştirilemeyeceği syslog günlüğünü destekler.
Arrowmaster

Yalnızca ek dosya özniteliği biraz chattr yardımcı olabilir + a / var / log / secure
bbaassssiiee
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.