Sudoers Dosyasını Nasıl Düzenlerim
Sudoers, ayrıcalık ayrımı, Linux ve Unix benzeri işletim sistemlerinde uygulanan temel güvenlik paradigmasıdır. Normal kullanıcılar, etkilerini kendi ortamlarıyla sınırlı tutmak ve geniş işletim sistemini etkilememek için sınırlı ayrıcalıklarla çalışırlar.
Özel bir kullanıcı olan “root”, süper kullanıcı ayrıcalıklarına sahiptir. Bu, normal kullanıcılarda bulunan kısıtlamaların olmadığı bir yönetici hesabıdır. Kullanıcılar, birkaç farklı yöntemle süper kullanıcı veya root ayrıcalıklarıyla komutları çalıştırabilirler.
Bu makalede, /etc/sudoers dosyasını düzenleme üzerinde özel bir odaklanma ile doğru ve güvenli bir şekilde root ayrıcalıklarını nasıl alacağınızı tartışacağız.
Bu adımları Ubuntu 20.04 sunucusunda tamamlayacağız, ancak Debian ve CentOS gibi modern Linux dağıtımları benzer bir şekilde çalışmalıdır.
Bu rehber, Ubuntu 20.04 Sunucu Kurulduktan Sonra Ilk Yapılması Gerekenler | Narweb.net Blog kurulumunu zaten tamamladığınızı varsayar. Sunucunuza normal, root olmayan bir kullanıcı olarak giriş yapın ve aşağıdaki gibi devam edin.
Not: Bu tutorial, ayrıcalık yükseltme ve sudoers dosyası hakkında derinlemesine bilgi verir.
Root Ayrıcalıkları Nasıl Alınır
Root ayrıcalıklarını almanın üç temel yolu vardır, bunlar sofistikelik düzeylerinde farklılık gösterir.
Root Olarak Giriş Yapma
Root ayrıcalıklarını almanın en basit ve doğrudan yöntemi, sunucunuza root kullanıcısı olarak doğrudan giriş yapmaktır.
Eğer bir yerel makineye giriş yapıyorsanız (veya bir sanal sunucuda dış konsol özelliğini kullanıyorsanız), giriş istemişinde kullanıcı adınız olarak root’u girin ve istendiğinde root şifresini girin.
SSH üzerinden giriş yapıyorsanız, SSH bağlantı dizesinde IP adresi veya alan adından önce root kullanıcısını belirtin:
ssh root@sunucu_IP
Eğer root kullanıcısı için SSH anahtarları kurmadıysanız, istendiğinde root şifresini girin.
Root Olmak için su Kullanma
Doğrudan root olarak giriş yapma genellikle önerilmez, çünkü bu, sistemi yönetici olmayan görevler için kullanmaya başlamak için kolaydır, bu da tehlikelidir.
Süper kullanıcı ayrıcalıklarını kazanmanın bir diğer yolu, ihtiyaç duydukça root kullanıcısı olmanıza olanak tanır.
Bunu, “substitute user” anlamına gelen su komutunu çağırarak yapabiliriz. Root ayrıcalıklarını kazanmak için şunu yazın:
su
Root kullanıcısının şifresi için istekte bulunulacak, ardından bir root kabuk oturumuna bırakılacaksınız.
Root ayrıcalıkları gerektiren görevler tamamlandığında, normal kabuğunuza dönmek için şunu yazın:
exit
Root Olarak Komutları sudo ile Çalıştırma
Root ayrıcalıklarını almanın tartışacağımız son yolu, sudo komutudur.
Sudo komutu, yeni bir kabuk başlatmaya gerek kalmadan, root ayrıcalıklarıyla tek seferlik komutları çalıştırmanıza olanak tanır. Şöyle çalıştırılır:
sudo komut
Sudo, su’nun aksine, root şifresini değil, mevcut kullanıcının şifresini ister.
Güvenlik açısından, sudo erişimi kullanıcılara varsayılan olarak verilmez ve düzgün işlemesi için önceden kurulması gerekir.
Aşağıdaki bölümde, sudo konfigürasyonunu daha fazla detayda nasıl değiştireceğimizi tartışacağız.
Visudo Nedir?
Sudo komutu, /etc/sudoers konumunda bulunan bir dosya aracılığıyla yapılandırılır.
Uyarı: Bu dosyayı normal bir metin düzenleyici ile asla düzenlemeyin! Her zaman visudo komutunu kullanın!
/etc/sudoers dosyasındaki yanlış sözdizimi, size yükseltilmiş ayrıcalıklar almanın imkansız olduğu bozuk bir sistem bırakabileceği için, dosyayı düzenlerken visudo komutunu kullanmak önemlidir.
Visudo komutu, bir metin düzenleyiciyi normal bir şekilde açar, ancak kaydederken dosyanın sözdizimini doğrular. Bu, sudo işlemlerini engelleyen konfigürasyon hatalarını önler, bu da root ayrıcalıkları almanın tek yolu olabilir.
Geleneksel olarak, visudo /etc/sudoers dosyasını vi metin düzenleyicisi ile açar. Ancak, Ubuntu, visudo’yu nano metin düzenleyicisi kullanacak şekilde yapılandırmıştır.
Eğer bunu vi’ye geri değiştirmek isterseniz, şu komutu girin:
sudo update-alternatives --config editor
Çıktı:
There are 4 choices for the alternative editor (providing /usr/bin/editor).
Selection Path Priority Status
------------------------------------------------------------
* 0 /bin/nano 40 auto mode
1 /bin/ed -100 manual mode
2 /bin/nano 40 manual mode
3 /usr/bin/vim.basic 30 manual mode
4 /usr/bin/vim.tiny 10 manual mode
Press <enter> to keep the current choice[*], or type selection number:
Yapmak istediğiniz seçimi belirten numarayı seçin.
CentOS’ta, bu değeri ~/.bashrc dosyanıza aşağıdaki satırı ekleyerek değiştirebilirsiniz:
export VISUAL=vim
export EDITOR="$VISUAL"
Değişiklikleri uygulamak için dosyayı kaynaklayın:
source ~/.bashrc
Visudo’yu yapılandırdıktan sonra, /etc/sudoers dosyasına erişmek için komutu çalıştırın:
sudo visudo
Sudoers Dosyası Nasıl Değiştirilir
Seçtiğiniz metin düzenleyicisinde /etc/sudoers dosyası sunulacaktır.
Ubuntu 20.04’ten dosyayı kopyaladım ve yapıştırdım, yorumlar kaldırıldı. CentOS /etc/sudoers dosyası çok daha fazla satıra sahip, bu kılavuzda tartışmayacağımız.
/etc/sudoers
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
root ALL=(ALL:ALL) ALL
%admin ALL=(ALL) ALL
%sudo ALL=(ALL:ALL) ALL
#includedir /etc/sudoers.d
Bu satırların ne işe yaradığına bir göz atalım.
Varsayılan Satırlar
İlk satır, Defaults env_reset, terminal ortamını herhangi bir kullanıcı değişkenini kaldırmak üzere sıfırlar. Bu, sudo oturumundan potansiyel olarak zararlı çevresel değişkenleri temizlemek için kullanılan bir güvenlik önlemidir.
İkinci satır, Defaults mail_badpass, sistemine kötü sudo şifre denemelerinin bildirimlerini yapılandırılmış mailto kullanıcısına postalamasını söyler. Varsayılan olarak, bu root hesabıdır.
Üçüncü satır, Defaults secure_path=… ile başlar, sudo işlemleri için kullanılacak PATH’i (işletim sisteminin uygulamalar için dosya sisteminde nereye bakacağını) belirtir. Bu, zararlı olabilecek kullanıcı yollarının kullanılmasını önler.
Kullanıcı Ayrıcalık Satırları
Root kullanıcısının sudo ayrıcalıklarını belirten dördüncü satır, önceki satırlardan farklıdır. Farklı alanların ne anlama geldiğine bir göz atalım:
root ALL=(ALL:ALL) ALL
İlk alan, kuralın uygulanacağı kullanıcı adını (root) gösterir.
root ALL=(ALL:ALL) ALL
İlk “ALL”, bu kuralın tüm ana bilgisayarlara uygulandığını gösterir.
root ALL=(ALL:ALL) ALL
Bu “ALL”, root kullanıcısının tüm kullanıcılar olarak komutları çalıştırabileceğini gösterir.
root ALL=(ALL:ALL) ALL
Bu “ALL”, root kullanıcısının tüm gruplar olarak komutları çalıştırabileceğini gösterir.
root ALL=(ALL:ALL) ALL
Son “ALL”, bu kuralların tüm komutlara uygulandığını gösterir.
Bu, root kullanıcımızın şifrelerini verdikleri sürece sudo kullanarak herhangi bir komutu çalıştırabileceği anlamına gelir.
Grup Ayrıcalık Satırları
Sonraki iki satır, kullanıcı ayrıcalık satırlarına benzer, ancak gruplar için sudo kurallarını belirtir.
% ile başlayan isimler grup isimlerini gösterir.
Burada, admin grubunun herhangi bir kullanıcı olarak herhangi bir ana bilgisayarda herhangi bir komutu çalıştırabileceğini görüyoruz. Benzer şekilde, sudo grubu aynı ayrıcalıklara sahiptir, ancak herhangi bir grup olarak da çalıştırabilir.
Dahil Edilen /etc/sudoers.d Satırı
Son satır ilk bakışta bir yorum gibi görünebilir:
#includedir /etc/sudoers.d
Bir # ile başlar, bu genellikle bir yorumu gösterir. Ancak, bu satır aslında /etc/sudoers.d dizinindeki dosyaların kaynaklandığını ve uygulandığını gösterir.
Bu dizindeki dosyalar, /etc/sudoers dosyasıyla aynı kuralları takip eder. ~ ile bitmeyen ve içinde . olmayan herhangi bir dosya okunur ve sudo konfigürasyonuna eklenir.
Bu, uygulamaların kurulum sırasında sudo ayrıcalıklarını değiştirmek için esas olarak düşünülmüştür. Tüm ilişkili kuralları /etc/sudoers.d dizinindeki tek bir dosyada koymak, hangi ayrıcalıkların hangi hesaplarla ilişkili olduğunu görmeyi ve kimlik bilgilerini /etc/sudoers dosyasını manipüle etmeye çalışmadan kolayca tersine çevirmeyi kolaylaştırır.
/etc/sudoers.d dizinindeki dosyaları düzenlerken her zaman visudo kullanmalısınız. Bu dosyaları düzenlemenin sözdizimi şöyle olurdu:
sudo visudo -f /etc/sudoers.d/dosya_adı
Bir Kullanıcıya Sudo Ayrıcalıkları Nasıl Eklenir
Bir kullanıcıya sudo ayrıcalıkları eklemek için, /etc/sudoers dosyasına veya /etc/sudoers.d dizinindeki bir dosyaya bir kullanıcı ayrıcalık satırı eklemeniz gerekir.
Örneğin, kullanıcı adı narweb olan bir kullanıcıya sudo ayrıcalıkları eklemek için, /etc/sudoers dosyasına veya /etc/sudoers.d dizinindeki bir dosyaya aşağıdaki satırı ekleyebilirsiniz:
narweb ALL=(ALL:ALL) ALL
Bu, narweb kullanıcısının, şifresini verdikleri sürece sudo kullanarak herhangi bir komutu çalıştırabileceği anlamına gelir.
Sonuç
Bu tutorial, sudoers dosyasını güvenli bir şekilde düzenlemenin ve kullanıcı ve grup ayrıcalıklarını nasıl yapılandıracağınızın temellerini öğretmeyi amaçlamaktadır.
Bu dosya, bir kullanıcının ne zaman ve nasıl sudo kullanabileceğini kontrol eden bir dizi kural içerir. Bu kurallar, kullanıcının hangi komutları, hangi kullanıcılar ve gruplar olarak çalıştırabileceğini belirtir.
Sudoers dosyasını düzenlerken her zaman dikkatli olun. Yanlış bir yapılandırma, sistemdeki tüm kullanıcıların sudo ayrıcalıklarını kaybetmelerine neden olabilir, bu da sistem yönetimini zorlaştırabilir.
Sudoers dosyasını düzenlerken her zaman visudo komutunu kullanın. Bu, dosyanın sözdizimini kontrol eder ve potansiyel hataları önler.
Sudoers dosyasını düzenleme konusunda daha fazla bilgi için man sudoers komutunu çalıştırın:
man sudoers
Bu, sudoers dosyasının sözdizimi ve kullanımı hakkında daha fazla bilgi sağlayacaktır.
Ayrıca sitemizde daha önce Docker konusu ile ilgili yazılmış bu yazılar da ilginizi çekebilir:
Docker Nedir? Ve NARWEB’den Aldığım Sunucuma Nasıl Kurabilirim? | Narweb.net Blog
Heroku Alternatifi PaaS Çözümü “Dokku” Nedir, Nasıl Kurulur Ve Nasıl Kullanılır? | Narweb.net Blog
Basit Bir Şekilde Kubernetes Cluster Oluşturma Rehberi | Narweb.net Blog
Portainer Nedir Ve Nasıl Kurulur? Docker Yönetimini Kolaylaştıran Arayüz | Narweb.net Blog
Web hosting ihtiyaçlarınız için Narweb web hosting paketlerine göz atabilirsiniz: Linux Hosting | Uygun Fiyat ve Yüksek Hızlı Enterprise SSD Hosting | Narweb
Sunucu ihtiyaçlarınız için Narweb VDS paketlerimize göz atabilirsiniz: VDS Sunucu | Enterprise SSD Dedicated Sanal Sunucu Yüksek Performans | Narweb
Ayrıca sitemizde daha önce yayınladığımız bu yazılar da dikkatinizi çekebilir:
Ubuntu Linux: Kapsamlı Bir Giriş | Narweb.net Blog
Ubuntu 20.04 Sunucu Kurulduktan Sonra Ilk Yapılması Gerekenler | Narweb.net Blog
Ubuntu 20.04 üzerine Plesk Hosting Kontrol Paneli Kurulumu Nasıl Yapılır? | Narweb.net Blog
En Çok Kullanılan 20 Linux Komutu Ve örnekleri | Narweb.net Blog
Ubuntu 20.04’te SSH Keys (Anahtarları) Nasıl Oluşturulur Ve Kullanılır? | Narweb.net Blog
SSH Temelleri: SSH Sunucuları, İstemcileri Ve Anahtarlarla Çalışma | Narweb.net Blog