Un altro vantaggio dell'utilizzo visudo -f
come indicato in alcune risposte è che esiste un'opzione corrispondente -c
o --check
che verifica che non si disponga di informazioni non valide in un file sudoers.d o in qualsiasi altro file che si desidera inserire in sudoers.d. Questo è DAVVERO utile nei casi menzionati con strumenti automatizzati, come è possibile eseguire ad es
sudo visudo -c -q -f /home/myuser/mysudoers && \
sudo chmod 600 /home/myuser/mysudoers && \
sudo cp /home/myuser/mysudoers /etc/sudoers.d/mysudoers
Questo controlla silenziosamente il file (nessun output dovuto a -q) e solo se NON restituisce un errore (exit 1 significa un file sudoers non valido), lo copierà in sudoers.d, in questo modo puoi creare il file e lavoraci su senza doverlo sudo visudo -f /etc/sudoers.d/myfile
correggere la prima volta (usare deve riuscire o scarta il contenuto se non lo aggiusti).
Inoltre, una parola di cautela riguardo a queste affermazioni dalle altre risposte.
È stata la mia esperienza che le regole sui file in questa directory sono più allentate rispetto a / etc / sudoers. Questo ha incluso:
Gli errori nel file non hanno causato errori sudo. Tuttavia, il file è stato ignorato. Le regole di autorizzazione sembrano meno rigide. Autorizzo il gruppo applicabile a leggere il file. Non credo che sia possibile con / etc / sudo.
I file in /etc/sudoers.d sono tenuti ad aderire alla stessa sintassi di / etc / sudoers, perché sotto le copertine il sistema concatena semplicemente tutti i file con l'ultimo in "vincente" se ci sono più voci per lo stesso impostazione singolare.
Se i permessi sono orribilmente errati (scrivibili dal mondo) sui file in /etc/sudoers.d/, allora vengono ignorati, questo potrebbe essere ciò che ha fatto sì che i file non validi vengano trascurati, altrimenti puoi seriamente rompere il sudo
comando avendo un sudoers non valido. d file con le autorizzazioni corrette.
Puoi consentire ai file sudoers di essere leggibili in tutto il mondo, se accetti accidentalmente "altro" l'autorizzazione in scrittura che devi eseguire sudo come altro utente o da un terminale root esegui questo comando. Questo può anche rompersi se il file è di proprietà di qualcuno diverso da root: root.
sudo chmod 644 /etc/sudoers.d/mysudoers
sudo chown root:root /etc/sudoers.d/mysudoers
Ho appena confermato che se corro chmod o+w /etc/sudoers.d/vagrant
non riesco più a fare il sudo come utente vagabondo, mi richiede la mia password e poi fallisce.
Quando ho corso sudo -l
per visualizzare le autorizzazioni del comando applicato come un altro utente sudo valido, ho anche ricevuto un avviso sulle autorizzazioni del file. Questo è lo stesso comando che ho usato per confermare che l'utente 'vagabondo' ha perso sudo quando ho applicato le o+w
autorizzazioni al file dando all'utente le autorizzazioni sudo.