KULLANICI, GRUP VE SUDO YETKİLENDİRME YÖNETİMİ

Linux'ta kimlik ve erişim yönetimi (IAM): Yeni kullanıcıların oluşturulması, temel grup komutları, dosya sahipliği/izinleri ve Root yetkilerinin standart kullanıcılara güvenli bir şekilde devredilmesi (`sudoers`) rehberi.

Giriş: Linux sunucularında güvenlik açısından en iyi uygulama, Root hesabının doğrudan kullanılmamasıdır. Tüm yönetim işlemleri, yetkilendirilmiş standart kullanıcılar tarafından **`sudo`** komutu kullanılarak yapılmalıdır.

Bölüm 1: Kullanıcı ve Grup Yönetimi (Root Yetkisiyle)

Temel Kullanıcı Komutları

  1. **Yeni Kullanıcı Oluşturma:** Yeni bir kullanıcı oluşturur ve varsayılan olarak ona bir Home dizini (`/home/kullaniciadi`) ve aynı isimde birincil grup atar.
    sudo useradd -m mustafa
    **Açıklama:** `-m` (create home directory) parametresi Home dizinini oluşturur.
  2. **Kullanıcı Parolası Belirleme:** Yeni oluşturulan kullanıcıya parola atayın. Sistem sizden parolayı iki kez girmenizi isteyecektir.
    sudo passwd mustafa
  3. **Kullanıcı Bilgilerini Görüntüleme:** Bir kullanıcının ait olduğu grupları ve kimlik numarasını (UID) görüntüler.
    id mustafa
  4. **Kullanıcı Hesabını Kilitleme/Açma:** Güvenlik ihlali veya geçici uzaklaştırma durumunda kullanılır.
    sudo usermod -L mustafa  # Hesabı kilitler
    sudo usermod -U mustafa  # Kilidi açar
  5. **Kullanıcı Hesabını Silme:** Kullanıcıyı ve Home dizinini sistemden tamamen kaldırır.
    sudo userdel -r mustafa
    **Açıklama:** `-r` (remove home directory and mail spool) Home dizinini de siler.

Temel Grup Komutları

  1. **Yeni Grup Oluşturma:** İzinleri toplu yönetmek için yeni bir güvenlik grubu oluşturun (Örn: `webadmins`).
    sudo groupadd webadmins
  2. **Kullanıcıyı Gruba Ekleme:** Bir kullanıcıyı ikincil (secondary) bir gruba ekler.
    sudo usermod -aG webadmins mustafa
    **Kritik:** `-a` (append) ve `-G` (groups) parametreleri mutlaka kullanılmalıdır. Sadece `-G` kullanmak, kullanıcının mevcut tüm gruplarını siler!
  3. **Grup Üyelerini Görüntüleme:** Belirli bir gruba ait kullanıcıları listeler.
    getent group webadmins

Bölüm 3: Dosya İzinleri, Sahiplik ve Erişim Kontrolü

Linux'ta her dosya ve dizinin bir sahibi (User) ve bir grubu (Group) vardır. İzinler 3 kategoriye ayrılır: Sahip (Owner), Grup (Group) ve Diğerleri (Others).

Dosya Sahipliği Yönetimi

  1. **Sahipliği Değiştirme (chown):** Bir dosyanın sahibini ve grubunu değiştirir.
    # Dosyanın sahibini 'mustafa' yapar
    sudo chown mustafa /var/www/html/index.html
    
    # Hem sahibi hem de grubu 'mustafa' yapar (kullanici:grup)
    sudo chown mustafa:mustafa /var/www/html/index.html
  2. **Grubu Değiştirme (chgrp):** Sadece dosyanın ait olduğu grubu değiştirir.
    # Grubu 'webadmins' yapar
    sudo chgrp webadmins /var/www/html/index.html

Dosya İzinleri Yönetimi (chmod)

İzinler, **okuma (r=4), yazma (w=2) ve çalıştırma (x=1)** değerleriyle atanır (Oktal Gösterim).

  1. **İzin Atama:** Sahip (rwx=7), Grup (rwx=7), Diğerleri (---=0).
    # Sahip ve grubun tam erişimi, diğerlerinin erişimi yok (770)
    sudo chmod 770 /var/www/html/ozel-dizin
  2. **İzinleri Değiştirme (Sembolik):** Mevcut izinlere ekleme/çıkarma yapar.
    # Grubun (g) yazma (w) iznini ekle (+)
    sudo chmod g+w /var/www/html/index.html
    
    # Diğerlerinin (o) çalıştırma (x) iznini kaldır (-)
    sudo chmod o-x /var/www/html/betik.sh

Bölüm 4: Sudo (Superuser Do) ile Yetki Devri

**`sudoers`** dosyası, hangi kullanıcının/grubun hangi sunucuda hangi komutları Root yetkisiyle çalıştırabileceğini belirleyen ana güvenlik dosyasıdır. **Bu dosya daima `visudo` komutuyla düzenlenmelidir.**

Sudo Yetkilendirme Adımları

  1. **Sudoers Dosyasını Düzenleme:** Dosyayı açmak için **yalnızca** `visudo` komutunu kullanın. Bu komut, dosya kaydetme sırasında syntax kontrolü yaparak yanlış yapılandırmadan dolayı sistemi Root yetkisi olmadan bırakmanızı (kilitlenmenizi) önler.
    sudo visudo
  2. **Grup Yetkisi Verme:** Root yetkilerini bir gruba (Örn: `wheel` veya `webadmins`) vermek en güvenli yoldur. **Wheel Grubu (Varsayılan Yöntem):** Varsayılan olarak RHEL/CentOS'ta `wheel` grubuna tam sudo yetkisi verilmiştir (ancak başındaki `#` işareti kaldırılmalıdır).
    # Sudoers dosyasına eklenmesi gereken satır (Root yetkisi verir):
    # %wheel ALL=(ALL) ALL   # Bu satırın başındaki '#' işaretini kaldırın.
    %webadmins ALL=(ALL) ALL   # Veya kendi grubunuzu ekleyin
    **Açıklama:** `%webadmins` grubundaki kullanıcılar, herhangi bir hostta (`ALL`) herhangi bir kullanıcı (`ALL`) olarak herhangi bir komutu (`ALL`) çalıştırabilir.
  3. **Kullanıcıya Sudo Yetkisi Atama:** Yetkili kullanıcıları `wheel` veya `webadmins` grubuna ekleyin.
    sudo usermod -aG wheel mustafa
  4. **Sudo Yetkisini Test Etme:** Standart kullanıcı (`mustafa`) olarak oturum açın ve Root yetkisi gerektiren bir komutu `sudo` ile çalıştırın.
    sudo dnf update -y
    **Kontrol Noktası:** Komut, kullanıcının kendi parolasını girmesini isteyecektir. Başarılı çalışıyorsa yetkilendirme doğrudur.
Kritik Güvenlik Uyarısı (visudo): `visudo` dışında herhangi bir metin düzenleyici (`vi`, `nano`) ile `/etc/sudoers` dosyasını düzenlemeyin. Yanlış bir syntax hatası tüm sunucunun kilitlenmesine ve Root yetkisini kaybetmenize yol açar.

← ÖNCEKİ: PAKET YÖNETİMİ | SONRAKİ: DOSYA SİSTEMİ →