Perché su to root invece di accedere come root?


33

Ho sentito spesso che è meglio fare il root su piuttosto che accedere direttamente come utente root (e ovviamente la gente dice anche che è ancora meglio usare sudo). Non ho mai veramente capito perché uno è migliore dell'altro (s), intuizione?


2
Stai pensando agli accessi ssh o anche agli accessi dalla macchina fisica?
Telemaco,

Risposte:


43

L'inferenza è solo suo sudoquando richiesto.

La maggior parte delle attività quotidiane non richiede una shell di root. Quindi è buona norma utilizzare una shell senza privilegi come comportamento predefinito e quindi elevare alla radice solo quando è necessario eseguire attività speciali.

In questo modo si riduce la possibilità di errori pericolosi (scripting errato, caratteri jolly fuori posto, ecc.) E vulnerabilità da qualsiasi applicazione utilizzata. Soprattutto quelli che si collegano a Internet - vedi il vecchio adagio "Non IRC come root" .

sudo è spesso raccomandato perché ti consente di controllare e controllare l'uso di tali privilegi.

Osservando queste pratiche sei anche in grado di disabilitare gli accessi root remoti. Ciò aumenta la barra di accesso per qualsiasi potenziale attaccante, in quanto dovrebbe compromettere sia un normale account utente che era un membro del gruppo "wheel" e idealmente autorizzato solo da chiavi pubbliche SSH, quindi l'account root stesso.


1
Potresti capire perché il login root remoto è una "vulnerabilità ragionevolmente grande".
thepocketwade,

5
Perché dato che tutto il mondo conosce il nome utente ('root'), è solo una questione di capire la password. E possono farlo con la forza bruta e prendere il controllo del tuo computer.
Shalom Craimer,

2
Un altro vantaggio di sudo: registrazione dei comandi eseguiti.
Manuel Faux,

Quello è auditing;)
Dan Carley,

1
Sebbene sudosia superiore, suconsente anche di utilizzare il -mflag per mantenere le variabili di ambiente uguali mentre si trova in un terminale root. Niente mi spinge più in là che a sufare il root per un po ', solo per fare qualcosa con ~il nome della directory e farlo funzionare.
tj111,

27

È necessario disabilitare l'accesso root da remoto in modo che un utente malintenzionato non possa compromettere root senza prima compromettere un utente, quindi passare a root. Abilitiamo l'accesso root solo sulla console.

Inoltre crea responsabilità. :)


+1 breve e al punto
lexu

15

Il motivo principale è creare una pista di controllo. Se è necessario accedere a un sistema come utente normale e quindi fare clic su, è possibile rintracciare chi è responsabile di determinate azioni.


Dopo che qualcuno ha eseguito su - root, come si determina quali comandi hanno eseguito? Questo è registrato da qualche parte?
Dobes Vandermeer,

10

sudo registra inoltre automaticamente tutti i comandi su syslog e puoi definire i comandi che ogni utente può utilizzare.


3
Per quanto riguarda la registrazione: questo è il caso di ogni comando preceduto da 'sudo', ma nel caso in cui sudo sia usato per elevarsi a una shell di root, i comandi sono registrati solo nelle aree tradizionali (in particolare la cronologia della shell).
Zenham,

2
Infatti, sudo vim foo.txtquindi rilasciare una shell dall'interno di VIM ti darà una shell di root senza la normale registrazione sudo.
Ophidian,

O solo sudo -iper avere una sessione interattiva ...
Kamil Kisiel,

Non capisco il problema con sudo vim foo.txt. L'ho fatto funzionare, poi sono uscito da Vim ed ero ancora me stesso, c'è qualcosa che mi manca?
thepocketwade,

puoi "ingannare" sudo per darti una shell digitando sudo su - o sudo vim e poi andare in una nuova sottoshell. Ma se usi sudo perché vuoi avere tutto registrato nel syslog (centralizzato) e sei consapevole che può essere usato anche per ottenere un altro subshell, allora non vedo nulla di sbagliato in esso, è solo un bonus finché non dipendo solo da esso.
Jure1873,

