Cosa c'è di sbagliato nell'essere sempre root?


83

Ho la sensazione che questa sia una domanda stupida, ma questa è una cosa che mi chiedevo da un po '.

Ho un VPS e questa è la mia prima grande impresa Linux. Sono l'unica persona che ha accesso ad esso. La mia domanda è: cosa c'è di sbagliato nel fare il login come root invece di creare un account e dare loro l'accesso sudo? Se un sudoer può fare tutto ciò che può fare il root, allora qual è la differenza? Se un hacker potesse decifrare la mia password sul mio account standard, non root, allora potrebbe anche eseguire comandi sudo, quindi come fa un hacker a decifrare il mio account root più o meno?


28
Vorrei anche commentare che se non hai familiarità con "Unix Way", questa non è una domanda stupida. Dovresti ottenere un bonus pensando di porre la domanda in primo luogo come nuovo amministratore di Linux.
Bart Silverstrim,

E vorrei commentare alcune delle risposte. In particolare quelli che dicono "puoi rovinare le cose essendo root". Non penso che sia questo il punto ... "rm -rf /" fa lo stesso di "sudo rm -rf /". Il punto sta nel fatto che cose come "sudo rm" non funzionano, eppure "sudo startMyApp su porta bassa" funziona.
Zlatko,

cosa c'è di sbagliato nel non essere mai?
ostendali,

Risposte:


70

Se hai effettuato l'accesso come root, puoi facilmente cancellare le directory o fare qualcosa che in retrospettiva è davvero stupido sul sistema con il semplice gesto di un dito, mentre come utente normalmente devi inserire alcuni cicli mentali extra in ciò che stai scrivendo prima di fare qualcosa di pericoloso.

Inoltre, qualsiasi programma che esegui come root come privilegi di root, il che significa che se qualcuno o qualcosa ti fa correre / compilare / navigare in un sito Web pericoloso e che vuole danneggiare il tuo sistema, come un trojan o altro malware, ha pieno accesso al tuo sistema e può fare quello che vuole, incluso l'accesso alle porte TCP inferiori a 1024 (quindi può trasformare il tuo sistema in un remailer a tua insaputa, per esempio).

Fondamentalmente stai in qualche modo chiedendo problemi che l'accesso come te stesso potrebbe impedire. Ho conosciuto molte persone che sono state contente di avere quella rete di sicurezza in un momento di disattenzione.

EDIT: C'è anche il problema di root come il più noto, quindi un bersaglio facile, per script e hack. I sistemi che disabilitano l'account e costringono invece gli utenti a usare sudo significano che qualsiasi tentativo di sradicare root da ssh o un exploit locale all'account sta sbattendo la testa contro un muro. Dovrebbero indovinare / crackare una password e un nome utente. È sicurezza attraverso l'oscurità in una certa misura, ma è difficile sostenere che non ostacola la maggior parte degli attacchi di script kiddie.


25
+1 - L'uso di "sudo" rende l'esecuzione di programmi come root un atto palese. Non si tratta di "bloccare gli hacker", si tratta di prendere l'abitudine di lavorare come utente non privilegiato e rendere l'invocazione dei privilegi di root un atto esplicito e intenzionale.
Evan Anderson,

2
Sto cominciando a chiedermi se Evan sia davvero un'intelligenza artificiale.
Bart Silverstrim,

11
Sudo aggiunge anche una pista di controllo. Come chi, cosa e quando viene registrato quando eseguito come sudo. Quale file di registro può variare con la distribuzione ma le distro RedHat tendono ad usare / var / log / secure e Ubuntu usa /var/log/auth.log ... Non sono sicuro che ciò sia vero per tutte le distro basate su Debian.
3dinfluence

