sudoers dosyası bozulursa?

vim, nano vs. editörler ile sudoers dosyası bozulursa nasıl düzeltilir?

sudoers dosyasının bozulması yani syntax'dan kaynaklı bir hata vermesi hiçbir şekilde sudo komutunun kullanılamayacağı anlamına gelir. sudo komutu çalıştırılamadığından dolayı "sudo visudo" veya "sudo vim /etc/sudoers" gibi komutlarla sudoers dosyası açılarak tekrar editlenemez.

Sadece sudoers dosyasına yönelik düzenlemeler değil, sistemde hiçbir değişiklik yapılamaz. Çünkü sudo komutu sudoers dosyasındaki syntax hatasından dolayı çalışmayacaktır. Her sudo komutu ile komut çalıştırılmaya çalışıldığında aşağıdaki hata alınacaktır.

/etc/sudoers: syntax error near line 20

sudo: parse error in /etc/sudoers near line 20

sudo: no valid sudoers sources found, quitting

sudo: unable to initialize policy plugin

Not: Bu noktada visudo gibi bir komutun neden var olduğunu daha net bir şekilde anlıyoruz. visudo komutu sudoers gibi sistem dosyalarının editlenmesi sırasında syntax'a aykırı bir yazım olursa hiçbir şekilde dosyayı kaydetmeye izin vermeyecektir.

Eğer sistemde root kullanıcısı tanımlanmamış veya root'a ait parola bilinmyorsa o zaman geriye birkaç alternatif yol mevcuttur. Bunlardan bazıları hizmet alınan cloud servisinin sunduğu imkanlardır. Yada makineye fiziksel erişim söz konusu ise boot edilme esnasıda sistem dosyaları üzerinde değişiklik yapılabilir. Yada live cd takıp "sudoers" dosyası eski haline getirilebilir. Bu yolların bir çoğu fiziksel erişim istemektedir veya cloud servisinin size sunduğu hizmetlere bağlıdır.

Ancak çok daha kolay bir yöntemi anlatacağız.

  1. Öncellikle aynı kullanıcıya ait aynı makinede 2 ssh oturumu açıyoruz.

  2. İlk ssh oturumunda "echo $$" komutu ile o an çalışan bash'e ait proccess numarasını elde ediyoruz.

  3. Daha sonra 2. ssh oturumunun açıldığı makinede " pkttyagent --process (1. ssh oturumundaki bash'in pid değerini giriyoruz)

  4. Daha sonra 1. ssh oturumuna gelip pkexec visudoyazıyoruz. Bunu yazınca 2. ssh oturumunun açık olduğu terminalde bizden parola bilgisi isteyecek. Parola bilgisini doğru girdiğimizde ise 1. ssh oturumunun açık olduğu terminalde "sudoers" dosyası açılacak. Artık editleyebiliriz.

Hayat kurtaran bilgi, benim için ;)

Last updated