Cosa significa "sei root?"?


16

Questo è quello che continuo a ricevere:

ascendermedia@magic2tower:~$ sudo apt-get install flashplugin-installer
bash: sudo: command not found
ascendermedia@magic2tower:~$ sudo apt-get install flashplugin-installer
bash: sudo: command not found
ascendermedia@magic2tower:~$ apt-get install flashplugin-installer
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
ascendermedia@magic2tower:~$ sudo aptitude install flashplugin-nonfree
bash: sudo: command not found
ascendermedia@magic2tower:~$ aptitude install flashplugin-nonfree
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
ascendermedia@magic2tower:~$ 

Che cosa sto facendo di sbagliato?

Risposte:


29

rootè l'account superutente sul sistema - (fondamentalmente) ha tutti i privilegi. Molti sistemi sono configurati in modo da poter utilizzare il sudocomando davanti a un altro comando per eseguire quel comando "come root", ovvero come se tu fossi l'utente root, con gli stessi privilegi.

Di solito è necessario disporre dei privilegi di root per installare i pacchetti di sistema, che è ciò che apt-getfa. Quindi, non funziona, la prima volta perché non hai a sudodisposizione; la seconda volta perché sudonon appariva magicamente solo perché l'hai eseguito due volte; e la terza (e la quinta) volta perché apt-get(e aptitude) richiedono davvero i privilegi di root per installare pacchetti come questo.

Come vedi dal tuo primo messaggio di errore, sudo non è installato o non è nel tuo percorso e probabilmente non è configurato. Potresti invece essere in grado di sostituire su -ce fornire la password di root (la password per l' rootaccount) quando richiesto.

Se non conosci quella password, devi a) chiedere alla persona che lo fa di eseguire questa attività per te, se non è il tuo sistema, oppure b) trovare un modo per recuperarla.


Questo è per lo più giusto, anche se vorrei menzionare che sudonon esegue solo i comandi "come se fossi root", ma li esegue effettivamente come root. Se guardi il processo, vedrai che è in esecuzione come root, non come ID utente. Per inciso, su macchine che non sono configurate per consentire l'accesso interattivo per root per impostazione predefinita, puoi semplicemente eseguire sudo bashper ottenere una shell di root. :)
reirab

@reirab Penso che sudo -isia preferito, poiché rispetta la tua shell corrente.
nuovo123456,

2
@ new123456 sudo -i utilizzerà la shell predefinita per root. sudo -s utilizzerà il valore di $ SHELL per l'utente che esegue.
bgvaughan,

@reirab Stai citando dalla parte in cui sto dando una spiegazione di cosa significa "come root" dal punto di vista di un utente semplificato.
Mattdm,

5

È necessario disporre dei privilegi di root per eseguire gli aggiornamenti di sistema tramite apt-get.

Puoi passare a un account di root usando su root. Sembra che il sudoprogramma non sia installato.


2
L'OP non ha solo i sudoprivilegi, non ha nemmeno sudoinstallato.
n.

1
Davvero, OP dovrebbe essere rootato abbastanza da installare e configurare sudo.
Kevin,

1
@n.st forse errato, potrebbe non essere in PATH.
o11c,

2
@ o11c Direi che quelle sono le stesse persone che non incontrerebbero mai quel problema senza sudo perché sono sempre connesse come root.
Kevin,

1
@ o11c Mentre possibile, che non sembra probabile, soprattutto perché sudoe apt-getsono entrambi installato /usr/binper default (almeno su Debian).
n.

5

Cosa significa "sei root?"?

Per installare i pacchetti a livello di sistema (cosa apt-getfa), ha bisogno dei privilegi di root, poiché creerai e modificherai i file di sistema ( rootè il solito nome per l'account amministratore * nix).

Il messaggio «sei root?» È un gentile promemoria che "devi essere root" per poter eseguire apt-get install. Questa è la ragione più frequente del problema che ha avuto (mostrato sopra):

/ var / lib / dpkg / lock - aperto (13: autorizzazione negata)

.

Come diventare root?

su

Il modo tradizionale di "diventare root" è eseguire su(e fornire la password dell'utente root). su (1) sta per s uper u ser o s witch u ser.

Nota che può essere usato per diventare qualsiasi utente, quindi puoi correre su johnper ottenere una shell come john. Correre susenza nome utente è una scorciatoia per su root.

Affinché ciò funzioni, l'account utente root deve essere abilitato e deve essere impostata una password. Alcuni sistemi sono configurati (anche di default), con l'account root disabilitato, al fine di evitare qualcuno -eg. un aggressore: accedi con l'account amministratore. In questi casi offrono un altro modo per eseguire comandi amministrativi, come sudo.

sudo

sudo (1) è un programma che ti permette di eseguire un comando come un altro utente (come sopra, di solito fatto per root). È configurato in /etc/sudoerse consente un controllo più fine, come consentire solo l'esecuzione di un singolo programma come root, a un utente specifico (che può essere impostato per richiedere nuovamente la propria password) e fornisce anche funzionalità di registrazione (ad es. " john ha eseguito destro-sistema come root ").

Esistono altre opzioni per runinng con privilegi maggiori (come calife ) ma hanno un utilizzo molto più basso.

Il registro sopra indica che sudonon è installato su magic2tower.


0

Hanno già spiegato che cos'è root, quando hai un "comando non trovato" probabilmente è perché non hai installato il programma che stai cercando di eseguire, o non hai il percorso nelle tue variabili env.

Prova a eseguire il comando in questo modo:

/usr/bin/sudo apt-get install flashplugin-installer

In alcune distribuzioni di Linux non è possibile passare a root, quindi ogni comando può essere eseguito con sudo. =)


1
sei sicuro che se hai un messaggio come bash: sudo: command not foundl'idea migliore è installarlo sudo apt-get install sudo, e se ti dà lo stesso errore imparerai cos'è la ricorsione
pqnet

2
Non è possibile installare sudo utilizzando sudo.
Da fare il
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.