3
+1: non si tratta solo di diritti per creare cose o fare cose, ma anche di diritti da distruggere. Accedere come root (o l'equivalente su qualsiasi altro sistema operativo per quella materia) è come camminare portando una pistola senza la sicurezza. Non potresti mai toccare intenzionalmente quel grilletto, ma ti fideresti di te stesso per fare lo stesso?
Maximus Minimus,

3
mh: / io mi metto il cappello da cowboy, si toglie la sicurezza dalla pistola, apre una birra, mormora a bassa voce qualcosa sulle viole del pensiero, quindi accede come root.
Kyle Brandt,

29

Se non permetti a un idiota di accedere al tuo server come root, non esegui sempre tu stesso come root. A meno che tu non riesca a dire a memoria che non sei mai stato un idiota. No davvero? Sei sicuro? :)

Vantaggio: riduce la possibilità che tu sia root e un idiota contemporaneamente.


6
+1 - "Vantaggio: riduce la possibilità che tu sia root e un idiota contemporaneamente." Lo adoro assolutamente.
Evan Anderson,

+1 per la filosofia di Scott Adams secondo cui ognuno è un idiota. :) Sì, questo significa che anche io e te.
Ernie,

Assolutamente - questa è una delle mie domande chiave nelle interviste di lavoro - quando hai fatto l'ultima cazzata? Tutti lo hanno, devi solo leggere i thread qui su "la più divertente fubar di sysadmin" o qualsiasi altra cosa. Se qualcuno non ammette di aver commesso un vero errore stupido almeno una volta nella vita, probabilmente ci sono una serie di motivi per cui non vuoi lavorare con loro.
Tom Newton,

9

Il motivo principale sono gli errori. Se sei sempre root, un semplice errore di battitura potrebbe davvero rovinare il sistema. Se accedi solo come root o usi sudo per fare le cose che lo richiedono, minimizzi il rischio di fare un errore pericoloso.


9

Quando sei root diventi pigro riguardo alle autorizzazioni, dato che hai accesso a tutto sempre, non ti importa quando le cose sono 777 o 644 o altro. Quindi, se mai permetti a qualcun altro sul tuo sistema di non voler avere accesso a tutto, tutto ad un tratto diventa una vera difficoltà per rendere la macchina sicura da usare da altre persone.


5
Questo si chiama "marciume radicale".
kmarsh

1
Mi piace quel termine "marciume radicale". In effetti, l'esecuzione come root in qualsiasi momento può trasformare * nix macchine in macchine bizzarre simili a Windows 95 senza alcuna parvenza di sicurezza multiutente. (Ricordo una macchina SCO, anni fa, in cui tutti gli utenti dell'app di contabilità condivisa erano in esecuzione come root perché "ha fatto sparire i problemi di autorizzazione".> Sigh <)
Evan Anderson

Ricordo di aver ricevuto una spiegazione del genere: avevano uno strumento mailinglist in esecuzione come root, insieme a sendmail. La mia risposta è stata "I problemi di autorizzazione sono andati via anche per gli hacker".
duffbeer703,

7

Ci sono alcuni principi chiave dietro il non accedere come root: 1) La password di root non viene mai inviata attraverso la rete al momento dell'accesso 2) Non c'è modo di dire chi ha fatto qualcosa se più utenti accedono con lo stesso account (root o altro). 3) Fare accidentalmente qualcosa di "stupido"


3

È più per la protezione contro te stesso che hai una seconda possibilità di rivedere i comandi con privilegi più alti che stai cercando di eseguire, analoghi a Controllo dell'account utente in Windows. È abbastanza facile fare accidentalmente qualcosa come rm -rf /quando si è connessi come root.

Inoltre, hai tracciabilità. Questo non è un grosso problema nella tua situazione in cui sei l'unico (teoricamente) a impartire comandi, ma la capacità di accedere e risalire a un individuo è un componente chiave di molte forme di analisi.


La tracciabilità è cruciale nei sistemi in cui più di una persona lavora come amministratore di sistema. Non è solo auspicabile, ma è richiesto dai regimi di regolamentazione.
APC

L'ho fatto venerdì. invece di eliminare "/ dump / cartella /" ho cancellato la cartella /. Una backslash puzzolente mi ha ricordato perché non effettuiamo il login come root.
oneodd1,