9

Un'altra buona ragione: quando si elevano a root tramite sudo, un utente si autentica con le proprie credenziali, il che significa che non deve necessariamente ricevere la password di root, rendendo più semplice bloccare le cose quando qualcuno lascia la propria organizzazione.


4

Se si desidera creare una pista di controllo e non cadere vittima dei problemi "sudo su -" o "sudo vim foo.txt" menzionati qui, è possibile utilizzare "sudosh". Distribuisci l'accesso root tramite sudo, ma esegui l'unico comando consentito per eseguire "sudosh".

sudosh è una shell di registrazione ed è possibile riprodurre l'intera sessione del terminale in un secondo momento, mostrando esattamente ciò che l'utente ha visto sul proprio terminale.


Ciò presuppone ovviamente che sudosh sia disponibile sul sistema. Ho appena controllato e non ce l'ho su nessuna delle mie scatole Linux.
John Gardeniers,

È inoltre possibile utilizzare il nuovo ksh93 con la registrazione della traccia di controllo abilitata. Consulta questo articolo su IBM developerWorks: ibm.com/developerworks/aix/library/au-korn93/…
Mei

Abbastanza facile da bypassare semplicemente eseguendo uno script di shell (che poi si cancella in seguito). Crea lo script con un nome innocuo come utente non verificato (o eseguilo dalla tua workstation), quindi esegui sudo ed eseguilo. Potresti addirittura nasconderlo nominandolo 'ls' o somesuch e inserendolo in $ PATH (modificando $ PATH se necessario), e facendolo fare il suo sporco lavoro mentre invoca / bin / ls in modo che appaia normale. Puliscilo dopo. Il registro di controllo non saprà che / home / anthony / bin conteneva un 'ls'.
derobert,

Sì, non è perfetto; lo sappiamo - ma è un sito dannatamente migliore del semplice "sudo su -" IMHO. E sì, non è installato di default ovunque AFAIK. Funziona comunque su Solaris e Linux abbastanza facilmente.
mibus,

1

Dovresti praticare la sicurezza in modo approfondito.

Non consentire l'accesso root remoto (o almeno l'accesso root tramite password). (se consenti l'accesso alla radice tramite chiavi, controlla attentamente quelle chiavi, o meglio usa qualcosa come Kerberos che consenta la revoca centralizzata delle chiavi).

Disabiliterei su e userei sudo. In questo modo, gli utenti usano le chiavi (preferibilmente crittografate) per accedere al sistema, quindi usano le loro password solo per l'escalation dei privilegi. È possibile limitare i programmi a cui le persone accedono con sudo, ma per lo più si limita l'accesso a chi conosce la password di root.

In un mondo ideale, dovresti essere in grado di pubblicare le tue password di root su Internet e non importa, anche se hai dato alle persone l'accesso al tuo computer (ma non le hai inserite nel file / etc / sudoers). Ovviamente, non dovresti pubblicare la password di root, ma l'idea è di proteggere i tuoi sistemi con livelli concentrici di protezione.


0

L'idea è di disabilitare il login di root e quindi non avere un account amministratore predefinito. In questo modo un utente malintenzionato deve indovinare sia il nome utente che la password (e non solo la password).


0

Se si utilizza root su base regolare, le autorizzazioni potrebbero essere errate o potrebbe essere necessario concedere diritti sudo o un nuovo diritto di gruppo per r / w / x i file o le directory.

I buoni schemi di permessi sono qualcosa che anche gli utenti Linux da molto tempo sbagliano o non comprendono l'ambito che hanno.

Non farmi nemmeno iniziare su ciò che ha fatto Ubuntu!


-2

Ti impedisce di eseguire rm -r -f / L'ho appena eseguito 2 giorni fa (come utente non privilegiato, intendevo eseguire rm -r -f *)


La risposta accettata conteneva già tutte le informazioni in essa contenute.
Theuni l'
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.