menambahkan konten lokal di /etc/sudoers.d/ daripada langsung memodifikasi file sodoers melalui visudo

32

Bisakah Anda mengarahkan saya ke beberapa contoh dan instruksi lebih rinci di /etc/sudoers.d/

Saya ingin memberikan beberapa izin grup kepada sudo beberapa perintah, tetapi dengan cara yang tepat untuk tidak membuat celah yang tidak perlu dalam model keamanan Ubuntu pada mesin multi-pengguna.

Pada zaman kuno saya melakukan beberapa penyesuaian sudoers sederhana, tetapi ternyata sekarang /etc/sudoers.d/ adalah cara yang lebih tepat dan saya ingin lebih memahaminya.

Pawel Debski
sumber

Jawaban:

43

Seperti yang dikatakan pertanyaan ini , /etc/sudoersadalah file konfigurasi sistem yang dapat diubah secara otomatis dengan peningkatan sistem dan sangat rapuh untuk perubahan yang tidak tepat. Anda berpotensi kehilangan akses atau membuat sistem Anda tidak dapat di-boot dengan perubahan yang tidak tepat.

$ sudo cat /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#

(... some other content ...)

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

Bertentangan dengan apa yang Anda harapkan, #includedirarahan bukanlah komentar . Ini memiliki efek menyebabkan sudojuga membaca dan mem-parsing semua file dalam /etc/sudoers.ddirektori (yang tidak diakhiri dengan '~' atau mengandung karakter '.').

$ ls -l /etc/sud*
-r--r----- 1 root root  755 sty 20 17:03 /etc/sudoers

/etc/sudoers.d:
total 7
-r--r----- 1 root root 958 mar 30  2016 README
$ sudo cat /etc/sudoers.d/README
#
# As of Debian version 1.7.2p1-1, the default /etc/sudoers file created on
# installation of the package now includes the directive:
# 
#   #includedir /etc/sudoers.d
# 
# This will cause sudo to read and parse any files in the /etc/sudoers.d 
# directory that do not end in '~' or contain a '.' character.
# 
# Note that there must be at least one file in the sudoers.d directory (this
# one will do), and all files in this directory should be mode 0440.
# 
# Note also, that because sudoers contents can vary widely, no attempt is 
# made to add this directive to existing sudoers files on upgrade.  Feel free
# to add the above directive to the end of your /etc/sudoers file to enable 
# this functionality for existing installations if you wish!
#
# Finally, please note that using the visudo command is the recommended way
# to update sudoers content, since it protects against many failure modes.
# See the man page for visudo for more information.
#

Tidak seperti /etc/sudoers, isi dari /etc/sudoers.dpeningkatan sistem yang bertahan, jadi lebih baik membuat file di sana daripada memodifikasi /etc/sudoers.

Anda mungkin ingin mengedit file di direktori ini dengan visudoperintah:

$ sudo visudo -f /etc/sudoers.d/veracrypt
  GNU nano 2.5.3        File: /etc/sudoers.d/veracrypt.tmp                      

# Users in the veracryptusers group are allowed to run veracrypt as root.
%veracryptusers ALL=(root) NOPASSWD:/usr/bin/veracrypt

Harap dicatat bahwa visudomungkin menggunakan editor yang berbeda dan bukan nanoseperti yang dijelaskan di https://help.ubuntu.com/community/Sudoers

Berikut adalah beberapa tautan yang menurut saya bermanfaat:

Pawel Debski
sumber
4
Tidak benar bahwa kesalahan dalam file /etc/sudoers.dtidak dapat menurunkan sudo. File-file tersebut digabungkan ke /etc/sudoers. Aturan yang sama berlaku untuk file-file itu.
tobltobs
2
Benar sekali bahwa Anda BISA membawa sistem ke bawah dengan file yang tidak tepat, bagaimana pun KURANGNYA. #includedir bukan semata-mata gabungan bodoh yang sederhana - sementara termasuk ada beberapa pemeriksaan yang dilakukan sehingga kesalahan yang paling jelas akan terdeteksi dan Anda dapat dengan mudah pulih. Namun hati-hati - Anda selalu dapat melukai diri sendiri dengan pisau tajam, jadi tangani dengan hati-hati ;-)
Pawel Debski
4
@RichardRiley lihat unix.stackexchange.com/questions/244064/…
Xunnamius