Linux sistem yönetiminin en temel adımlarından biri yeni kullanıcı hesapları oluşturmak ve bu kullanıcılara ihtiyaç durumunda yönetici (root) yetkisi tanımlamaktır.
Özellikle sunucu ortamlarında her iş için root hesabını doğrudan kullanmak hem güvenlik hem de izlenebilirlik açısından sakıncalıdır. Bunun yerine ayrı kullanıcılar açıp gerektiğinde onlara sudo yetkisi vermek çok daha güvenli ve yönetilebilir bir yöntemdir.
Bu yazıda:
- Kullanıcı ekleme,
- Şifre tanımlama,
- Root (sudo) yetkisi verme yöntemleri,
- En güvenli uygulamalar adım adım ele alınacaktır.
Yeni Kullanıcı Ekleme
Linux’ta yeni kullanıcı eklemek oldukça basittir.
adduser kullaniciadi
Bu komut çalıştırıldığında sistem sizden şifre belirlemenizi ve bazı ek bilgileri (tam isim, oda numarası, telefon vb.) girmenizi ister.
Eğer var olan bir kullanıcının şifresini değiştirmek isterseniz:
passwd kullaniciadi
Bu sayede kullanıcı hesabı aktif hale gelir.
Root (sudo) Yetkisi Verme
Root yetkisi doğrudan verilmez bunun yerine kullanıcıya sudo hakkı tanımlanır. Böylece kullanıcı normalde standart haklara sahip olur ancak gerektiğinde yönetici yetkisiyle komut çalıştırabilir.
Grup Üzerinden Yetkilendirme
Linux dağıtımlarında root yetkisi için özel gruplar bulunur:
- Debian/Ubuntu tabanlı sistemlerde:
usermod -aG sudo kullaniciadi - RHEL/CentOS tabanlı sistemlerde:
usermod -aG wheel kullaniciadi
Burada kullanıcıyı ilgili gruba eklemek ona sudo yetkisi vermek için yeterlidir.
sudoers Dosyası Üzerinden Yetkilendirme
Daha ayrıntılı kontrol için /etc/sudoers dosyası düzenlenebilir. Bu dosya visudo komutuyla açılmalıdır çünkü visudo olası yazım hatalarını kontrol ederek sistemin kilitlenmesini engeller.
visudo
Dosyanın sonuna şu satırlardan birini ekleyebilirsiniz:
- Şifre ile root yetkisi:
kullaniciadi ALL=(ALL) ALL - Şifresiz root yetkisi (riskli):
kullaniciadi ALL=(ALL) NOPASSWD: ALL
NOPASSWD seçeneği özellikle güvenlik açısından dikkatle kullanılmalıdır. Sadece otomasyon süreçlerinde ya da acil durum senaryolarında önerilir.
3.3. sudoers.d Dizini ile Yetkilendirme (En Güvenli Yöntem)
En iyi yöntemlerden biri her kullanıcı için ayrı bir dosya oluşturmaktır. Bunun için:
vi /etc/sudoers.d/kullaniciadi
İçerisine şu satırı ekleyin:
kullaniciadi ALL=(ALL) ALL
veya şifresiz yetki için:
kullaniciadi ALL=(ALL) NOPASSWD: ALL
Aynı işlem tek satırlık bir komutla da yapılabilir:
echo "kullaniciadi ALL=(ALL) ALL" | tee /etc/sudoers.d/kullaniciadi
Senaryolar
- Güvenli Kullanım Senaryosu:
Yazılım geliştiricilere yalnızca gerektiğinde root hakkı verilmesi. Kullanıcı sudo grubuna eklenir her komut öncesinde şifre sorulur. - Otomasyon Senaryosu:
CI/CD pipeline kullanıcılarına sürekli şifre girmek mümkün değildir. Bu durumdaNOPASSWDseçeneği kullanılır ama hesap sadece otomasyon için ayrılmış olmalıdır. - Takip Kolaylığı Senaryosu:
/etc/sudoers.d/altına kullanıcı bazlı dosya açmak hangi kullanıcının hangi yetkiye sahip olduğunu tek bakışta görmeyi sağlar.
Güvenlik ve En İyi Uygulamalar
- Root hesabını doğrudan kullanmayın, her kullanıcıya ayrı hesap açın.
- Mümkün olduğunda NOPASSWD seçeneğinden kaçının.
- Kullanıcı bazlı dosyalar (
/etc/sudoers.d/) ile yetkileri düzenleyin. - Kullanıcı oluşturduktan sonra mutlaka güçlü şifre atayın.
- Sudo kullanımını log’larla izleyin (örn.
/var/log/auth.log). - Gereksiz root yetkisi vermekten kaçının.
Linux üzerinde kullanıcı yönetimi ve root yetkisi verme işlemleri oldukça kolaydır fakat güvenlik açısından doğru yöntemlerin seçilmesi gerekir.
- Kullanıcı eklemek:
adduser kullaniciadi - Şifre değiştirmek:
passwd kullaniciadi - Yetkilendirme: Grup (
sudo/wheel), sudoers dosyası veya/etc/sudoers.d
En iyi pratik Kullanıcıya özel bir dosya oluşturup yetkileri oradan tanımlamak ve gerektiğinde sudo loglarını takip etmektir. Küçük birkaç komut hem güvenliği hem de yönetilebilirliği ciddi şekilde artırır.