Komutları üretim sunucusunda çalıştırmadan önce yedek alın ve mümkünse bir test ortamında deneyin. Yönetim erişiminizi (SSH, panel) kaybetmemek için ayar değişikliklerinde açık bir ikinci oturum bulundurun.
Bu rehberde ne yapacağız?
Bu rehberde Linux sunucuda kullanıcı oluşturmayı, sudo yetkisi vermeyi, visudo ile güvenli yapılandırma yapmayı, hesapları kilitleyip silmeyi ve yetkileri denetlemeyi öğreneceksiniz. Birden fazla yöneticinin bulunduğu hosting ve sunucu ortamlarında iyi bir kullanıcı yönetimi, kimin ne yaptığını izlemenin temelidir.
Tahmini süre: 20-30 dakika.
Gereksinimler
- Debian/Ubuntu veya AlmaLinux/Rocky sunucu
- Halihazırda sudo yetkili bir hesap veya root erişimi
- Konsol ya da ikinci bir oturum; sudoers hatasında kurtarma yolu olarak
- Silme işlemlerinden önce ilgili kullanıcının verisinin yedeği
Adım adım kullanıcı ve sudo yönetimi
1. Kullanıcı oluşturun
Debian ve Ubuntu’da adduser etkileşimli ve kullanışlıdır. RHEL tabanlı sistemlerde useradd kullanılır; ev dizini için -m, kabuk için -s verilir.
# Debian/Ubuntu
sudo adduser ayse
# AlmaLinux/Rocky
sudo useradd -m -s /bin/bash ayse
sudo passwd ayse2. Sudo yetkisi verin
Yönetici yetkisi vermek için kullanıcıyı ilgili gruba ekleyin: Debian ve Ubuntu’da sudo, RHEL tabanlı sistemlerde wheel. Grup değişikliği kullanıcının yeni oturumunda geçerli olur.
# Debian/Ubuntu
sudo usermod -aG sudo ayse
# AlmaLinux/Rocky
sudo usermod -aG wheel ayse
id ayseDikkat: usermod -aG komutunda -a seçeneğini unutursanız kullanıcı mevcut diğer gruplardan çıkar.
3. Sudoers ayarlarını visudo ile düzenleyin
/etc/sudoers dosyasını asla normal metin düzenleyiciyle açmayın; hatalı bir satır sudo’yu bozar. visudo kaydetmeden önce sözdizimini denetler. Özel kurallar için /etc/sudoers.d/ altında ayrı dosyalar oluşturmak daha düzenlidir.
sudo visudo
sudo visudo -f /etc/sudoers.d/ayse-servisÖrnek: ayse kullanıcısına yalnızca nginx servisini yeniden başlatma yetkisi vermek. Satırı visudo -f ile açılan dosyaya yazın.
ayse ALL=(root) /usr/bin/systemctl restart nginxTam yetkili ama parolasız (NOPASSWD) kural vermekten kaçının; yalnızca zorunlu otomasyon hesaplarında ve dar kapsamlı komutlarla kullanın. Dosya izni 0440 olmalıdır; visudo bunu kendisi ayarlar. /etc/sudoers.d altındaki dosya adlarında nokta bulunmamalı ve ad ~ ile bitmemelidir; aksi halde sudo dosyayı okumaz. systemctl yolu dağıtıma göre /usr/bin veya /bin altında olabilir; which systemctl ile doğrulayın.
4. Yetkileri kontrol edin
sudo -l -U ayse
getent group sudo
getent group wheel
awk -F: '($3==0){print $1}' /etc/passwdSon komut UID değeri 0 olan hesapları listeler; yalnızca root görünmelidir.
5. Parola süresi ve politika
Parola yaşını ve durumunu chage ile görüp ayarlayabilirsiniz. Servis hesaplarına süre uygulamadan önce otomasyonu etkileyip etkilemeyeceğini düşünün.
sudo chage -l ayse
sudo chage -M 90 -W 7 ayse
sudo passwd -e aysepasswd -e kullanıcıyı bir sonraki girişte parolasını değiştirmeye zorlar.
6. Hesabı kilitleyin veya silin
Ayrılan bir çalışanın hesabını önce kilitleyin, verileri yedekleyin ve belirli bir süre sonra silin. Kilitleme parola girişini engeller; SSH anahtarı hâlâ çalışabileceği için kabuğu da kapatın ve authorized_keys dosyasını temizleyin. usermod -e 1 hesabın süresini doldurur; PAM hesap denetimi sayesinde anahtarla girişi de engeller.
sudo usermod -L ayse
sudo usermod -e 1 ayse
sudo usermod -s /usr/sbin/nologin ayse
sudo mv /home/ayse/.ssh/authorized_keys /home/ayse/.ssh/authorized_keys.kapaliSilme işlemi geri alınamaz. Ev dizinini yedeklediğinizden emin olduktan sonra uygulayın.
sudo userdel -r ayse7. Sudo kullanımını izleyin
Sudo komutları günlüğe yazılır. Debian/Ubuntu’da /var/log/auth.log, RHEL tabanlı sistemlerde /var/log/secure dosyasına veya systemd günlüğüne bakın.
sudo journalctl _COMM=sudo --since today
sudo grep sudo /var/log/auth.log | tailDoğrulama
- id kullanici çıktısında doğru grup (sudo veya wheel) görünmeli
- Kullanıcı sudo -l komutuyla beklenen yetkileri görmeli
- Kısıtlı kural verdiyseniz yalnızca izinli komutu çalıştırabilmeli, diğerlerinde reddedilmeli
- Kilitlenen hesapla giriş denemesi başarısız olmalı
sudo -l -U ayse
sudo passwd -S ayseSık karşılaşılan sorunlar
- is not in the sudoers file hatası: Kullanıcı sudo/wheel grubunda değildir; gruba ekleyip yeni oturum açın.
- sudoers sözdizimi hatası, sudo çalışmıyor: Konsoldan root ile girip visudo ile düzeltin; hatalı dosya /etc/sudoers.d altındaysa kaldırın.
- Grup eklendi ama yetki yok: Kullanıcının oturumu kapatıp açması gerekir.
- Silinen kullanıcının dosyaları kaldı: userdel -r bazı dizinleri silmeyebilir; find / -nouser ile sahipsiz dosyaları arayın.
- Kilitli hesap SSH ile hâlâ giriyor: Anahtar girişi parola kilidinden etkilenmez; authorized_keys dosyasını kaldırın ve kabuğu nologin yapın.
Güvenlik ve bakım notları
- En az yetki ilkesi: tam sudo yerine gereken komutlara kural verin
- Paylaşılan hesap kullanmayın; her kişiye ayrı hesap tanımlayın
- Kullanıcı ve sudo yetkilerini düzenli (örneğin üç ayda bir) gözden geçirin
- Ayrılan personelin hesaplarını hızla kilitleyin
- root parolasını güçlü tutun, root ile doğrudan SSH girişine izin vermeyin
- Önemli sunucularda sudo günlüklerini merkezi bir günlük sistemine iletin
Sık sorulan sorular
sudo ile su arasındaki fark nedir?
su başka bir kullanıcıya geçer ve o kullanıcının parolasını ister; sudo ise tek komutu yetkili çalıştırır ve kimin ne yaptığını günlüğe yazar. Bu nedenle sudo tercih edilir.
sudo grubu ile wheel grubu aynı şey mi?
İşlev olarak benzerdir; sudoers yapılandırmasında hangi grubun yetkili olduğu dağıtıma göre farklıdır. Debian ve Ubuntu sudo, RHEL tabanlı dağıtımlar wheel grubunu kullanır.
Parolasız sudo vermek güvenli mi?
Genellikle önerilmez. Gerekliyse yalnızca belirli bir komutla sınırlayın ve bu yetkiyi kullanan hesabın başka yöntemlerle de korunduğundan emin olun.
İlgili sözlük terimleri
Bu kategorideki diğer rehberler
- Linux’ta disk doluluk sorunu giderme (df, du, inode, silinmiş-açık dosyalar)Linux’ta disk doluluk sorununu adım adım giderin: df ve du ile büyük dizinleri bulun, inode tükenmesini ve silinmiş ama açık dosyaları tespit edip güvenle alan açın.
- auditd ile denetim kaydı: kritik dosya ve komutları izlemeauditd ile Linux sunucuda denetim kaydı tutun: kritik dosya değişikliklerini ve komutları izleyen kurallar yazın, ausearch ve aureport ile kayıtları sorgulayın.
- systemd servis birimi yazma ve sertleştirme seçenekleriKendi uygulamanız için systemd servis birimi yazın: Unit, Service ve Install bölümleri, otomatik yeniden başlatma, ortam dosyası ve sertleştirme seçenekleri.
- LVM ile disk yönetimi: birim oluşturma, büyütme ve anlık görüntüLVM ile disk yönetimini öğrenin: fiziksel birim, birim grubu ve mantıksal birim oluşturma, çalışırken büyütme, yeni disk ekleme ve anlık görüntü (snapshot) alma.