Örneklerle Linux’ta Sudo Komutu Nasıl Kullanılır
Merhabalar,
Sudo komutu, programları varsayılan olarak root kullanıcı olarak çalıştırmanıza izin verir. Komut satırında çok zaman harcıyorsanız, sudo oldukça sık kullanacağınız komutlardan biridir.
Root olarak oturum açmak yerine sudo kullanmak daha güvenlidir çünkü bireysel kullanıcılara, root parolasını bilmeden sınırlı yönetici ayrıcalıkları verebilirsiniz. Bu eğitim yazımızda sudo komutunun nasıl kullanılacağını anlatacağız.
sudo paketi çoğu Linux dağıtımında önceden yüklenmiştir.
Sudo paketinin sisteminizde kurulu olup olmadığını kontrol etmek için konsolunuzu açın, sudo yazın ve Enter’a basın. Sistemi sudo yüklediyseniz, kısa bir yardım mesajı görüntülenecektir. Aksi takdirde, sudo komutu bulunamadı gibi bir şey göreceksiniz.
Sudo kurulu değilse, dağıtımınızın paket yöneticisini kullanarak kolayca kurabilirsiniz.
Sudo’yu Ubuntu ve Debian’a yükleyelim
apt install sudo
Sudo’yu CentOS ve Fedora’ya yükleyin
yum install sudo
Varsayılan olarak, çoğu Linux dağıtımında sudo erişimi vermek, kullanıcıyı sudoers (/etc/sudoers) dosyasında tanımlanan sudo grubuna eklemek kadar basittir. Bu grubun üyeleri herhangi bir komutu root olarak çalıştırabilecektir. Grubun adı dağıtımdan dağıtıma farklılık gösterebilir.
CentOS ve Fedora gibi RedHat tabanlı dağıtımlarda sudo grubunun adı wheel dir.Ubuntu üzerinde sudo olarak isimlendirilir.
Kullanıcıyı gruba eklemek için aşağıdak komutu çalıştıralım.
usermod -aG wheel username
Debian, Ubuntu ve türevlerinde, sudo grubunun üyelerine sudo erişimi verilir:
usermod -aG sudo username
Ubuntu’daki root kullanıcı hesabı, güvenlik nedenleriyle varsayılan olarak devre dışı bırakılmıştır ve kullanıcıların sudo kullanarak sistem yönetim görevlerini gerçekleştirmeleri önerilir. Ubuntu installer, tarafından oluşturulan ilk kullanıcı zaten sudo grubunun bir üyesidir, bu nedenle Ubuntu kullanıyorsanız, oturum açtığınız kullanıcıya zaten sudo ayrıcalıkları verilmiştir.
Belirli bir kullanıcının yalnızca belirli programları sudo olarak çalıştırmasına izin vermek için, kullanıcıyı sudo grubuna eklemek yerine, kullanıcıları sudoers dosyasına ekleyin.
Örneğin, teknik kullanıcısının yalnızca sudo olarak mkdir komutunu çalıştırmasına izin vermek için aşağıdaki komutu yazalım.
sudo vi /etc/sudoers
yada
sudo visudo
açılan dosyaya aşağıdaki satırı ekleyelim.
teknik ALL=/bin/mkdir
Çoğu sistemde, visudo komutu /etc/sudoers dosyasını vim metin düzenleyicisiyle açar.
Ayrıca, kullanıcıların parola girmeden sudo komutlarını çalıştırmasına da izin verebilirsiniz.
teknik ALL=(ALL) NOPASSWD: ALL
Sudo Nasıl Kullanılır:
sudo komutunun sözdizimi aşağıdaki gibidir.
sudo SEÇENEKLER COMMAND
Sudo komutunun davranışını kontrol eden birçok seçeneği vardır, ancak genellikle herhangi bir seçenek olmaksızın en temel biçiminde kullanılır.
Sudo’yu kullanmak için, komutun önüne sudo eklemeniz yeterlidir.
sudo komut
Komut yazan kısma hangi komutu çalıştırmak istiyorsanız o komut gelmelidir.
Sudo, /etc/sudoers dosyasını okuyacak ve çağıran kullanıcıya sudo değerlendirmesi verilip verilmediğini kontrol edecektir. Sudo’yu bir oturumda ilk kez kullandığınızda, kullanıcı şifresini girmeniz istenecek ve komut root olarak yürütülecektir.
Örneğin, /root dizinindeki tüm dosyaları listelemek için şunu kullanırsınız:
sudo ls /root
Şifre Zaman Aşımı:
Varsayılan olarak, sudo, beş dakikalık sudo hareketsizliğinden sonra şifrenizi tekrar girmenizi isteyecektir. sudoers dosyasını düzenleyerek varsayılan zaman aşımını değiştirebilirsiniz. Dosyayı visudo ile açalım.
Aşağıdaki satırı ekleyerek varsayılan zaman aşımını ayarlayalım burada 10 değerini girdim.Girdiğim değer dakika cinsinden belirtilen zaman değeridir.
Defaults timestamp_timeout=10
Yalnızca belirli bir kullanıcı için timeout(zaman aşımı) değerini değiştirmek istiyorsanız, aşağıdaki satırı ekleyin, burada kullanıcı-adı söz konusu kullanıcıdır.
Defaults:kullanıcı-adı timestamp_timeout=10
Root Dışında Kullanıcı Olarak Bir Komut Çalıştırın.
Sudo’nun yalnızca mevcutta oturum açmış bir kullanıcıya root izinleri sağlamak için kullanıldığına dair yanlış bir algı var. Aslında, herhangi bir kullanıcı olarak bir komutu çalıştırmak için sudo kullanabilirsiniz.
u seçeneği, belirli bir kullanıcı olarak bir komutu çalıştırmanıza izin verir.
Aşağıdaki örnekte, whoami komutunu “efran” kullanıcısı olarak çalıştırmak için sudo kullanıyoruz.
sudo -u efran whoami
whoami komutu, komutu çalıştıran kullanıcının adını yazdıracaktır.
Sudo ile Yönlendirme Nasıl Yapılır?
Bir komutun çıktısını, kullanıcınızın yazma izni olmayan bir dosyaya yönlendirmeye çalışırsanız, “İzin reddedildi” hatası alırsınız.
sudo echo "merhaba" > /root/merhaba.txt
Bunun nedeni, çıktının “>” yönlendirmesinin sudo ile belirtilen kullanıcı değil, oturum açtığınız kullanıcı altında gerçekleştirilmesidir. Yönlendirme, sudo komutu çağrılmadan önce gerçekleşir.
Çözümlerden biri, sudo sh -c kullanarak root olarak yeni bir shell çağırmaktır.
sudo sh -c 'echo "merhaba" > /root/merhaba.txt'
Başka bir seçenek de çıktıyı aşağıda gösterildiği gibi normal bir kullanıcı olarak tee komutuna yönlendirmektir.
echo "merhaba" | sudo tee /root/merhaba.txt
sudo komutunun nasıl kullanılacağını ve sudo ayrıcalıklarına sahip yeni kullanıcıların nasıl oluşturulacağını sizlere kısaca anlatamaya çalıştım.
Umarım bu eğitim sizler için faydalı olur.