sudo Komutunda Parolasız Kullanım

sudo komutunu, günlük işlerimizde sıklıkla kullanıyoruz. Ancak bazen – özellikle de yerel lab ortamlarımızda – sudo’ya her ihtiyaç duyduğumuzda parola girmek epey yorucu ve can sıkıcı olabiliyor.

Bu davranışı değiştirmek için, “/etc/sudoers” dosyamızda bazı değişiklikler yapmamız gerekiyor (Tabii ki root olmalısınız). Bu dosyayı düzenlerken, “visudo” aracı ile düzenlemenizi öneririm. visudo ile yalnızda sudoers dosyanızı düzenlemiyorsunuz. Aynı zamanda yazım (syntax) hatalarına karşı kontrol sağlayabilir veya gereksiz/kullanılmayan tanımları fark edebilirsiniz. Bir örneğini aşağıda paylaşıyorum:

root@ubuntu:~# visudo
/etc/sudoers:52:7: syntax error
deneme
      ^
What now? ?
Options are:
  (e)dit sudoers file again
  e(x)it without saving changes to sudoers file
  (Q)uit and save changes to sudoers file (DANGER!)

What now? x
root@ubuntu:~#

Yukarıdaki örnekte görüleceği üzere, dosya içerisine “deneme” gibi bir ifade eklemişim. Devamında kaydedip çıkmak istediğimde ise bu yazım yanlışı görülmüş ve “Şimdi ne yapıyoruz?” denilmiş. “x” ile de değişiklikleri kaydetmeden çıkıp dosyanın orijinal hâlini korumaya devam etmişim.

sudo Komutunda Parolayı Kaldırma

Parola sorulmasını istemediğimiz durumlar için, /etc/sudoers dosyasına en alttaki gibi bir girdi ekleyebiliriz:

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# ali kullanıcısı, parolasız çalıştırabilsin
ali     ALL=(ALL:ALL) NOPASSWD: ALL

Bu değişikliği yapıp dosyayı kaydettikten sonra, “ali” kullanıcısının sudo komutlarını kullanırken parola girme gereksinimini ortadan kaldırmış olursunuz.

Belirli Programlar İçin Parola Kaldırma

Aşağıdaki örneği inceleyelim:

root@ubuntu:~# grep -w ali /etc/sudoers
# ali kullanıcısı, parolasız çalıştırabilsin
ali     ALL=(ALL:ALL) NOPASSWD: /usr/bin/su

Yukarıdakinden farklı olarak, “NOPASSWD” ifadesinden sonra bir path verilmiş. Kullanıcı değiştirmek için kullandığımız “su” programının yolu. Bu satır ile ifade edilen şey ise, tahmin edilebileceği üzere, “ali” kullanıcısının “su” komutunu “sudo” ile çalıştırdığı durumlarda parola girmesine gerek olmadığı. Ancak bu durumda, diğer tüm komutlar için “sudo” kullanmak istediğinde, yine parola sorulacaktır. Aşağıdaki çıktıları incelediğinizde, “sudo su -“ hariç tüm komut denemelerinde parola sorulduğunu göreceksiniz:

ali@ubuntu:~$ sudo cat /etc/shadow
[sudo] password for ali:
sudo: a password is required
ali@ubuntu:~$ sudo ls /boot
[sudo] password for ali:
sudo: a password is required
ali@ubuntu:~$ sudo rm -rf /boot
[sudo] password for ali:
sudo: a password is required
ali@ubuntu:~$ sudo mv /etc /abc
[sudo] password for ali:
sudo: a password is required
ali@ubuntu:~$ sudo su -
root@ubuntu:~# id
uid=0(root) gid=0(root) groups=0(root)