Linux terminal eğitimlerine devam ediyoruz, en temel ve sık karşılaşacağımız ve hatta muhtemelen daha önce çeşitli terminallerde de sık sık görmüş olduğunuz sudo komutu hakkında bu yazıda temel bilgiler paylaşmak istiyorum. Linux'te Terminal'den IP Bilgilerini Görüntülemek (ifconfig komutu) yazısında ilk kez sudo kodunu kullandık ve önceden çalışmayan ifconfig kodu başına sudo yazdığımızda bir anda çalıştı. Peki o zaman sudo nedir?
İşletim sistemlerinde (Unix vb.) bir cihazı birden fazla kişinin kullanabileceği fikri ile birden çok kullanıcı ve rol yönetimi yapıları vardır. Bu kullanıcılar da farklı erişim ve düzenleme yetkileri ile kendi izinlerinin yettiği ölçekte bu işletim sistemi üzerinde shell gibi komut satırlarını kullanarak işlemler yapabilirler. sudo komutu da kullanıcıya root yetkisi ile işlemler yapabilme yetkisi verilmiş olunmaktadır ki zaten sudo komutunun açılımı da "superuser do" şeklindedir. Yeni Linux sürümlerinde sudo için "substitute user do" açılımının yapıldığını da görebilirsiniz, bunun sebebi de yeni Linux sürümlerinde sudo komutu ile sadece superuser değil aynı zamanda diğer kısıtlı kullanıcılar adına da komut verebilmesidir.
ifconfig gibi komutlar root kullanıcısı yetkisine sahip kullanıcılar tarafından çalıştırılabildikleri için tek başlarına çalıştırıldıklarında "command not found" hatası verebilirler. Ancak başlarına sudo konduktan sonra sorunsuz olarak çalışmış olurlar.
sudo ifconfig
Faydalı bilgi: eğer çok sayıda komutu sudo ile ardı ardına yazmanız gerekiyorsa her bir satırın başına sudo yazmak yerine bir kere sudo su
yazabilir ve sudo komutunun verdiği yetki ile birden çok satırda kod yazabilirsiniz.
sudo su
komutunun yetkisini sonlandırmak için de exit
komutu verilir.
Not: root kullanıcı yetkisi ile oluşturduğunuz dosyaları düzenlerken file 'x' is unwritable hatası alırsınız. Bu hatanın sebebi, sudo komutu ile root kullanıcı yetkisinde oluşturulmuş dosyalar ancak bu yetki düzeyi ile tekrar düzenlenebilir. sudo olmadan kaydetmek istediğinizde de error writing file: perrmission denied hatası alırsınız.