Quali sono i vantaggi di sudo rispetto a su?


19

Qual è il vantaggio effettivo che Ubuntu (o derivati ​​Debian) ottengono disabilitando l'utente root?

Ovunque legga, dice per prevenire danni involontari per utenti inesperti. Voglio sapere esattamente cosa, dato che sudopuò eseguire tutti i comandi (che conosco / uso).

Quindi in che caso root può causare danni mentre sudono?

PS: so come sudofunziona.


Risposte:


31

Quindi in quale caso root può causare danni mentre sudo no?

Dato che di solito devi invocare sudoogni volta che vuoi fare qualcosa che richiede privilegi, il ragionamento è che "penserai prima di saltare", cioè non limitarti a mettere sudo di fronte a qualcosa senza pensare per un secondo a quale comando stai eseguendo sta per fare.

Con sualtra parte, una volta che sei dentro, sei in. Avete carta bianca (una licenza aperta) per fare qualsiasi cosa, e il ragionamento è che si potrebbe dimenticare per un momento che si dispone di questi privilegi e se si Sei sfortunato, esegui qualcosa che influenzerà / danneggerà seriamente il tuo sistema - se non avessi i privilegi di su, il comando non avrebbe fatto nulla di grave.


8
La logica "pensa prima di saltare" è ingenua come pensare che gli utenti smetteranno di pensare quando viene mostrata una finestra di dialogo che dice "Vuoi davvero installare TrashTheComputer.Virus: Sì / no?" ridurrà i tassi di infezione da malware.
Dan Neely,

9
@DanNeely - Non credo. Digito molti comandi e molti di essi non richiedono sudo, quindi non lo uso. Quando lo uso, mi dà un momento di pausa. Sì, sto parlando come programmatore, non come utente medio, ma ancora una volta, gli utenti medi non usano la riga di comando.
Nathan Long,

2
@NathanLong non del tutto vero con Linux, il motivo esiste questa domanda mostra un "utente medio" non capire perché utilizzare sudosopra su. Troppo spesso, la gente dice "usa sudo perché è più sicuro di su" - il che è ingenuo pensare in quanto non è affatto più sicuro. Dimenticare che hai usato sunon è una scusa, è un'incompetenza assolutamente giusta se si esegue un comando come root per errore.
ash

1
@ash Dico ancora che un utente medio non chiederebbe le implicazioni comparative sulla sicurezza di due metodi di escalation del privilegio dell'utente. In effetti, OP ha domande su StackOverflow. Ma a parte OP, ricordare ciò che hai fatto 15 secondi fa è più facile che ricordare quello che hai fatto ieri, e potresti facilmente avere una sessione terminale che dura giorni. Quindi sì, spetta a te non dimenticare quando lo usi su, ma personalmente preferirei non installare bombe piuttosto che supporre che mi ricordo di disarmarle.
Nathan Long,

16

I principali vantaggi di sudo su su IMO sono che sudo ha una registrazione superiore di quali comandi sono stati eseguiti e sudo offre un controllo più preciso su ciò che gli utenti possono fare.

su è tutto o nessuno, ma sudo può essere configurato per consentire l'accesso ad alcuni, ma non a tutti i comandi.

Vedi https://help.ubuntu.com/community/RootSudo per una discussione più completa, compresi vantaggi e svantaggi.


11

su -

Quando si accede come root , qualsiasi attività avviata, azione attivata o evento casuale causato dalla visita di un determinato sito Web, ecc. Verrà eseguito come superutente .

sudo

Quando invochi sudo , mentre esegui un comando, solo quel comando verrà eseguito come superutente .

Ti verrà chiesta la password prima dell'esecuzione del comando. Così interazione con l'utente da voi è anche necessario .

I tentativi di invocare sudo possono anche essere registrati .


2
In effetti, richiede la password dell'utente corrente, il che semplifica la gestione della password di root. Se un account viene rimosso dal sistema, non è necessario reimpostare la password di root. Ancora meglio, l'account di root non richiede nemmeno una password, quindi l'account di root non può essere compromesso attraverso la forzatura bruta.
jippie,

Le buone pratiche generali di @jippie indicano di rimuovere / bloccare / invalidare la password di root e consentire l'accesso solo tramite sudo su. mentre il trattino -è un flag accettato da sue tratta la shell come se si fosse effettuato il login come utente (esegue un set diverso di file di ambiente, ad esempio .bashrc / .profile)
ash,

