È 'OK' usare l'utente root come utente normale?

93

Ho abilitato l'utente root sul mio Mac in modo che possa accedere ad esso ed eseguire Finder ecc. Essendo la persona pigra che sono, ho appena trasferito tutto dalla mia directory home a /var/root . Non sono troppo sicuro di farlo, quindi potrei spostare tutto indietro. È tecnicamente 'OK' usarlo come un normale utente? (Sono l'unico che può accedere al mio computer.)

    
posta 智障的人 20.06.2015 - 04:36
fonte

9 risposte

347

Usare il tuo computer come root sempre è come portare sempre con te tutte le chiavi, il tuo passaporto, $ 5,000 in contanti, quel pezzo di carta con tutte le tue password scritte e l'unica foto che hai di Flopsy, il adorabile coniglio la cui morte ha spezzato il tuo cuore di sette anni. Oh, e una motosega.

Il che vuol dire che è molto utile di tanto in tanto, perché significa che puoi fare tutto ciò che vuoi, quando vuoi, senza dover tornare a casa a prendere roba o parlare con il tuo direttore di banca. Ma ti mette anche a rischio di perdere cose, rubandole (non pensare che la motosega ti aiuterà: sarai lontano dalle strade prima di notare che il tuo portafoglio è sparito), facendo cose di cui ti pentirai più tardi (acquisto d'impulso biglietti aerei per Las Vegas ubriaco), prendendo scorciatoie pericolose (motosega attraverso il recinto del recinto dei leoni perché è il modo più veloce per i panda) e reagendo eccessivamente (motosega la macchina del vicino perché il suo cane abbaia troppo). E quando ci pensi, soprattutto, vai in ufficio, fai la spesa, vai in giro con i tuoi amici. Non hai bisogno di tutte queste cose con te tutto il tempo solo per la comodità di averne bisogno, cosa ?, una volta al mese? Una volta alla settimana?

Quindi, no, non è OK usare sempre l'account di root. Ti dà una piccola quantità di comodità ma ti mette in grave pericolo. C'è il pericolo di errori stupidi con risultati catastrofici ("Ehi, perché rm -rf * impiega così tanto tempo a correre? **** I'm in / !"). C'è il pericolo di acclimatarsi all'idea che tutti i file sono uguali e si può semplicemente scherzare con quello che vuoi, ovunque nell'albero delle directory. C'è il pericolo che qualsiasi attacco al tuo account sia immediatamente un trucco per l'intero sistema, quindi ora ogni singolo pezzo di software sulla tua macchina è critico per la sicurezza. E anche se pensi che tu non ti interessi che la tua macchina venga hackerata (dopo tutto, quella foto di Flopsy è un vero pezzo di carta patinata, non un JPEG effimero), I preoccupati che la tua macchina venga hackerata perché poi si trova sulla botnet che sta montando l'attacco DDOS contro qualsiasi servizio internet a cui non posso accedere oggi.

Root è il tuo costume da spiderman. Ti dà un grande potere ma richiede una grande responsabilità. È lì nell'armadio ogni volta che ne hai bisogno, quindi non devi indossarlo tutto il tempo.

    
risposta data 20.06.2015 - 13:20
fonte
22

Puoi, ma è un grosso rischio per la sicurezza e la stabilità. Ciò consente a qualsiasi applicazione l'accesso completo al tuo computer. Non puoi sapere cosa stanno facendo con quell'accesso. Non è necessario e è davvero poco sicuro.

Per ulteriori informazioni sullo sfondo, vedi

risposta data 20.06.2015 - 05:20
fonte
17

Onestamente, sono d'accordo sul fatto che ci sono molti rischi associati all'uso di root utente come predefinito. Lasciatemi solo sfogliarli e criticare un po 'gli argomenti un po'

  • Difesa contro le applicazioni : in pratica il sistema di autorizzazione di * nix è non abbastanza strong (di gran lunga) da consentire l'esecuzione di programmi arbitrari. Un programma dannoso su * nix è in grado di fare abbastanza cose malvagie (come rubare le tue credenziali bancarie) senza permessi di root. Sarà un po 'più difficile per un'applicazione non- root rispetto a un'applicazione root (ad esempio, invece di installare direttamente un certificato radice e intercettare la connessione alla banca, dovrai invece giocare con il browser, ma hey , in realtà è abbastanza fattibile e probabilmente dovresti farlo comunque per assicurarti che l'utente non noti nulla)
  • Difesa contro gli errori dell'utente (come l'esecuzione di un comando errato e l'eliminazione di tutti i file di sistema) : Assolutamente vero, ma anche se un% nonroot utente salverà il sistema, tutto i file importanti saranno normalmente persi (dato che i file di proprietà dell'utente hanno molte più probabilità di essere unici).
  • Difenditi contro bug sfruttabili nelle applicazioni che esegui: ora è più simile. Per esempio. quando si esegue un server Web in cui molte applicazioni sono aperte all'esterno e quindi eventuali bug sfruttabili saranno facilmente raggiungibili. Lo stesso vale ovviamente anche se si è seduti dietro un router e un firewall, sebbene l'entità del pericolo sia molto meno significativa. Ancora una volta, tuttavia, la domanda diventa quanto il sistema di autorizzazione difenderà realisticamente su un sistema privato. Senza le autorizzazioni di root è ancora possibile accedere a tutti i file privati e anche l'intercettazione dei dati di rete ... le due cose più importanti che puoi desiderare come attaccante di un sistema privato.
    • (Ora, oltre al sistema di autorizzazione del file standard * nix, Apple ha anche introdotto un sistema sandboxing per le applicazioni. Per quanto ne so, uno è ancora perfettamente funzionante anche quando si accede come root. quello sarebbe un affare completo.)

In ogni caso, tutto considerato non penso sia un'idea così terribile come pretendono alcuni altri. Intendiamoci, non sto dicendo che sia una buona idea, ma penso che le persone sopravvalutino l'utilità del modello di autorizzazione del file system * nix nel proteggerti. Sì, è incredibilmente utile per certe cose (ad esempio sistemi multiutente, server multi-applicazione complessi, mantenendo il sistema operativo indipendentemente da ciò che accade (in esecuzione, ma non necessario), bloccando file importanti (anche se è meglio criptarli ...), ecc.), ma non è una protezione magica che impedisce l'accadimento di cose brutte.

Nei commenti mi è venuta in mente un'analogia che sembra abbastanza adeguata nel descrivere la situazione. In olandese abbiamo una parola per il piccolo armadio dove puoi trovare tutte le metri e l'interruttore per l'approvvigionamento idrico principale, ecc. Eseguendo l'account utente root è come togliere il lucchetto dal piccolo armadio. Fatto ironico: la maggior parte delle persone non ha serrature su di esso in primo luogo. Ora, proprio come con root utente che non vuol dire che non è utile chiuderlo in determinati casi, ad esempio negli uffici o in altri edifici semi-pubblici è spesso bloccato, ma nelle case normali è molto più importante avere un strong blocco sulla porta d'ingresso (non installando elementi casuali, firewall, ecc.) e mettendo tutte le cose importanti in una cassastrong (facendo backup, crittografia di roba, ecc.). Sarà un blocco extra su quell'armadio ferito? No, quindi potrebbe essere una buona idea averlo sul posto giusto nel caso, ma con ogni probabilità sarà abbastanza inutile.

L'esecuzione come root utente è nulla come prendere tutte le serrature della tua casa e portare tutte le cose nella cassastrong con te tutto il tempo, come afferma David Richerby. Il tuo passaporto (identità) non è in alcun modo protetto dal file system * nix, il tuo denaro (conto bancario) non è in alcun modo protetto dal file system * nix, le tue password importanti sono probabilmente non protette da il file system * nix (se si sta utilizzando Safari, tuttavia potrebbero essere parzialmente protetti dal modello di autorizzazione del file system * nix, ma senza root è comunque possibile aggiungere un'estensione invisibile a Safari e successivamente intercettare la password la volta successiva lo usi), le tue foto non sono sicuramente protette dal file system * nix e se stai usando il terminale stai già trasportando una motosega con te (per il punto 2 sopra).

    
risposta data 21.06.2015 - 20:50
fonte
12

