È "OK" utilizzare l'utente root come utente normale?


94

Ho abilitato l'utente root sul mio Mac in modo da poter accedere ad esso ed eseguire Finder ecc. Essendo la persona pigra che sono, ho appena trasferito tutto dalla mia directory home /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.)


6
Bella domanda con "el Capitan" senza radici dietro l'angolo.
Cugina Cocaina,

4
Cosa significa specificamente (accedi al mio computer). Probabilmente ti connetti a Internet. Non specifichi a quale software dai accesso al computer. Che aspetto ha 'OK' per te? Complimenti per avere delle ottime risposte generali. Probabilmente è meglio porre la domanda più dettagliata (se ne esiste una) come domanda successiva.
bmike

6
È possibile utilizzare un account root come utente normale purché si conosca la risposta alla domanda "È corretto utilizzare l'utente root come utente normale?". Una volta che conosci la risposta, non lo farai. ;-)
Dakshinamurthy Karra,

Potresti voler aggiungere la distinzione tra root, admin e utente normale. Credo che admin sia l'impostazione predefinita.
Steve Moser,

6
"Sono l'unico che può accedere al mio computer" <- Lol
Tim

Risposte:


354

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

Vale a dire, è molto conveniente di tanto in tanto, perché significa che puoi fare quello che vuoi, quando vuoi, senza bisogno di tornare a casa per ottenere cose 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 che ti accorga che il tuo portafoglio è sparito), facendo cose che rimpiangi in seguito (acquisto di impulsi biglietti aerei per Las Vegas ubriachi), prendendo pericolose scorciatoie (motosega attraverso la recinzione del recinto dei leoni perché è il modo più veloce per i panda) e reagendo in modo eccessivo (motosega per l'auto del tuo vicino perché il suo cane abbaia troppo). E, quando ci pensi, per lo più, vai in ufficio, vai a fare la spesa, esci con i tuoi amici. Tu non Non hai bisogno di tutte quelle cose con te tutto il tempo solo per la comodità di averne bisogno, cosa ?, una volta al mese? Una volta a settimana?

Quindi, no, non è corretto utilizzare l'account root in qualsiasi momento. Ti dà una piccola quantità di praticità ma ti mette molto in pericolo. C'è il pericolo che errori stupidi abbiano risultati catastrofici ("Ehi, perché ci mette rm -rf *così tanto tempo a correre? **** Ci sto /!"). C'è il pericolo di abituarti all'idea che tutti i file sono uguali e puoi solo scherzare con quello che vuoi, ovunque nella struttura della directory. C'è il pericolo che qualsiasi hack sul tuo account sia immediatamente un hack per l'intero sistema, quindi ora ogni singolo pezzo di software sulla tua macchina è fondamentale per la sicurezza. E anche se pensi di non preoccuparti che la tua macchina venga hackerata (dopotutto, quella foto di Flopsy è un vero pezzo di carta lucida, non un effimero JPEG), io preoccupati che la tua macchina venga hackerata perché poi è sulla botnet che sta montando l'attacco DDOS contro qualsiasi servizio Internet a cui non posso accedere oggi.

Root è il tuo costume da uomo ragno. 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.


54
Non solo è stato un pezzo divertente e ben scritto, ma suona anche della verità e merita la risposta accettata
wrossmck,

17
Continuo a tornare a questo. Questo è un consiglio genuino con la più grande quantità di umorismo che puoi mettere in qualcosa e comunque essere serio.
的 的 人

19
@ 9000 Non è così da almeno XP.
David Richerby,

28
la morte di flopsy e la motosega sono correlate?
Sirex,

29
"Root è il tuo costume da uomo ragno". Sto morendo qui.
GeminiDomino,

23

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

Per ulteriori informazioni di base su questo, vedere


Ho rimosso i commenti poiché non li hanno aggiunti alla risposta, puoi continuare la discussione in chat?
Nohillside

Grazie per le modifiche. Spero che questo risolva un po 'di confusione riguardo al mio post.
William T Froggard,

16

Onestamente, sono d'accordo che ci sono molti rischi associati all'uso rootdell'utente come predefinito. Ma lasciatemi solo esaminarli e criticare un po 'alcuni degli argomenti

  • Difesa dalle applicazioni : praticamente il sistema di autorizzazione di * nix non è abbastanza forte (di gran lunga) per consentire l'esecuzione di programmi arbitrari. Un programma dannoso su * nix è in grado di fare abbastanza cose malvagie (come rubare le credenziali della tua banca) senza i permessi di root. Sarà un po 'più difficile per una non rootapplicazione che per rootun'applicazione (ad es. Invece di installare direttamente un certificato di root e intercettare la connessione alla banca dovrai invece fare confusione con il browser, ma ehi, in realtà è abbastanza fattibile e probabilmente dovevi farlo comunque per assicurarti che l'utente non si accorgesse di nulla)
  • Difendersi dagli errori dell'utente (come eseguire un comando errato ed eliminare tutti i file di sistema) : assolutamente vero, ma anche se un non rootutente salverà il sistema, tutti i file importanti andranno normalmente persi (poiché i file di proprietà dell'utente sono molto più probabilmente unico).
  • Difendersi dai bug sfruttabili nelle applicazioni eseguite: ora è più simile. Ad esempio quando si esegue un server Web in cui molte applicazioni sono aperte verso l'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'estensione del pericolo sia molto meno significativa. Ancora una volta, tuttavia, la domanda diventa quanto il sistema di autorizzazioni difenderà realisticamente su un sistema privato. Senza rootautorizzazioni è ancora possibile accedere a tutti i file privati ​​ed è anche possibile intercettare i dati di rete ... le due cose più importanti che puoi desiderare come attaccante di un sistema privato.
    • (Ora, oltre al sistema di autorizzazione file * nix standard, Apple ha anche introdotto un sistema di sandboxing delle applicazioni. Per quanto ne so, uno è ancora perfettamente funzionante anche quando si accede come root. Se invece non lo fosse, sarebbe un totale fallimento).

