aggiungendo contenuto locale in /etc/sudoers.d/ invece di modificare direttamente il file sodoers tramite visudo


32

Potete per favore indirizzarmi ad alcuni esempi e istruzioni più dettagliate su /etc/sudoers.d/

Vorrei autorizzare alcuni gruppi a eseguire alcuni comandi, ma in modo corretto non creare scappatoie non necessarie nel modello di sicurezza di Ubuntu su un computer multiutente.

Nei tempi antichi ho fatto alcune semplici personalizzazioni di sudoers, ma a quanto pare ora /etc/sudoers.d/ è un modo più corretto e mi piacerebbe comprenderlo meglio.

Risposte:


43

Come dice questa domanda , /etc/sudoersè un file di configurazione a livello di sistema che può essere modificato automaticamente dagli aggiornamenti del sistema ed è estremamente fragile a causa di modifiche improprie. Potresti potenzialmente perdere l'accesso o rendere il tuo sistema non avviabile con una modifica impropria.

$ 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

Contrariamente a quanto ci si potrebbe aspettare, la #includedirdirettiva non è un commento . Ha l'effetto di sudofar leggere e analizzare anche tutti i file nella /etc/sudoers.ddirectory (che non terminano con '~' o contengono un carattere '.').

$ 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.
#

A differenza /etc/sudoersdel contenuto degli /etc/sudoers.daggiornamenti di sistema sopravvissuti, è preferibile creare un file lì piuttosto che modificarlo /etc/sudoers.

Potresti voler modificare i file in questa directory con il visudocomando:

$ 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

Si noti che è visudopossibile utilizzare un editor diverso anziché nanocome descritto su https://help.ubuntu.com/community/Sudoers

Ecco alcuni altri link che ho trovato utili:


4
Non è vero che gli errori nei file /etc/sudoers.dnon possono far cadere sudo. Questi file sono concatenati /etc/sudoers. Le stesse regole si applicano a quei file.
tobltobs,

2
Proprio così, PUOI far crollare il sistema con un file improprio, tuttavia è MENO PROBABILE. #includedir non è semplicemente una semplice concatenazione stupida - mentre includendo ci sono alcuni controlli fatti in modo che gli errori più ovvi vengano rilevati e che tu possa facilmente recuperare. Fai attenzione però: puoi sempre farti del male con un coltello affilato, quindi
maneggilo

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.