visudo -f
Bazı cevaplarda belirtildiği gibi kullanmanın bir başka yararı da karşılık gelen bir seçenek olmasıdır -c
veya --check
sudoers.d dosyasında veya sudoers.d içine koymak isteyebileceğiniz başka bir dosyada geçersiz bilgilere sahip olmadığınızı doğrular. Bu, çalıştırabilirsiniz gibi otomatik araçlar ile belirtilen durumlarda GERÇEKTEN kullanışlı.
sudo visudo -c -q -f /home/myuser/mysudoers && \
sudo chmod 600 /home/myuser/mysudoers && \
sudo cp /home/myuser/mysudoers /etc/sudoers.d/mysudoers
Bu, sessizce dosyayı kontrol eder (-q nedeniyle çıktı yok) ve yalnızca bir hata döndürmezse (1. çıkış geçersiz sudoers dosyası anlamına gelir) o zaman dosyayı sudoers.d içine kopyalar, bu şekilde dosyayı oluşturabilir ve ilk seferinde doğru yapmak zorunda kalmadan üzerinde çalışın (kullanmak sudo visudo -f /etc/sudoers.d/myfile
başarılı olmak zorundadır veya düzeltmezseniz içeriği atar).
Ayrıca, diğer ifadelerden bu ifadelere ilişkin dikkatli olun .
Bu dizindeki dosyalardaki kuralların / etc / sudoers için olduğundan daha gevşek olduğu benim deneyimim oldu. Bu dahil:
Dosyadaki hatalar sudo'nun başarısız olmasına neden olmadı. Ancak, dosya göz ardı edildi. İzin kuralları daha az katı görünüyor. Uygulanabilir grubun dosyayı okumasına izin veriyorum. Bunun / etc / sudo ile mümkün olduğuna inanmıyorum.
/Etc/sudoers.d içindeki dosyaların / etc / sudoers ile aynı sözdizimine uyması gerekir, çünkü kapaklar altında sistem aynı dosya için birden fazla giriş varsa, "kazanan" da sonuncu olan tüm dosyaları bir araya getirir. tekil ayar.
Eğer /etc/sudoers.d/ içerisindeki dosyalar üzerinde izinler çok yanlış ise (dünyaya yazılabilir), o zaman yok sayılırlar, bu geçersiz dosyaların gözden kaçmasına neden olabilir, aksi halde sudo
geçersiz bir sudo'yu alarak komutu ciddi şekilde kırabilirsiniz . d doğru izinlere sahip bir dosya.
Sudoers dosyalarının dünyaca okunabilir olmasına izin verebilir, yanlışlıkla 'other' yazmasına izin verirseniz, başka bir kullanıcı olarak ya da root terminalinden bu komutu çalıştırarak sudo yapmanız gerekir. Bu aynı zamanda, dosya root: root bir başkasına aitse kırılabilir.
sudo chmod 644 /etc/sudoers.d/mysudoers
sudo chown root:root /etc/sudoers.d/mysudoers
chmod o+w /etc/sudoers.d/vagrant
Çalıştığımda artık serseri kullanıcı olarak sudo yapamayacağımı, parolamı istediğimi ve sonra başarısız olacağımı onayladım .
sudo -l
Uygulanan komut izinlerini başka bir geçerli sudo kullanıcısı olarak görüntülemek için çalıştırdığımda , dosya izinleri hakkında da bir uyarı aldım. Bu, o+w
o sudo izinlerini veren dosyaya izinler uyguladığımda 'vagrant' kullanıcısının sudo kaybolduğunu onaylamak için kullandığım aynı komut .