Manfaat lain menggunakan visudo -f
seperti yang disebutkan dalam beberapa jawaban adalah ada opsi yang sesuai -c
atau --check
yang memverifikasi Anda tidak memiliki informasi yang tidak valid dalam file sudoers.d atau file lain yang mungkin ingin Anda masukkan ke sudoers.d. Ini SANGAT berguna dalam kasus yang disebutkan dengan alat otomatis, karena Anda dapat menjalankan mis
sudo visudo -c -q -f /home/myuser/mysudoers && \
sudo chmod 600 /home/myuser/mysudoers && \
sudo cp /home/myuser/mysudoers /etc/sudoers.d/mysudoers
Ini diam-diam memeriksa file (tidak ada output karena -q) dan hanya jika itu TIDAK mengembalikan kesalahan (keluar 1 berarti file sudoers tidak valid) maka itu akan menyalin file ke sudoers.d, dengan cara ini Anda dapat membuat file dan kerjakan tanpa harus memperbaikinya pertama kali (menggunakan sudo visudo -f /etc/sudoers.d/myfile
harus berhasil atau membuang konten jika Anda tidak memperbaikinya).
Juga, kata hati - hati tentang pernyataan ini dari jawaban lain.
Sudah pengalaman saya bahwa aturan pada file dalam direktori ini lebih longgar daripada untuk / etc / sudoers. Ini sudah termasuk:
Kesalahan dalam file tidak menyebabkan sudo gagal. Namun, file tersebut diabaikan. Aturan izin tampak kurang ketat. Saya mengizinkan grup yang berlaku untuk membaca file. Saya tidak percaya itu mungkin dengan / etc / sudo.
File dalam /etc/sudoers.d harus mematuhi sintaksis yang sama dengan / etc / sudoers, karena di bawah sampul sistem hanya menyatukan semua file dengan yang terakhir di "menang" jika ada beberapa entri untuk hal yang sama pengaturan tunggal.
Jika izinnya sangat salah (dapat ditulis dunia) pada file di /etc/sudoers.d/ maka diabaikan, ini mungkin yang menyebabkan file yang tidak valid diabaikan, jika tidak, Anda dapat dengan serius melanggar sudo
perintah dengan memiliki sudoers yang tidak valid. d file dengan izin yang benar.
Anda dapat mengizinkan file sudoers agar dapat dibaca dunia, jika Anda secara tidak sengaja mengizinkan 'lain' izin menulis yang Anda butuhkan untuk sudo sebagai pengguna lain atau dari terminal root menjalankan perintah ini. Ini juga dapat rusak jika file tersebut dimiliki oleh orang lain selain root: root.
sudo chmod 644 /etc/sudoers.d/mysudoers
sudo chown root:root /etc/sudoers.d/mysudoers
Saya baru saja mengkonfirmasi bahwa jika saya menjalankan chmod o+w /etc/sudoers.d/vagrant
saya tidak lagi dapat sudo sebagai pengguna gelandangan, itu meminta saya untuk kata sandi saya dan kemudian gagal.
Ketika saya berlari sudo -l
untuk melihat izin perintah yang diterapkan sebagai pengguna sudo lain yang valid, saya juga menerima peringatan tentang izin file. Ini adalah perintah yang sama yang saya gunakan untuk mengkonfirmasi bahwa pengguna 'gelandangan' kehilangan sudo ketika saya menerapkan o+w
izin ke file yang memberikan izin sudo pengguna.