Linux

Linux Sudo Komutu ve Sudoers Dosyası Kullanımı

Bu yazımızda size Linux Sudo Komutu ve Sudoers Dosyası Kullanımı konusundan bahsedeceğiz.

Linux sudo komutu root olmayan kullanıcılar için süper kullanıcı izinleri gerektiren komutları çalıştırmasına izin vermektedir. Sudoers dosyası, sistemin sudo komutunu nasıl işlenmesi gerektiğini gösterir.

Normal kullanıcıların işletim sistemlerinde bazı zamanlar yönetici yetkisi gerektiren işlemler yapmaları gerekir. Sudo normal kullanıcıların sistemde yönetici yetkisi gerektiren işlemleri yapabilmesi için kullanılan bir programdır.

Kullanıcılar için ayrı bir yönetici hesabı açılmadan ve root parolasına ihtiyaç duyulmadan işlemler yapılmaktadır. Kullanıcı yapacağı işlemler için kendi adını kullanacağından dolayı yaptığı işlemler sınırlandırılabilir. Aslında en güvenilir olan yöntem sudo listesine eklenen kullanıcılara yalnızca yapacakları işlemler için yetki vermektir.

Linux Sudo Komutu – Kavram

Sudo’nun nasıl çalıştığını görmeniz için ilk önce SSH üzerinden sunucunuza erişmeniz gerekmektedir.

Varsayılan olarak kök kullanıcının sudo ekini kullanması gerekmiyor. Bunun nedeni gerekli izinlere sahip olmalarıdır. Kök olmayan bir kullanıcı farklı bir kullanıcı ekleyecekse eğer useradd komutunun yanına sudo ekini eklemesi gerekmektedir. Aşağıda belirttiğimiz şekilde yapabilirsiniz.

sudo useradd kullanıcıadi

 

Kullanıcı eğer sudo ekini kullanmazsa Permission denied (İzin verilmedi) mesajı ile karşılaşacaktır.

Sudoers Dosyası

Sudo komutu /etc/ dizininde yer alan sudoers dosyası üzerinden yapılmaktadır.

Sudo komutu sayesinde normal kullanıcılar için yönetici seviyesinde izinler verilmektedir. Normalde Ubuntu’yu yüklerken oluşturduğunuz ilk kullanıcının sudo izni bulunur. Bir sunucu ortamında ise varsayılan kök kullanıcı olmaktadır. Diğer kullanıcıların da sudo komutunu çalıştırması için ayarlar yapması mümkün olur. Bu işlem sudoers dosyasının düzenlenmesi ile yapılabilir.

DİKKAT! Sudoers dosyasını hatalı ya da kötü sözdizimi ile editlemek tüm kullanıcıların kilitlenmesine neden olabilir.

Sudoers Dosyası Sözdizimi

Sudoers dosyasını tercih ettiğiniz metin editörü ile açmanız mümkündür. Biz vi’ yi tercih ettik:

vi /etc/sudoers

 

Bizim sunucumuzdaki dosya bu şekilde görünmektedir:

Linux Sudo Komutu ve Sudoers Dosyası Kullanımı

Yukarıda bulunan formatlar ve kuralların birkaçını inceleyelim:

  • # ile başlayan tüm satırlar yorumlardır.
  • root ALL=(ALL:ALL) ALL – bu ise satır kök kullanıcının sınırsız izni olduğunu ve sistemde bulunan tüm komutları çalıştırabileceğini söyler.
  • %admin ALL=(ALL) ALL – % işareti bir grubun belirlenmesini sağlar. Yönetici grubunda bulunan herkes kök kullanıcı ile aynı izinlere sahiptir
  • %sudo   ALL=(ALL:ALL) ALL – sudo grubunda bulunan tüm kullanıcıların bütün komutları çalıştırma izninin olduğunu söyler.

Sudoers Dosyasını Düzenlemek

/etc/sudoers dosyasını düzenleme işlemi için aşağıda belirttiğimiz komutu kullanmalısınız.

