Consentire a determinati ospiti di eseguire determinati comandi


19

Vorrei creare un nuovo utente su alcuni dei miei host Debian / Ubuntu in grado di aggiornare il server usando i comandi apt-get updatee apt-get dist-upgrade, ma non voglio dare loro pieno accesso sudo per poter fare qualsiasi altra cosa. È possibile? Forse c'è un modo per creare uno script che non possono modificare ma possono eseguire, che verrà eseguito come utente root?


2
Vedi man sudoerse sudo cat /etc/sudoers.
Riccioli d'oro,

Grazie a @goldilocks avevo sempre pensato che il file sudoers fosse solo per consentire alle persone di accedere prima alla radice.
Programmatore

Risposte:


30

Sudoe il /etc/sudoersfile non è solo per garantire agli utenti l'accesso root completo.

È possibile modificare il file sudoers con un utente sudo esistente, con il comando sudo visudo

Puoi raggruppare i comandi a cui vuoi consentire l'accesso come di seguito:

Cmnd_Alias SHUTDOWN_CMDS = /sbin/poweroff, /sbin/halt, /sbin/reboot
Cmnd_Alias UPDATE_COMMANDS = /usr/bin/apt-get

È quindi possibile assegnare a tali comandi privilegi utente specifici in questo modo:

[User's name] ALL=(ALL) NOPASSWD: SHUTDOWN_CMDS, UPDATE_COMMANDS

Questo può essere visto nell'immagine qui sotto inserisci qui la descrizione dell'immagine:

Ora se ci provi sudo apt-get updateo sudo apt-get dist-upgradequei comandi verranno eseguiti senza richiedere una password . Se si desidera che venga richiesta una password, rimuovere il NOPASSWDbit in cui si concede a un utente l'accesso ai gruppi di comandi.

Se si tenta di eseguire qualcos'altro come sudoutente, verrà richiesto di inserire una password e fallire.

Riferimenti


6
Nota che dare agli utenti il ​​permesso di eseguire apt-get, o anche semplicemente apt-get upgrade, dare loro l'accesso completo alla radice ! Molti script di aggiornamento consentono all'utente interattivo di eseguire una shell, ad esempio quando un file di configurazione è cambiato. Per sicurezza, limitati apt-geta determinati comandi e forzalo a non essere interattivo. Vedi È sicuro per il mio utente ssh ricevere sudo senza password per apt-get updatee apt-get upgrade?
Gilles 'SO- smetti di essere malvagio' il

Nel mio caso ho dovuto mettere la linea dopo%sudo ...
Aleksey il

C'è un modo per farlo solo dalla riga di comando?
Kamil Dziedzic,
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.