Abilita sudo senza password come utente specifico


26

Ho due utenti sul mio sistema: il itsadokmio utente principale e elasticsearchun utente con un ulimit diverso per l'esecuzione di ElasticSearch.

Vorrei essere in grado di eseguire roba come utente secondario senza che venga richiesta la password ogni volta.

Ho aggiunto la seguente riga a /etc/sudoers:

itsadok ALL=(elasticsearch:elasticsearch) NOPASSWD: ALL

Per come lo capisco, ciò dovrebbe consentire all'utente di adoperarsi, su qualsiasi host, di eseguire qualsiasi comando come (utente o gruppo) elasticsearch senza password. Tuttavia, provando qualcosa di simile

itsadok@dev001$ sudo -u elasticsearch ls

mi chiede una password. Il riavvio della macchina non ha aiutato.

Che cosa sto facendo di sbagliato?

AGGIORNAMENTO :

Risulta nostro che l'ordine delle linee sudoersè significativo. Ho messo la linea sotto "Specifica dei privilegi dell'utente" che sembrava il posto giusto, ma la linea per il %admingruppo che viene dopo stava scavalcando l'impostazione.

Mettere la stessa riga alla fine del file sudoers risolto il problema.

Risposte:


12

Risposta rivista dai commenti: se si posizionano le direttive di seguito #includedir, vengono ignorate. Spostare la linea accanto ai sudoo admingruppo definizioni, o inserirlo nel file separato in /etc/sudoers.d/.


Non ha funzionato Inoltre, il file aveva già un root ALL=(ALL:ALL) ALLsenza spazi attorno ai due punti, quindi non sembra giusto. Giusto per sicurezza, ci ho provato (elasticsearch). Non funziona
iniziato il

Hai ragione, funziona senza spazi bianchi almeno nel 12.10. Quale Ubuntu stai usando ed esattamente dove sudoersposizioni questa linea? Ho un debole ricordo che se sui sistemi più vecchi hai posizionato la linea dopo la prima #includedir, veniva ignorato. Se è alla fine del file, prova a inserirlo sopra il file incluso.
Tuminoide,

1
Il tuo commento mi ha messo sulla strada giusta: l'ordine delle voci conta. Le impostazioni successive hanno la precedenza su quelle precedenti.
Il

16

Segui questi passi:

  1. Modifica il file sudoers (può essere presente in /etc/sudoers.d/file_name)
sudo visudo -f /etc/sudoers
  1. Aggiungi riga alla fine del file
usernameusedforlogin ALL=(ALL) NOPASSWD:ALL
  1. Salvare il file
esc :wq!

Ciò consente all'utente di eseguire tutti i comandi su tutti gli host senza password come qualsiasi utente, ma non concede alcun privilegio di gruppo, che faceva parte della domanda originale. In generale, questo è un cattivo consiglio dato che stai dando all'utente privilegi molto ampi.
d4nyll,
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.