Was bedeutet "bist du root?"

16

Das bekomme ich immer wieder:

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:~$ 

Was mache ich falsch?

Ascendermedia
quelle

Antworten:

29

rootist das Superuser-Konto auf dem System - es verfügt (im Grunde) über alle Berechtigungen. Viele Systeme sind so konfiguriert, dass Sie den sudoBefehl vor einem anderen Befehl verwenden können, um diesen Befehl "als Root" auszuführen - das heißt, als ob Sie der Root-Benutzer mit denselben Berechtigungen wären.

Normalerweise benötigen Sie Root-Rechte, um Systempakete zu installieren apt-get. Das erste Mal funktioniert es nicht, weil Sie es nicht zur sudoVerfügung haben. das zweite mal weilsudo es nicht magisch erschien, nur weil du es zweimal ausgeführt hast; und das dritte (und fünfte) Mal, weil apt-get(und aptitude) wirklich root-Rechte benötigen, um solche Pakete zu installieren.

Wie Sie Ihrer ersten Fehlermeldung entnehmen können, ist sudo entweder nicht installiert oder nicht in Ihrem Pfad enthalten und möglicherweise nicht konfiguriert. Möglicherweise können Sie ersetzensu -c stattdessen das Root-Passwort (das Passwort für das rootKonto) eingeben, wenn Sie dazu aufgefordert werden.

Wenn Sie dieses Kennwort nicht kennen, müssen Sie a) die Person, die diese Aufgabe für Sie ausführt, fragen, wenn es nicht Ihr System ist, oder b) eine Möglichkeit finden, es wiederherzustellen.

mattdm
quelle
Dies ist größtenteils richtig, obwohl ich erwähne, dass sudoBefehle nicht nur "als wären Sie root" ausgeführt werden, sondern tatsächlich als root. Wenn Sie sich den Prozess ansehen, werden Sie feststellen, dass er als root ausgeführt wird und nicht als Ihre Benutzer-ID. Übrigens können Sie auf Computern, die standardmäßig nicht für die interaktive Anmeldung als Root eingerichtet sind, einfach sudo basheine Root-Shell aufrufen. :)
Reirab
@reirab Ich denke, das sudo -iist allerdings vorzuziehen, da es Ihre aktuelle Shell respektiert.
new123456
2
@ new123456 sudo -i verwendet die Standardshell für root. sudo -s verwendet den Wert von $ SHELL für den ausführenden Benutzer.
BGVAUGHAN
@reirab Du zitierst aus dem Teil, in dem ich erkläre, was "als root" aus der Sicht eines vereinfachten Benutzers bedeutet.
Mattdm
5

Sie benötigen Root-Rechte, um Systemaktualisierungen über auszuführen apt-get.

Sie können mit zu einem Root-Konto wechseln su root. Es scheint, dass Sie das sudoProgramm nicht installiert haben.

111 ---
quelle
2
Dem OP fehlen nicht nur sudoBerechtigungen, er hat noch nicht einmal sudoinstalliert.
2.
1
Wirklich, OP sollte nur so lange root sein, bis es installiert und eingerichtet werden kann sudo.
Kevin,
1
@ n.st möglicherweise falsch, es könnte nicht in sein PATH.
11.
2
@o11c Ich würde behaupten, das sind die gleichen Leute, die ohne sudo nie auf dieses Problem stoßen würden, weil sie immer als root angemeldet sind.
Kevin
1
@ o11c Während möglich, dass nicht wahrscheinlich scheint, da vor allem sudound apt-getbeide installiert sind /usr/binstandardmäßig (zumindest auf Debian).
3.
5

Was bedeutet "bist du root?"

Um Pakete systemweit installieren zu können (was apt-getfunktioniert), sind Root-Rechte erforderlich, da Sie Systemdateien erstellen und ändern ( rootder übliche Name für das * nix-Administratorkonto).

Die Meldung "Sind Sie root?" Erinnert Sie sanft daran, dass Sie "root sein müssen", um ausgeführt werden zu können apt-get install. Dies ist der häufigste Grund für das Problem (siehe oben):

/ var / lib / dpkg / lock - open (13: Erlaubnis verweigert)

.

Wie werde ich root?

su

Die traditionelle Art, "Wurzel zu werden", ist zu rennen su (und das Passwort des root-Benutzers anzugeben). su (1) steht für s uper u ser oder s Hexen u ser.

Beachten Sie, dass es verwendet werden kann, um ein beliebiger Benutzer zu werden. Sie können also ausführen su john, um eine Shell als john abzurufen. Laufen suohne Benutzernamen ist eine Abkürzung für su root.

Damit dies funktioniert, muss das Root-Benutzerkonto aktiviert und ein Kennwort festgelegt sein. Einige Systeme sind (auch standardmäßig) so konfiguriert, dass das Root-Konto deaktiviert ist, um jemanden zu vermeiden. ein Angreifer-Login mit dem Administrator-Account. In diesen Fällen bieten sie eine andere Möglichkeit, Verwaltungsbefehle wie sudo auszuführen.

sudo

sudo (1) ist ein Programm, mit dem Sie einen Befehl als anderer Benutzer ausführen können (wie oben, normalerweise für root). Es ist in konfiguriert /etc/sudoersund ermöglicht eine feinere Steuerung, z. B. das Ausführen eines einzelnen Programms als Root für einen bestimmten Benutzer (für den möglicherweise erneut ein eigenes Kennwort erforderlich ist). Außerdem bietet es Protokollierungsfunktionen (z. B. " john hat destroy-system als root ausgeführt ").

Es gibt andere Optionen für das Ausführen mit erhöhten Berechtigungen (wie z. B. Calife ), aber sie werden viel seltener verwendet.

Dein obiges Protokoll zeigt an, dass sudoes nicht auf magic2tower installiert ist.

Engel
quelle
0

Sie haben bereits erklärt, was root ist, wenn Sie einen "Befehl nicht gefunden" haben, wahrscheinlich, weil Sie das Programm, das Sie ausführen möchten, nicht installiert haben oder weil Sie den Pfad nicht in Ihren Umgebungsvariablen haben.

Führen Sie den Befehl folgendermaßen aus:

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

In einigen Linux-Distributionen können Sie nicht zu root wechseln, daher muss jeder Befehl mit sudo ausgeführt werden. =)

Carlos Andres Caro Perez
quelle
1
yeh sicher, wenn Sie eine Nachricht haben, wie bash: sudo: command not founddie beste Idee ist, es zu installieren sudo apt-get install sudo, und wenn es Ihnen den gleichen Fehler gibt, erfahren Sie, was Rekursion ist
pqnet
2
Sie können sudo nicht mit installieren sudo.
zu tun