sudo nedir?
sudo, Linux ve Unix sistemlerinde yetkili bir kullanıcının tek bir komutu başka bir kullanıcı, çoğunlukla root olarak çalıştırmasını sağlayan araçtır. Kullanıcı root parolasını bilmeden ve sürekli root olarak oturum açmadan, yalnızca izin verilen komutları yönetici yetkisiyle çalıştırabilir.
Bu yaklaşım en az yetki ilkesine uyar: yönetici yetkisi yalnızca gerektiği anda ve kayıt altında kullanılır. Hangi komutların çalıştırılabileceği yapılandırma dosyasında tanımlanır.
Nasıl çalışır?
Bir komutun başına sudo yazdığınızda araç, yapılandırma kurallarına bakar. Kural izin veriyorsa genellikle sizin parolanızı ister ve komutu hedef kullanıcının yetkisiyle çalıştırır. İşlem, kimin hangi komutu ne zaman çalıştırdığını gösteren bir kayıt olarak sistem günlüğüne yazılır.
Kurallar /etc/sudoers dosyasında ve genellikle /etc/sudoers.d/ altındaki dosyalarda tutulur. Bu dosyalar bozulursa yönetici erişimi kaybolabileceği için düzenleme visudo ile yapılmalıdır.
Sunucu ve hosting ortamında
Birçok modern sunucuda root ile doğrudan SSH girişi kapatılır ve yönetim, sudo yetkili normal bir kullanıcıyla yapılır. Böylece her yönetici işlemi bir kişiye bağlanır ve izlenebilir. cPanel, Plesk ve DirectAdmin sunucularında da kök erişimi gerektiren işlemler için bu yaklaşım önerilir.
Ekip kullanımı olan sunucularda, herkesin her komutu çalıştırması yerine görev bazlı sınırlı kurallar tanımlanabilir. Örneğin bir kullanıcıya yalnızca belirli bir servisi yeniden başlatma izni verilebilir.
Nasıl uygulanır?
- Root ile doğrudan SSH girişini kapatıp sudo yetkili ayrı kullanıcılar kullanın.
- sudoers dosyasını daima
visudoile düzenleyin. - Kullanıcıya tüm komutlar yerine gereken komutlar için izin verin.
- sudo günlüklerini düzenli olarak inceleyin.
- NOPASSWD kuralını yalnızca gerçekten gerekli ve dar kapsamlı durumlarda kullanın.
- Yetkili kullanıcı listesini periyodik olarak gözden geçirin.
Sık yapılan hatalar
- Herkese tam yetkiyle ALL=(ALL) ALL vermek.
- Her komutta gereksiz yere sudo kullanıp dosya sahipliklerini bozmak.
- NOPASSWD ile geniş izinler tanımlamak.
- sudoers dosyasını sözdizimi kontrolü olmadan elle düzenleyip kendini dışarıda bırakmak.
Sık sorulan sorular
sudo ne işe yarar?
Yetkili kullanıcının bir komutu geçici olarak yönetici (root) yetkisiyle çalıştırmasını sağlar. Root hesabıyla sürekli çalışma riskini azaltır.
sudo ile su arasındaki fark nedir?
su başka bir kullanıcıya geçerek tüm oturumu o kullanıcı olarak sürdürmenizi sağlar ve o kullanıcının parolasını ister. sudo ise tek bir komutu yetkiyle çalıştırır, kendi parolanızı sorar ve işlemleri kaydeder.
Kullanıcıyı sudo grubuna nasıl eklerim?
Dağıtıma göre kullanıcıyı sudo veya wheel grubuna eklemek yeterlidir. Örneğin Debian tabanlı sistemlerde usermod -aG sudo kullanici komutu kullanılır; çıkış yapıp yeniden girmeniz gerekir.
Bu terimin geçtiği 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.
İlgili terimler
- TOTPZamana dayalı, 30 saniyede bir değişen tek kullanımlık kod yöntemi.
- Yetkilendirme (authorization)Doğrulanmış bir kimliğin hangi kaynaklara ve işlemlere erişebileceğinin belirlenmesi.
- API anahtarıBir uygulamanın bir API’ye kendini tanıtmak için kullandığı gizli değer.
- Ayrıcalıklı erişim yönetimi (PAM)Yönetici ve root gibi yüksek yetkili hesapların kontrol altında kullanılmasını, kaydedilmesini ve sınırlandırılmasını sağlayan yaklaşım.
- İki adımlı doğrulama (2FA)Girişte parolaya ek olarak ikinci bir kanıt istenmesi.
- JWT (JSON Web Token)Kimlik bilgisini imzalı bir belirteç olarak taşıyan biçim.