Dikkat: Bu yazıda geçen komutlar hem Linux tabanlı Centos hem de Linux tabanlı Red Hat (RHEL) işletim sisteminde geçerlidir.
sudo Sistemi Ne İşe Yarar? superuser Nedir?
Şirketinizde kullanılan Linux tabanlı sistem binlerce kişiye hizmet veriyor olabilir. Böyle büyük bir sistemi yönetmek de kolay değildir. Bundan dolayı büyük bir Linux sistemini yöneten ana yöneticiye yani root‘a yardımcı alt sistem yöneticilerine ihtiyaç duyulabilir. Bu alt sistem yöneticileri superuser‘lardır.
Çözüm olarak bazen sıradan kullanıcılara “root” şifresi verilmektedir. Bu da yapılan işlemi kimin yaptığına dair log kayıtları tutma açısından veya sınırlı yetkiye sahip olması gereken kullanıcıların tam yetkili yapılması güvenlik açısından problemli bir işlem olacaktır.
Alt sistem yöneticilerinin belirli düzeylerde sınırlı yönetici olmaları gerekmektedir. Ana “root” kullanıcısından farklı olması gerekmektedir.
“sudo” sistemi ile bazı sistem komutları bazı kişilere verilebilir. Bunun içinde “visudo” komutu kullanımaktadır. Yetkiler “etc/sudoers” dosyasında bulunur. “visudo” komutu ile de bu dosya düzenlenir.
visudo Komutu İle Yetkilerin Düzenlenmesi:
“/etc/sudoers” dosyasında saklanan yetkiler “visudo” komutu veya “vi /etc/sudoers” ile düzenlenmektedir.
/etc/sudoers Dosyasının Formatı:
sudoers yetki dosyasının formatı aşağıdaki gibidir.
- kullanici_adi host_adi=komut
Kullanıcıya Sınırlı root Yetkisi Vermek:
İlk önce mevcut kullanıcılarımızı kontrol edelim.
“ali” kullanıcısı ile giriş yapıp “deneme” isimli bir kullanıcı eklemeye çalışalım.
Görüldüğü üzere kullanıcı ekleme yetkisi verilmesi gerekiyor. “ali” kullanıcısında kullanıcı ekleme yetkisi vermek için ilk önce “root” olalım.
Ardından bu dosyaya “ali localhost=/usr/sbin/useradd” kodu yazılır kullanılır.
- sudo [KOMUT]
Not: “ali” kullanıcısı kullanıcı ekleme yetkisini kullanabilmek için “useradd” komutunu verirken başına “sudo /usr/sbin/useradd” şeklinde “sudo” komutunu eklemesi gerekir. Bu şekilde ali kullanıcısı şifresini girerek komutu kullanır.
Şimdi kullanıcıyı ekleyelim.
Görüldüğü üzere kullanıcı eklendi.
Her seferinde “ali” kullanıcısının şifre sormasını engellemek için “/etc/sudoers” dosyasında “ali localhost=NOPASSWD: /usr/sbin/useradd” şeklinde satır düzeltilir.
Şifre sormadığını görebiliriz. Yine aynı ismi yani “deneme” isimli kullanıcı oluşturmak istiyorsak “root” kullanıcısında “userdel deneme” komutu ile kullanıcıyı ve “rm -rf /home/deneme” komutu ile kullanıcıya ait klasörü silebiliriz. Ardından tekrar “ali” kullanıcısına geçelim ve denememizi yapalım.
Görüldüğü üzere şifre sormadı.
Bir kişiye birden fazla komut yetkisini vermek için komutlar birbirinden virgül ile ayrılması gerekir. “useradd” ve “usermod” komutlarının kullanım yetkisini “ali” kullanıcısına vermek için “/etc/sudoers” dosyasında “ali localhost= NOPASSWD:/usr/sbin/useradd, NOPASSWD:/usr/sbin/userdel” şeklinde tanımlama yapılmalıdır.
Denememizi yaptığımızda iki komutunda çalıştığını ve şifre sormadığını görebiliriz.
Bir Kullanıcıya Root Yetkisi Vermek
visudo komutu >> ardından “kullanıcı_adi ALL=(ALL) ALL” satırı yazılır.
Aşağıda “ali” isimli kullanıcı için örneklendirme yapılmıştır. “visudo” komutu sonrasında açılan dosyada “root ALL=(ALL) ALL” satırı altına “ali ALL=(ALL) ALL” satırı yazılmıştır.
Not: “ali” kullanıcısı kullanıcı ekleme yetkisini kullanabilmek için “useradd” komutunu verirken başına “sudo /usr/sbin/useradd” şeklinde “sudo” komutunu eklemesi gerekir. Bu şekilde ali kullanıcısı şifresini girerek komutu kullanır.
Şimdi normalde “root”un yetkisi dahilinde olan kullanıcı ekleme işini “ali” kullanıcısı ile yapalım.
- su – [kullanici_adi]
Bunun için “su – ali” komutu ile “ali” kullanıcısına geçelim. Ardından “sudo useradd deneme” komutu ile “deneme” isimli bir kullanıcı oluşturmaya çalışalım.
- sudo [komut]
Görüldüğü üzere “ali” kullanıcısı “sudo KOMUT” şeklinde “root” komutlarını kullanabilmektedir.
“CentOS sudo SİSTEMİ: superuser” üzerine 2 yorum
Çok güzel ve detaylı fakat kafa karıştırmadan anlatmışsınız.Elinize yüreğinize sağlık
Teşekkürler…