sudo visudo -f /etc/sudoers

 

Sudoers dosyasını düzenlemek için visudo kullanmanızı öneririz. Visudo sudoers dosyası yalnızca bir kullanıcı tarafından düzenlendiğinden emin olarak gerekli sözdizimi kontrollerini yerine getirir.

Sudo grubunda hangi kullanıcıların yer aldığını görmek için bir grep komutu kullanmalısınız.

grep ‘sudo’ /etc/group

 

Bu komut size kullanıcıların listesini gösterecektir.

Örnek verecek olursak eğer sudo grubuna ali adında bir kullanıcının eklenmesi için komut satırında adduser komutunu kullanmalısınız.

adduser bill sudo

 

Grupta kimin olup olmadığını görmek için eğer grep komutunu kullanırsanız ali adında kullanıcı adını görürsünüz.

Herhangi bir kullanıcıya kök izinlerini vermek isterseniz eğer yapmanız gereken tek şey onları sudo’ya eklemek olacaktır.

Sudo’dan bir kullanıcı silmek için aşağıda belirttiğimiz komutu kullanmalısınız.

deluser ali sudo

 

Deluser komutu ali kullanıcısını sudo grubundan silecektir.

Artık ali kullanıcısı sudo izni gerektiren işlemleri yapamayacaktır.

Belirli İzinler Vermek İçin Sudoers Dosyasının Kullanımı

Ali adlı kullanıcının sudo izniyle yalnızca ağ komutları gibi belirli komutlarda ki işlemleri yapmasını isterseniz yazımızı okumaya devam ediniz.

Bu işlemi yapmak oldukça basittir. /etc/sudoers.d/ dizininde networking adı ile bir dosya oluşturun.

Bu dosyanın oluşturulması için aşağıda belirttiğimiz komutu çalıştırmalısınız.

sudo visudo -f /etc/sudoers.d/networking

 

Dosyaya aşağıda yer alan metni eklemelisiniz.

Cmnd_Alias     CAPTURE = /usr/sbin/tcdump
Cmnd_Alias     SERVERS = /usr/sbin apache2ctl, /usr/bin/htpasswd 
Cmnd_Alias     NETALL = CAPTURE, SERVERS
%netadmin ALL=NETALL

 

Yukarıda belirttiğimiz dosyada yaptığımız işlem bir netadmin grubu kurmaktı. Netadmin grubunda bulunan  kullanıcılar NETALL içinde yer alan tüm komutları çalıştırma yetkisine sahiptir. NETALL ise CAPTURE ve SERVERS adları altında bulunan tüm komutları içerir. tcpdump komutu, CAPTURE adı altında yer alır. Örnek verecek olursak eğer /usr/sbin/tcpdump şeklinde olacaktır.

Şimdi ali adlı kullanıcı netadmin grubuna ekleyeceğiz.

sudo adduser ali netadmin

 

Ali adlı kullanıcı bundan sonra  tcpdump komutu ile birlikte ağ ile alakalı tüm komutları çalıştıracaktır.

Sonuç

Birden fazla kullanıcı ile çalışıyorsanız eğer linux sudo komutunun nasıl çalıştığını ve sudoers dosyasının nasıl düzenlendiğini bilmeniz çok önemlidir.

Linux Sudo Komutu ve Sudoers Dosyası Kullanımı başlıklı yazımız ile ilgili aklınıza takılan sorularınızın yanıtını alabilmeniz için veya öneride bulunabilmeniz için aşağıda yer alan yorumlar kısmını kullanarak bizimle iletişime geçebilirsiniz.

Dilerseniz daha önce bloğumuzda paylaştığımız Linux SSH Port Değiştirme başlıklı yazımızı da okuyabilirsiniz.

Serhat Yılmaz

Blog sayfamızda bilişim sektöründe edinmiş olduğum bilgi ve deneyimleri paylaşmaktayız. Yazılarımıza yorumlarınızı katarak bizleri mutlu edebilirsiniz.

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu