dovrebbe usare sudo o semplicemente su root nella gestione del server?


8

Quale approccio è migliore?

Per l'utilizzo desktop, sembra che sudo sia migliore poiché:

  • Posso avere una cronologia più coerente come utente normale
  • Non è necessario ricordare due password, il che è particolarmente vero quando non faccio regolarmente cose amministrative.
  • Non è necessario creare un account root aggiuntivo al momento dell'installazione.

Ma nella gestione del server?

Nel server di solito hai già creato un account di root e probabilmente fai cose amministrative spesso. Quindi i vantaggi di sudo sembrano non valere più.

Inoltre, è facile configurare su nella riga di comando nella maggior parte delle distribuzioni, basta aggiungere l'utente al gruppo di ruote. (Puoi anche passare -G wheelquando useradding.) Pertanto la configurazione di su può essere facilmente automatizzata in script di shell.

Ma per sudo? Devi prima aggiungere l'utente, quindi eseguire in modo visudointerattivo. Ciò è negativo poiché non è possibile automatizzarlo in script di shell.

(Beh, puoi. Ad esempio,

echo '%wheel    ALL=(ALL)   ALL' >> /tmp/sudoers.tmp
cp /etc/sudoers /etc/sudoers.old
visudo -c -f /tmp/sudoers.tmp &&  mv /tmp/sudoers.tmp /etc/sudoers

Ma almeno non è così facile.)

Allora, quali sono le tue opinioni? Per un ambiente server, quale preferirete, sudo o su root?


Questo dovrebbe essere un wiki, altrimenti è probabile che si chiuda perché è troppo soggettivo.
John Gardeniers,

Non penso che sia troppo soggettivo. Proprio come mostra l'eccellente risposta di Raphink, in un ambiente a più utenti, sudo è preferito.
debole il

Non penso che sia affatto una domanda soggettiva. Non si tratta se ti piace sudo o meno, ma se è adattato a un uso o ad un altro.
inkaphink,

A proposito, sono anche un po 'sorpreso dal tuo visudo -ccomando, poiché credo che tu debba visudo -c -fcontrollare un file specifico.
inkaphink,

@Raphink sì, hai perfettamente ragione. Ho modificato la mia domanda.
debole il

Risposte:


16

L'account di root è sicuramente necessario sui server, ma preferisco concedere i diritti di sudo, specialmente quando ci sono molti utenti sulla macchina, e questo per diversi motivi:

  • Non uso sudo solo per concedere TUTTI i diritti per TUTTI i comandi, ma anche per concedere diritti specifici come utente specifico a comandi specifici.
  • Assegnando gli utenti ai gruppi funzionali, posso gestire i loro diritti con questi gruppi nei sudoer invece di gestire gli utenti individualmente.
  • Gli accessi sudo sono registrati in auth.log per impostazione predefinita, incluso quali utenti hanno usato sudo in quale momento.
  • sudo consente di gestire la configurazione per più macchine con un solo file.
  • ogni utente mantiene la propria password, quindi non è necessario modificare la password di root quando un utente lascia.

Per quanto riguarda la gestione con gli script, le nuove versioni di sudo supportano le inclusioni, ma preferisco usare le marionette e impostare le classi che concatenano i contenuti dei sudoer.

Puppet può anche essere associato ad Augeas per gestire il tuo file sudoers.


3
In realtà non ho preso in considerazione un caso con più utenti. Hai ragione, apparentemente sudo è un vincitore quando ci sono più utenti. Ma per singolo utente, penso ancora che su sia sufficiente. PS Grazie per aver menzionato il burattino. Non ho mai saputo di uno strumento così carino prima.
debole il

A proposito, se desideri convalidare il tuo file sudoers prima di distribuirlo con Puppet, ho una funzione di validazione a portata di mano che lo fa.
ℝaphink,

1
Quando si usa sudo, root non ha nemmeno bisogno di una password valida in quanto è sufficiente fare affidamento sulle password degli utenti. Oltre a non dover cambiare la password di root quando qualcuno lascia, hai anche una password in meno che potrebbe essere indovinata / rotta / compromessa.
Shannon Nelson,

@ShannonNelson Credo che stiano menzionando l'utente root e la password poiché i server noleggiati vengono generalmente forniti con questi.
AJP,

1

Sembra che tu stia rendendo le cose difficili con te stesso (quando si tratta di gestire / etc / sudoers). Un semplice

echo '%wheel    ALL=(ALL)   ALL' >> /etc/sudoers

basterebbe. Tutto ciò che visudo fa è bloccare il file contro le modifiche simultanee e assicurarsi che il file sia ancora analizzato correttamente.


Uso visudo -c per verificare il file in caso di errore. (Anche se non dovrebbe. Ma forse quando sto modificando la sceneggiatura mi manca digitare qualche personaggio, o peggio, includere qualche carattere speciale non visibile speciale.) Ma sono d'accordo, la tua soluzione a una riga è sufficiente.
debole il
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.