Nel 1990, stavo lavorando a un progetto con un ragazzo di nome Tom. Stavamo usando un server SUN con SunOS (un derivato Unix, il predecessore di Solaris). Questo accadeva nei giorni precedenti alle unità CD e alle unità flash, quindi se avevi incasinato il sistema operativo sul tuo disco rigido non c'era modo di recuperare.

Tom era solito effettuare il login come root. Gli dissi che era una cattiva idea, ma lui non ascoltò. Un giorno l'ho sentito dire "Uh-oh". Aveva intenzione di digitare comething in questo modo:

mv something* .

Purtroppo ha lasciato il punto finale, quindi la shell ha espanso tutti i nomi di file e directory che corrispondevano a questo schema. Quindi il comando mv usava qualsiasi cosa finisse come nome finale nell'elenco come directory di destinazione, e spostava tutto il resto in esso. Inoltre, sfortunatamente, si trovava attualmente nella directory principale, quindi in pratica l'intero file system è stato spostato in una delle sue sottodirectory.

Ho usato la freccia su per riportare il comando precedente e ho visto cosa era successo. La prima cosa che ho detto è stata "Non disconnettersi! O non sarai più in grado di accedere di nuovo".

Nessun problema, giusto? Potremmo semplicemente spostare tutto indietro. Potremmo, salvo il fatto che il comando mv non era uno dei comandi incorporati della shell. Invece, era un programma eseguibile, memorizzato in uno dei file che erano stati spostati. Fortunatamente, ls era un comando incorporato, quindi dopo aver usato ls per confermare dove erano stati spostati i comandi, sono stato in grado di trovare il comando mv, invocarlo con il nome completo del percorso e rimettere le cose dove avrebbero dovuto essere .

