it-swarm.it

Qual è la sintassi corretta dei sudoers per aggiungere un utente?

Secondo i commenti in /etc/sudoers (Fedora 13):

## Syntax:
##
##    user  MACHINE=COMMANDS
##
## The COMMANDS section may have other options added to it.

Le mie due domande correlate:

  1. Cosa significa ALL=(ALL) ALL nella seguente riga:

    root  ALL=(ALL)   ALL
    
  2. Ho testato queste due righe ma non riesco a capire come siano funzionalmente diverse:

    superadm    ALL=(ALL)    ALL
    superadm    ALL=ALL
    

Ho letto il manuale ma le specifiche della sintassi sono difficili da seguire. Ho dedotto che la parte (ALL) ALL È il comando e le specifiche del tag, ma non riesco ancora a pensarci.

51
Belmin Fernandez

Nota: Sto rispondendo 1.. , poiché Ignacio già risposto 2.. .

Nella seguente voce Sudo:

superadm  ALL=(ALL)   ALL

ci sono quattro campi:

  • Il primo specifica un utente a cui verranno concessi i privilegi per alcuni comandi.
  • Il secondo è usato raramente. È un elenco di nomi host su cui questa voce del Sudo sarà efficace. Nelle configurazioni standard è rilevante solo un host (localhost), quindi questo campo viene generalmente lasciato come ALL.
  • Il campo quarto è l'elenco dei comandi che superadm sarà in grado di eseguire con privilegi elevati. ALL indica tutti i comandi. In caso contrario, utilizzare un elenco di comandi separato da virgole.
  • Il terzo campo (quello scritto (…) che è facoltativo) specifica quali utenti (e gruppi) l'utente superadm sarà in grado di eseguire i seguenti comandi come. ALL significa che possono scegliere qualsiasi cosa (senza restrizioni). Se questo campo è omesso, significa lo stesso di (root).

Esempio:

alan   ALL = (root, bin : operator, system) /bin/ls, /bin/kill

Qui, alan può eseguire i due comandi /bin/ls e /bin/kill come root (o bin), possibilmente con ulteriori privilegi di gruppi operator o system.

Quindi alan può scegliere di eseguire ls come utente bin e con i privilegi di gruppo di operator come questo:

Sudo -u bin -g operator /bin/ls /whatever/directory

Se -u è omesso, è uguale a -u root. Se -g viene omesso, non vengono concessi privilegi di gruppo aggiuntivi.

94

Dalla pagina man sudoers(5), DESCRIPTION sezione, Runas_Spec sottosezione:

Il primo Runas_List indica quali utenti il ​​comando può essere eseguito come tramite Sudo ’s -u opzione.

...

Se non viene specificato Runas_Spec, il comando può essere eseguito come root e non è possibile specificare alcun gruppo.

Quindi non c'è alcuna differenza funzionale quando si tenta di eseguire comandi come root, ovvero quando non si utilizza -u con Sudo. La differenza è importante quando si tenta di eseguire comandi come altri utenti; il secondo lo impedirà, ma il primo lo permetterà.