Ad ogni modo, tutti considerati che non penso sia un'idea terribile come affermano 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 determinate cose (ad es. Sistemi multiutente, server multi-applicazione complessi, mantenendo il sistema in esecuzione indipendentemente da ciò che accade (in esecuzione, ma non necessario utilizzabile), bloccando i file importanti (anche se è meglio crittografare quelli ...), ecc.), ma non è una protezione magica che impedisce che accadano cose cattive.

Nei commenti ho trovato un'analogia che sembra abbastanza adeguata nel descrivere la situazione. In olandese abbiamo una parola per il piccolo ripostiglio dove puoi trovare tutti i contatori e l'interruttore per l'approvvigionamento idrico principale, ecc. Correre come l' rootaccount utente è come togliere il lucchetto da quel piccolo ripostiglio. Fatto ironico: la maggior parte delle persone non ha i blocchi in primo luogo. Ora, proprio come con ilrootl'utente che non vuole dire che in alcuni casi non è utile chiuderlo a chiave, ad esempio negli uffici o in altri edifici semi-pubblici è spesso chiuso a chiave, ma nelle case normali è molto più importante avere una serratura forte sulla porta d'ingresso ( non installare cose casuali, firewall, ecc.) e mettere al sicuro tutte le cose importanti (fare backup, crittografare cose, ecc.). Un lucchetto in più su quell'armadio farà male? No, quindi potrebbe essere una buona idea installarlo per ogni evenienza, ma con ogni probabilità sarà abbastanza inutile.

