Kullanıcı Yönetimi
Sunucuda asla root kullanıcısı ile gündelik işlem yapmayın. Her yöneticinin kendi kullanıcı hesabı olmalıdır.
1. Kullanıcı İşlemleri (Lifecycle)
Yeni Kullanıcı Ekleme
Sadece kullanıcı değil, home dizini ve varsayılan kabuğu (bash) ile birlikte oluşturur.
adduser yeni_kullanici
# Şifre soracaktır. Güçlü bir şifre belirleyin.
# Diğer soruları ENTER ile geçebilirsiniz.
Kullanıcı Silme
Kullanıcıyı ve dosyalarını silmek için:
2. Yetkilendirme (Gruplar)
Sudo (Yönetici) Yetkisi
Bir kullanıcıya sudo komutunu kullanma hakkı vermek için onu sudo grubuna ekleyin.
Docker Yetkisi
Her seferinde sudo docker yazmamak için:
usermod -aG docker yeni_kullanici
# Etkili olması için kullanıcının çıkış yapıp tekrar girmesi gerekir.
3. Hesap Güvenliği
Hesabı Kilitleme (Lock)
Bir personel işten ayrıldıysa veya şüpheli işlem varsa, hesabı silmeden kilitleyebilirsiniz.
Parola Değişimi Zorlama
Kullanıcının bir sonraki girişinde parolasını değiştirmesini istiyorsanız:
Sadece SSH Key (Parolasız)
Eğer SSH hardening yaptıysanız (PasswordAuthentication no), kullanıcı oluşturduktan sonra onun için bir SSH key tanımlamanız gerekir.
# Kullanıcı adına geçiş yap
su - yeni_kullanici
# .ssh klasörünü oluştur
mkdir .ssh
chmod 700 .ssh
touch .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
# Public key'i yapıştır
nano .ssh/authorized_keys
4. Kim Kimdir?
Sunucuda şu an kimlerin olduğunu veya geçmişte kimlerin girdiğini görmek için:
5. Varsayılan Cloud Kullanıcılarını (opc/ubuntu) Kapatma 🛡️
Oracle Cloud (opc), AWS (ubuntu/ec2-user) gibi sağlayıcılar size varsayılan bir kullanıcı verir. Güvenlik için bu kullanıcıyı devre dışı bırakıp kendi kullanıcınızı kullanmalısınız.
Adım 1: Yeni Admin Oluşturun
Önce kendinize bir kullanıcı açın ve sudo verin (Bölüm 1 ve 2'deki gibi).
Adım 2: Test Edin (Çok Önemli!)
Yeni bir terminal açıp yeni kullanıcı ile sunucuya giriş yapabildiğinizi ve sudo komutu çalıştırabildiğinizi doğrulayın. Asla test etmeden eski kullanıcıyı kapatmayın!
Adım 3: SSH Erişimini Kısıtlayın (AllowUsers)
Bu en etkili yöntemdir. Sadece sizin kullanıcınızın SSH yapmasına izin verin.
/etc/ssh/sshd_config dosyasına ekleyin:
SSH servisini yeniden başlatın: sudo systemctl restart ssh
Adım 4: Varsayılan Kullanıcıyı Kilitleyin
Kullanıcıyı silmek (deluser) bazen risklidir (Cloud-init scriptleri bu kullanıcıya bağlı olabilir). Bunun yerine kilitlemek daha güvenlidir.
# 1. Şifresini kilitle
sudo usermod -L opc
# 2. Shell erişimini kapat (Giriş yapamaz)
sudo usermod -s /usr/sbin/nologin opc
Artık opc veya ubuntu kullanıcısı ile sisteme giriş yapılamaz.
6. Kısıtlı Kullanıcı Oluşturma (Geliştirici) 👨💻
Bazen ekibe yeni katılan bir geliştiriciye (junior) sunucu erişimi vermeniz gerekir ama yönetici (sudo) yetkisi olmasını istemezsiniz.
Adım 1: Kullanıcıyı Oluşturun
Adım 2: SSH İzni Verin
Eğer AllowUsers kullanıyorsanız (ki kullanmalısınız), bu kullanıcıyı listeye ekleyin:
/etc/ssh/sshd_config:
Sonra servisi yeniden başlatın: sudo systemctl restart ssh
Adım 3: SSH Anahtarını Ekleyin
Bölüm 3'teki "Sadece SSH Key" adımlarını uygulayın.
Adım 4: Test (Doğrulama)
Mehmet kullanıcısı ile giriş yapın ve sudo komutunu deneyin.
ssh mehmet@sunucu
mehmet@server:~$ sudo apt update
[sudo] password for mehmet:
mehmet is not in the sudoers file. This incident will be reported. 🚫
Bu hatayı alıyorsanız işlem başarılıdır. Kullanıcı sadece kendi ev dizininde işlem yapabilir, sistem ayarlarını bozamaz.