E poi gli ho detto, "Tom, questo è il motivo per cui è una cattiva idea accedere di routine come root."

    
risposta data 26.06.2015 - 19:32
fonte
9

In genere si desidera mantenere la proprietà dei propri file personali separati dall'utente root. Questo è il motivo per cui crei un account per te come amministratore. Il modo accettato, sotto OS X, per ottenere l'accesso a livello root è utilizzare il comando sudo dall'applicazione Terminale. Ad esempio, se vuoi vedere il partizionamento della tua unità interna il comando è

gpt -r show /dev/disk0

che se inserito darà come risultato il seguente messaggio di errore.

gpt show: unable to open device '/dev/disk0': Permission denied

Per utilizzare il comando, devi utilizzare sudo come mostrato di seguito.

sudo gpt -r show /dev/disk0

Se vuoi diventare l'utente root per evitare di inserire sudo , puoi semplicemente inserire sudo sh . Il comando exit può essere utilizzato per uscire dall'essere l'utente root.

Se si desidera eseguire un'applicazione come utente root, è possibile utilizzare l'applicazione Terminale. Ad esempio, se si desidera avviare il Finder come utente root, immettere il seguente comando.

sudo /System/Library/CoreServices/Finder.app/Contents/MacOS/Finder &

Per evitare la confusione di avere due applicazioni Finder aperte contemporaneamente, è preferibile uscire prima dall'applicazione Finder. Questo può essere fatto usando il seguente comando di terminale.

osascript -e 'tell application "Finder" to quit'

Una parola di cautela: precedere un comando con sudo non equivale a diventare l'utente root. Ad esempio, i comandi

sudo echo $USER
sudo echo $SUDO_USER

producono la stessa uscita dei comandi mostrati sotto.

echo $USER
echo $SUDO_USER

Se diventi l'utente root (il superutente), gli stessi comandi generano un output diverso. Questo può essere verificato inserendo i comandi mostrati sotto.

sudo sh
echo $USER
echo $SUDO_USER
sudo echo $USER
sudo echo $SUDO_USER
exit
    
risposta data 20.06.2015 - 06:36
fonte
4

Nel caso in cui gli altri motivi non fossero abbastanza buoni ... Non dimenticare che non puoi usare Homebrew come root (che in realtà è un enorme dolore). Inoltre, altri programmi non consentono di utilizzarli come root o di eseguire i problemi relativi alle autorizzazioni quando si eseguono, spesso le volte senza un motivo apparente, poiché i loro programmatori presumono che non verranno eseguiti come root. Penso che Steam sia uno di questi.

È anche bello avere tutto il sistema e la roba utente separati per vari motivi.

Non so se si tratta di un problema di sicurezza. Personalmente sarei più preoccupato dei problemi con l'organizzazione e le autorizzazioni di qualsiasi altra cosa.

    
risposta data 21.06.2015 - 21:30
fonte
4

Solo alcuni esempi perché non va bene eseguire sempre come root :

  • L'utente root può facilmente collocare i file in posizioni che sono molto più difficili da rintracciare.
  • L'utente root ha un accesso raw alle interfacce e quindi può mettere un'interfaccia in modalità promiscua o monitor e registrare TUTTO il traffico di rete.
  • L'utente root ha un accesso raw ai nodi del dispositivo e può gettare un disco rendendo molto più difficile il ripristino dei file rispetto a un semplice 'rm' a livello di utente. L'utente root può anche potenzialmente modificare i settori di avvio di un'unità, rendendo il malware persistente anche dopo una reinstallazione del sistema operativo.

Potrei andare avanti. Il punto è che ci sono buone ragioni per non eseguire come root. Non sono in disaccordo sul fatto che per la maggior parte delle persone i loro dati più personali siano comunque nella loro home directory, ma il fatto di girare come root continua a mettere a rischio maggiore quei dati e l'intero sistema. Il consiglio di non essere eseguito come root non è mal riposto. Se una persona non capisce le implicazioni dell'esecuzione come root, sicuramente non dovrebbe farlo. Suggerire qualcos'altro è irresponsabile.

    
risposta data 23.06.2015 - 01:39
fonte
1

A meno che tu non stia utilizzando backtrack / kali per un compito specifico: NO. Tratta il superutente come se fosse una pistola carica: se hai un bisogno immediato e l'intenzione di usarlo: OK. Se puoi risolvere il tuo problema in qualsiasi altro modo, comunque (ad esempio "sudo"), fallo.

    
risposta data 25.06.2015 - 15:04
fonte
0

NO! In questo modo si interrompe il sistema in pochissimo tempo. Invece, su o sudo in root se necessario. Se assolutamente, in positivo, deve essere eseguito come root , effettuare almeno il logout in qualsiasi momento quando non si utilizza il computer. Se il tuo sistema è in grado di eseguire multiutente, ma nessun utente è configurato, ti suggerisco di creare un utente privilegiato (es: uno che può sudo / su in root, se necessario.) ASAP !!!

    
risposta data 23.06.2015 - 20:09
fonte

Leggi altre domande sui tag