Correre come l' rootutente non è come prendere tutte le serrature di casa tua e portare sempre con te tutta la roba nella cassaforte, come sostiene David Richerby. Il tuo passaporto (identità) non è in alcun modo protetto dal file system * nix, i tuoi soldi (conto bancario) non sono in alcun modo protetti dal file system * nix, le tue password importanti probabilmente non sono protette dal file system * nix (se stai utilizzando Safari, tuttavia potrebbero effettivamente essere parzialmente protetti dal modello di autorizzazione del file system * nix, ma senzaroot puoi ancora aggiungere un'estensione invisibile a Safari e successivamente intercettare la password la prossima volta che la usi), le tue foto non saranno sicuramente protette dal file system * nix e se stai usando il terminale stai già portando una motosega in giro con te (per il punto 2 sopra).


2
Se si annota una risposta negativa, si prega di indicare cosa sarebbe errato nella mia analisi. Sono perfettamente consapevole che la mia risposta è un po 'poco ortodossa, ma mi aspetto che le TIC siano abbastanza progressive da consentire che le risposte vengano giudicate in base al loro contenuto, e non al modo in cui si adattano ai dogmi tradizionali.
David Mulder,

3
Questo merita più voti positivi. Le uniche cose a cui tengo davvero sul mio computer sono i file di proprietà del mio utente (non root). Rappresentano le mie foto, la mia musica, i video delle mie figlie .. il resto può essere reinstallato facilmente!
Isak Savo,

6
Questa logica è fondamentalmente la stessa che dire perché gli apriporta remoti del garage sono una salsa piuttosto debole, non sarebbe davvero un grosso problema se nessuno chiudesse le porte del garage. La premessa è vera ma il consiglio è falso. La sicurezza efficace è composta da tanti piccoli pezzi che lavorano insieme. Come tutti in un quartiere che tengono lì chiusi i garage. Rende il quartiere più sicuro per tutti.
Caleb,

2
@Caleb Esiste un'enorme differenza tra il possesso di una casa in un quartiere e l'invito di qualcuno. E quando qualcuno entra nella tua casa, c'è ben poco da fermarlo sui sistemi * nix standard. Questo è ciò che sto descrivendo in questa risposta: una volta che qualcuno entra nel tuo sistema, le autorizzazioni del file system * nix non saranno di aiuto, perché non proteggono le cose che ritieni importanti su un sistema privato. L'unica cosa è (cont.)
David Mulder,

3
Non avere root non lo impedisce, certo. Ma questa è un'affermazione leggermente diversa; un po 'come ho detto "attacco", non "compromesso". Puoi fare molto di più sulla rete con root. Se la tua macchina zombi partecipa a un semplice diluvio ICMP, per un semplice esempio, hai bisogno dell'accesso raw socket per generare quel traffico ICMP (motivo per cui il ping è suid root). Lo stesso vale per molte altre utili modifiche ai pacchetti dannosi.
dannysauer,

15

Intorno al 1990 stavo lavorando a un progetto con un ragazzo di nome Tom. Stavamo usando un server SUN con SunOS (un derivato Unix, predecessore di Solaris). Questo avveniva nei giorni precedenti alle unità CD e alle unità flash, quindi se si incasinava il sistema operativo sul disco rigido non c'era modo di ripristinarlo.

Tom eseguiva regolarmente il login come root. Gli ho detto che era una cattiva idea, ma non ha ascoltato. Un giorno l'ho sentito dire "Uh-oh". Aveva voluto scrivere comething in questo modo:

mv something* .

Sfortunatamente ha lasciato il punto finale, quindi la shell ha espanso tutti i nomi di file e directory che corrispondevano a questo modello. Quindi il comando mv ha usato tutto ciò che è finito come nome finale nell'elenco come directory di destinazione e ha spostato tutto il resto in esso. Inoltre, sfortunatamente, era attualmente nella directory principale, quindi sostanzialmente l'intero file system è stato spostato in una delle sue sottodirectory.

Ho usato la freccia su per riportare indietro il comando precedente e ho visto cosa era successo. La prima cosa che ho detto è stata: "Non disconnetterti! O non potrai mai più accedere".

Nessun problema, vero? Potremmo semplicemente spostare tutto indietro. Potremmo, tranne per il fatto che il comando mv non era uno dei comandi integrati della shell. Invece, era un programma eseguibile, memorizzato in uno dei file che era stato spostato. 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 suo nome di percorso completo e rimettere le cose dove dovevano essere .

