Aptronim Sahibinin Sayfası

2011/8/10 - 3 dakikada okunur - Yorumlar - Kompütür

sudo rehberi

Sudo komutu, Unix ve benzeri işletim sistemlerinde bulunan, bir kullanıcının başka bir kullanıcı yetkisiyle (genellikle root kullanıcısı) komut çalıştırmasını sağlayan bir programdır. Sudo komutunu kullanarak bir komut çalıştırmadan önce, kullanıcıdan kendi şifresini girmesi istenir (gereksinimlere göre şifresiz erişim de sağlanabilir). Şifre doğruysa ve /etc/sudoers dosyasındaki yapılandırma erişime izin veriyorsa, komut çalıştırılır. Girilen şifre 5 dakika kadar geçerli olur, o sırada girilen komutlarda yeniden şifre istenmez.

Sudo komutu kullanarak yetkilendirmeyi dağıtmak, geleneksel su komutuna kıyasla çeşitli avantajlara sahiptir:

  1. Sudo ile girilen tüm komutların kaydı tutulur.

  2. Sudo ile tek bir şifrenin paylaşılmasına gerek yoktur – yetkili her gerçek kullanıcının kendine özel bir şifresi vardır.

  3. Sudo kullanarak kullanıcının yetkileri sadece belli komutları çalıştıracak şekilde kısıtlanabilir.

Bu kısa rehberde, Redhat 45 sunucuları için “su” komutu yerine “sudo” komutunun kullanımına geçiş açıklanacak ve denetim mekanizmalarına değinilecektir.

/etc/sudoers Yapılandırma Dosyası

Redhat sistemlerinde (ve benzeri bir çok sistemde) genel alışkanlık, sudo ile root kullanıcısına erişim yetkisinin belli bir gruba dahil kullanıcılara sınırlanmasıdır, genellikle bu grubun ismi “wheel” ve ID’si 10’dur.

“wheel” grubunun ismi, “big wheel” deyiminden gelmektedir. Bu deyim, İngilizcede büyük gücü ya da etkisi olan insanları tanımlamak için kullanılır.

“wheel” grubundaki kullanıcılara root kullanıcısı erişimi vermek için sudoers dosyasına aşağıdaki satır eklenir:

 %wheel ALL=(ALL) ALL

Bu satır /etc/sudoers dosyasına herhangi bir metin düzenleyicisiyle eklenmemelidir. Bu yapılandırma dosyasındaki bir arıza, tüm sudo mekanizmasını bozabilir. Bu yüzden “visudo” komutu kullanılmalı, bu komut girildikten sonra çıkan metin düzenleme ekranından değişiklik yapılmalıdır. Visudo komutu, dosyayı kalıcı olarak yazmadan önce sözdiziminin geçerliliğini kontrol eder.

“visudo” komutu, standart olarak vi programını çalıştırmaktadır. Eğer farklı bir metin düzenleyici kullanılması istenirse, VISUAL değişkeni kullanılmalıdır. Örneğin, nano kullanmak için visudo komutundan önce “export VISUAL=nano” komutu girilmelidir.

Gereksinimlere göre, şifresiz bir şekilde (sadece sisteme girişte kullanılan şifreye güvenilerek) erişim sağlanması uygun görülürse, üstte girilen satır şu şekilde değiştirilmelidir:

 %wheel ALL=(ALL) NOPASSWD: ALL

Kullanıcı Yapılandırması

Üstteki ayarlar yapıldıktan sonra yetkili olması gereken kullanıcıların wheel grubuna eklenmesi gerekir. Bunun için, aşağıdaki komutun verilmesi gerekmektedir:

 # usermod -a -G wheel

Kayıt izlenmesi

Sudo komutunun etkinliği /var/log/auth.log dosyasında tutulur. Yetkili bir kullanıcının etkinliğinin oluşturacağı kayıt aşağıdaki gibidir:

 Aug 5 06:02:49 localhost sudo: can : TTY=pts/1 ; PWD=/home/can ;
     USER=root ; COMMAND=/usr/bin/tail /var/log/auth.log

Yetkisiz bir kullanıcının erişiminin kaydı ise şu şekilde tutulur:

 Aug 5 06:00:28 localhost sudo: bican : user NOT in sudoers ;
     TTY=pts/1 ; PWD =/home/bican ; USER=root ;
     COMMAND=/usr/bin/emacs /etc/resolv.conf

Sonuç

“Sudo” komutunun özellikleri kullanılarak, tek bir ortak şifre kullanmanın getirdiği yüklerden (güvenlik, güncelleme vb.) kurtulmak mümkündür. Ayrıca yetkili kullanıcı etkinliği daha ayrıntılı izlenerek, denetimde kolaylık sağlanır. Bu kısa rehberde sadece temel yapılandırma tanıtılmıştır. Sudo komutunun daha etkili kullanımı için http://www.gratisoft.us/sudo/sudoers.man.html adresinden ayrıntılı bilgi alınabilir.