2

La differenza è principalmente:
che non puoi fare nulla di male per caso.
quel codice "malvagio" non può assumere il controllo del sistema.
Avviso: il codice malvagio non significa necessariamente che chiunque abbia già accesso al sistema.


Ho notato che in questi giorni, il codice malvagio di solito significa bot di spam, che può essere eseguito come qualsiasi utente.
Ernie,

Se pensi a un virus (cercando di distruggere qualcosa) o a un rootkit, allora è molto più complicato per il malware se non sei un root.
StampedeXV

2

È necessario utilizzare sempre account con il livello di privilegio più basso possibile. Correre come root tutto il tempo incoraggia le cattive abitudini e la pigrizia che renderanno la vita spiacevole quando si lavora con più utenti o si espone qualcosa a una rete pubblica / semi-pubblica.

Inoltre, tieni presente che il cracking delle password è solo uno scenario di compromesso e non è nemmeno lo scenario più comune. È più probabile che tu sia vittima di una vulnerabilità del browser o di una vulnerabilità in alcuni demoni che è in esecuzione sul tuo sistema.

Pensa al codice che usi senza pensare. Ad esempio, la porta Linux di Adobe Flash, che è una pila fumante di cacca che è diventata utilizzabile solo in un passato relativamente recente. Quanto pensi che sia sicuro quel codice? Vuoi che sia in grado di esercitare il pieno controllo del tuo sistema?


2

Può prevenire attacchi di forza bruta SSH. Ogni unix ha un account 'root'. Tuttavia non è chiaro dall'esterno quale sarebbe il tuo nome utente "sudo". Quindi, se qualcuno vuole provare a forzare la propria strada, sanno che c'è un account root e probabilmente lo proveranno. Tuttavia, non sanno da dove iniziare se si utilizza sudo.



1

Il mio consiglio sarebbe di provare a usare root per un po '; scoprirai presto perché non dovresti :)


1

Anche se non mi fido della "sicurezza per oscurità", c'è sicuramente un vantaggio nell'utilizzare un login personalizzato invece del login root sempre esistente. È quindi possibile anche configurare SSH per impedire l'accesso root.

Come altri hanno detto anche, root può fare tutto senza alcuna conferma. Quindi l'utilizzo di un utente senza privilegi può prevenire errori e errori di battitura stupidi.

Un altro argomento a favore di più account utente è l'esecuzione di software diversi con utenti diversi. In questo modo, se un difetto di sicurezza viene sfruttato in un'applicazione, lo sfruttatore può accedere solo a file e risorse accessibili all'utente in esecuzione.

Un ultimo punto per non usare root: consumo di risorse. La radice non ha limiti su quanta memoria, tempo di elaborazione, gestori di file o spazio su disco può usare. Su molti filesystem, ci sono blocchi di dati riservati solo al root. Quindi un utente normale non potrà mai usarli per riempire il disco. Il comando ulimit può anche essere usato per limitare la memoria e il numero del gestore file che un utente può utilizzare. Ma se sei root (o un'applicazione in esecuzione come root), nulla ti impedisce di modificare questo limite.


0

Sì, sono d'accordo con te e penso che sia una questione di protezione contro errori umani e talvolta contro programmi dannosi. La cosa brutta che non ho mai visto è l'uso di root come account gnome predefinito.
Penso che la maggior parte degli utenti che lo fanno siano gli utenti Windows recentemente migrati su Linux o Unix. Prova a copiare l'utilizzo del privilegio di amministratore su root.


0

Non c'è niente di sbagliato ad essere loggato come root. Aiuta a sviluppare la memoria muscolare solo per digitare comandi sicuri e promuove l'accuratezza del pensiero quando si eseguono azioni con grandi conseguenze. Consiglio vivamente di lavorare come root per migliorare l'amministrazione del sistema.

puoi anche fare cose interessanti come ping -i 0.2 -c 1000 example.com

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.