E poi gli ho detto: "Tom, è per questo che è una cattiva idea accedere regolarmente come root".


10

Generalmente si desidera mantenere la proprietà dei file personali separati dall'utente root. Ecco perché crei un account per te come amministratore. Il modo accettato, in OS X, per ottenere l'accesso a livello di root è usare il sudocomando dall'applicazione Terminale. Ad esempio, se si desidera visualizzare il partizionamento dell'unità interna, il comando è

gpt -r show /dev/disk0

che se inserito genererà il seguente messaggio di errore.

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

Per utilizzare il comando, è necessario utilizzare sudocome mostrato di seguito.

sudo gpt -r show /dev/disk0

Se vuoi diventare l'utente root per evitare di entrare sudo, puoi semplicemente entrare sudo sh. Il exitcomando 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 comando seguente.

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

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

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

Un avvertimento: precedere un comando con sudonon equivale a diventare l'utente root. Ad esempio, i comandi

sudo echo $USER
sudo echo $SUDO_USER

produce lo stesso output dei comandi mostrati di seguito.

echo $USER
echo $SUDO_USER

Se si diventa l'utente root (il superutente), gli stessi comandi producono un output diverso. Questo può essere verificato inserendo i comandi mostrati di seguito.

sudo sh
echo $USER
echo $SUDO_USER
sudo echo $USER
sudo echo $SUDO_USER
exit

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). Altri programmi inoltre non ti consentono di usarli come root o di incorrere in problemi di autorizzazioni quando lo fai, spesso volte senza una ragione apparente, perché i loro programmatori presumono che non verranno eseguiti come root. Penso che Steam sia uno di questi.

È anche bello avere tutto il sistema e le cose dell'utente separate per vari motivi.

Non so se sia un grave problema di sicurezza. Personalmente sarei più preoccupato per i problemi con l'organizzazione e le autorizzazioni di ogni altra cosa.


4

Solo alcuni esempi per cui non va bene eseguire sempre come root:

  • L'utente root può facilmente posizionare i file in posizioni che sono molto più difficili da rintracciare.
  • L'utente root ha accesso non elaborato alle interfacce e quindi può mettere un'interfaccia in modalità promiscua o monitorare e registrare TUTTO il traffico di rete.
  • L'utente root ha accesso non elaborato ai nodi del dispositivo e può bloccare 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 persistente il malware anche dopo una reinstallazione del sistema operativo.

Potrei andare avanti. Il punto è che ci sono buoni motivi per non eseguire il root. Non sono in disaccordo sul fatto che per la maggior parte delle persone i loro dati più personali si trovino comunque nella loro directory home, ma l'esecuzione come root mette ancora più a rischio quei dati e l'intero sistema. Il consiglio di non eseguire come root non è fuori luogo. Se una persona non capisce le implicazioni della corsa come root, sicuramente non dovrebbe farlo. Suggerire qualcos'altro è irresponsabile.


1

A meno che tu non stia usando backtrack / kali per un'attività specifica: NO. Tratta il superutente come se fosse una pistola carica: se hai un bisogno immediato e l'intenzione di usarla: OK. Se riesci a risolvere il tuo problema in qualsiasi altro modo, ad esempio (ad esempio "sudo"), fallo.


0

NO! In questo modo il tuo sistema si romperà in brevissimo tempo. Invece, suo sudonella radice, se necessario. Se devi assolutamente, positivamente, eseguire come root, almeno disconnettersi 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 (ovvero: uno che può sudo/ suin root, se necessario). APPENA POSSIBILE !!!


0

Usa semplicemente SUDO

Suppongo che l'OP non sappia quanto sia facile da usare sudonelle occasioni in cui è necessario utilizzare root.

OP, tutti i tuoi problemi sono finiti. Ripristina immediatamente il tuo Mac in uno stato normale.

E usa solo sudo secondo necessità. Uff.

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.