3

Si tratta della gestione di utenti / password per amministratori di sistema.

Se hai più utenti, tutti dovrebbero avere account separati e dovrebbero poter essere monitorati utilizzando tali account. Ciò significa che le persone non possono nascondere la propria identità. Inoltre, se è necessario revocare le autorizzazioni di utenti specifici, non è necessario reimpostare la password di root. Per dare a ogni persona in un ambiente con più di 2 amministratori la password di root crea un incubo quando una persona esce. Non devi solo cambiarlo, ma comunicarlo, ecc. Tutte queste cose devono accadere anche quando uno di loro ha un laptop rubato o cose del genere. Un account con una password per persona semplifica l'amministrazione. È simile alla filosofia alla base del motivo per cui ogni servizio dovrebbe avere il proprio account. Se un account è compromesso, non è necessario riconfigurare un'altra dozzina di servizi (come le attività di backup) per utilizzare un altro account.

Trovo anche personalmente utile non avere ancora un'altra password per tenere traccia, perdere e compromettere. Su RHEL disabilito in modo specifico l'account root dopo aver configurato sudo, quindi non devo seguirlo. Di tanto in tanto un utente b0rks il file sudo, ma questo è risolvibile in modalità utente singolo. (Naturalmente, di solito è una macchina di produzione.)

NOTA: 'sudo bash' ti permetterà di saltare la digitazione di sudo per ogni comando ...


Io sempre sudo mc: D
Rony

L'unica risposta qui degna di voto positivo, risponde chiaramente alla domanda senza chiarire ulteriormente la questione o fuorviare le persone in un falso senso sull'informazione.
ash

@flickerfly, credo che nel "reimpostare la password di root per quello stesso utente" il "per quello stesso utente" dovrebbe essere rimosso - sarà più preciso in quel modo.
Richlv,

@Richlv, hai ragione. Ho apportato la modifica che mi hai suggerito. Non sono sicuro di cosa intendessi lì.
flickerfly,

2

Penso prima di tutto, dobbiamo esaminare cosa sono realmente su e sudo

su - sta per utente sostitutivo. Lo usi per passare a una shell come un altro utente usando la password di quell'utente. Comunemente usato con root. Non richiede una password quando eseguito come root.

sudo : consente a un utente autorizzato di eseguire un comando specificato come un altro utente. Utilizzato anche comunemente con root. Tuttavia, ciò consente di gestire in modo specifico quali comandi possono essere eseguiti come altro uso. (Ad esempio, potresti dare a un utente la possibilità di eseguire uno script init.d ma nient'altro.)

Nota, puoi sempre eseguire sudo suo sudo -ie questo ti darà una shell di root. Tuttavia, nessuna password di root significa non accedere direttamente come root ... il che significa che nessuno può entrare in quell'utente.

EDIT: quindi forse questa risposta che stai cercando è: non avere una password di root ti costringe a usare sudo, il che a sua volta ti allinea naturalmente con la sudofilosofia che ti suggerisce di imporre un maggiore controllo sulle azioni eseguite come root.


L'ho scritto io stesso ....
user606723,

2

Inoltre ci sono considerazioni sulla registrazione da considerare tra sudo e su. Essere su fa semplicemente tutto come root senza alcuna voce diversa da una riga nel log di autenticazione dicendo che sei diventato root.

D'altro canto, viene sempre registrato come ID utente con i privilegi di escalation.


0

Di solito, l'accesso come su è più semplice quando si eseguono attività amministrative. Tuttavia, esiste almeno un'eccezione: la proprietà dei file è importante. Se è necessario che un utente sia il proprietario di un file, accedere come tale utente e utilizzare sudo per scaricare o copiare i file. Esempi semplici sono i segnalibri e i file di sfondo. Se un utente non possiede il file, un "Ripristino" dei segnalibri "Da file" di Firefox avrà esito negativo. Quando si imposta uno sfondo del desktop, potrebbe non funzionare se non si possiede il file. A volte puoi semplicemente impostare i privilegi o abilitarli come file eseguibile, ma alcune impostazioni o programmi falliscono se non sei il proprietario di un file.


Accedi come root e usi Firefox per navigare sul web? Penso che questo sia il motivo per disabilitare l'account root. Elimina la possibilità di accedere come root per l'uso quotidiano.
adempewolff,
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.