Ich habe Ubuntu über die GUI installiert und mir ein Passwort und alles gegeben. Ich kann mich nicht genau an den Vorgang erinnern. Was mich jedoch beunruhigt, ist, dass ich das folgende Passwort nicht kenne:
$ su
Password: <the only password I've ever created on this machine>
su: Authentication failure
Ich weiß nur nicht, was ich tun soll. Ich bin nicht in Schwierigkeiten, aber ich möchte nur wissen, was hier los ist. Ich kann mich auch aus Verzeichnissen ausschließen:
starkers@ubuntu:~/Desktop$ mkdir foobs
starkers@ubuntu:~/Desktop$ sudo chmod 777 -R foobs
sudo: /var/lib/sudo writable by non-owner (040777), should be mode 0700
[sudo] password for starkers: <the only password I've ever created on this machine>
starkers@ubuntu:~/Desktop$ cd foobs
bash: cd: foobs: Permission denied
Ich bin nur ein bisschen verwirrt. Wie kann ich mich so aussperren? Ich denke, das sudo
ist der Schlüsselbefehl hier. Aber ich mache die foobs
Datei so offen, wie es nur möglich ist. chmod
Warum sperrt sie mich dann aus?
chmod -R 777 whatever
, es sei denn, Sie möchten ein großes Sicherheitsrisiko verursachen.666
?chmod
dass nur die von Ihnen beabsichtigten Dateien geändert werden./var/lib/sudo
ist, dass es weltweit beschreibbar ist. Dies sollte nicht passieren und Sie sollten versuchen herauszufinden, warum es passiert ist .Antworten:
Standardmäßig ist das
root
Konto superuser ( ) deaktiviert und hat kein Kennwort. Sie können eine erstellen, indem Sie Folgendes ausführen:Sie können sich dann
su
mit diesem Kennwort als root anmelden .Was
chmod
wäre der korrekte Befehl sein:Sie können auch verwenden:
Melden Sie sich mit Ihrem Passwort als root an (ohne ein root-Passwort wie oben beschrieben zu erstellen).
quelle
sudo su
. Dies gibt auch permanente Rechte im Terminal.sudo su
, da dies die Umwelt schädigt und die Dinge zerbrechen. Verwenden Sie stattdessensudo -i
.1. Warum hast du kein root Passwort?
Sie können zwar ein Kennwort für das Superuser-Konto erstellen, mit dem Sie sich als root anmelden können
su
, es ist jedoch erwähnenswert, dass dies nicht die übliche Vorgehensweise mit Ubuntu (oder zunehmend auch mit anderen Distributionen) ist. Ubuntu wählt nicht eine root - Login und Passwort standardmäßig für einen Grund zu geben. Stattdessen werden bei einer Ubuntu-Standardinstallationsudo
Superuser-Berechtigungen vergeben. In einer Ubuntu-Standardinstallation erhält die Person, die das Betriebssystem installiert hat, standardmäßig die Berechtigung "sudo".Jeder mit vollständiger "sudo" -Erlaubnis kann etwas "als Superuser" ausführen, indem er sich
sudo
an seinen Befehl anhängt . Um beispielsweiseapt-get dist-upgrade
als Superuser zu arbeiten, können Sie Folgendes verwenden:Sie werden diese Verwendung von sudo so ziemlich überall sehen, wo Sie ein Tutorial über Ubuntu im Web lesen. Es ist eine Alternative dazu.
Mit sudo legen Sie im Voraus fest, welche Benutzer sudo-Zugriff haben. Sie müssen sich kein Root-Passwort merken, da sie ein eigenes Passwort verwenden. Wenn Sie mehrere Benutzer haben, können Sie den Superuser-Zugriff widerrufen, indem Sie einfach die sudo-Berechtigung entfernen, ohne das Root-Kennwort ändern und alle Benutzer über ein neues Kennwort benachrichtigen zu müssen. Sie können sogar auswählen, welche Befehle ein Benutzer mit sudo ausführen darf und welche Befehle für diesen Benutzer verboten sind. Und schließlich kann bei einer Sicherheitsverletzung in einigen Fällen ein besserer Prüfpfad hinterlassen werden, der angibt, welches Benutzerkonto gefährdet wurde.
Mit Sudo ist es einfacher, einen einzelnen Befehl mit Superuser-Rechten auszuführen. Mit
su
Sie dauerhaft zu einer Superuser-Shell, die mitexit
oder beendet werden musslogout
. Dies kann dazu führen, dass Benutzer länger als nötig in der Superuser-Shell bleiben, nur weil dies praktischer ist als ein späteres Aus- und erneutes Anmelden.Mit sudo haben Sie weiterhin die Möglichkeit, eine permanente (interaktive) Superuser-Shell mit dem folgenden Befehl zu öffnen:
... und das geht immer noch ohne root Passwort, weil
sudo
dersu
Befehl Superuser-Rechte hat .Und in ähnlicher Weise können Sie anstelle
su -
einer Login-Shell auchsudo su -
deren Verknüpfung verwendensudo -i
.Dabei müssen Sie jedoch lediglich berücksichtigen, dass Sie für jeden Befehl als Superuser fungieren. Es ist ein gutes Sicherheitsprinzip, nicht länger als nötig als Superuser zu bleiben, nur um die Möglichkeit zu verringern, versehentlich Schäden am System zu verursachen (ohne diese können Sie nur Dateien beschädigen, die Ihrem Benutzer gehören).
Um dies zu verdeutlichen, können Sie dem Root-Benutzer ein Passwort geben, mit dem Sie sich wie in @ Olis Antwort beschrieben als Root anmelden können, wenn Sie die Dinge stattdessen auf diese Weise ausführen möchten. Ich wollte Sie nur über die Ubuntu-Konvention des Bevorzugens
sudo
informieren und Ihnen mitteilen, dass es eine Alternative gibt.2. Die Probleme mit Ihrem Befehl chmod 777 -R
Ihre Frage hat auch einen zweiten Teil: Ihre Probleme mit dem Befehl
sudo chmod 777 -R foobs
.Erstens weist die folgende Warnung auf ein potenziell schwerwiegendes Sicherheitsproblem auf Ihrem Computer hin:
Dies bedeutet, dass Sie irgendwann festgelegt haben, dass Sie
/var/lib/sudo
von der Welt aus beschreibbar sind. Ich stelle mir vor, Sie haben das irgendwann mit einem Befehl wie getansudo chmod 777 -R /
. Leider haben Sie auf diese Weise wahrscheinlich alle Dateiberechtigungen in Ihrem gesamten System verletzt. Es ist unwahrscheinlich, dass dies die einzige wichtige Systemdatei ist, deren Berechtigungen dahingehend geändert wurden, dass sie weltweit beschreibbar sind. Grundsätzlich haben Sie jetzt ein leicht hackbares System, und die einzige einfache Möglichkeit, es wieder herzustellen, ist die Neuinstallation.Zweitens der Befehl, den Sie verwendet haben:
Wenn Sie Dateien in Ihrem Home-Verzeichnis bearbeiten
~/Desktop
, sollten Sie in diesem Fall nicht verwenden müssensudo
. Alle Dateien, die Sie in Ihrem Home-Verzeichnis erstellen, sollten sowieso von Ihnen geändert werden können (und wenn nicht, passiert etwas Lustiges).Außerdem müssen Sie sich der Konsequenzen bewusst sein, die sich aus einer massenhaften Änderung von Dateiberechtigungen ergeben, z. In diesem Fall ändern Sie sorgfältig die Dateiberechtigungen so, dass sie von der Welt beschreibbar sind. Jeder andere Benutzer oder eine fehlerhafte Serversoftware auf dem Computer hat möglicherweise einfachen Zugriff auf das Überschreiben all dieser Dateien und Verzeichnisse.
Es ist fast sicher, dass
chmod 777 -R [dir]
es nicht ist geeignete Lösung für jedes Problem ist, das Sie zu lösen versuchten (und wie oben erwähnt, gibt es Hinweise darauf, dass Sie dies auch für Systemdateien in / var / lib getan haben, und ich gehe davon aus, dass es sich um viele andere handelt setzt).Ein paar grundlegende Faustregeln:
Wenn Sie nur mit Ihren eigenen Dateien in Ihrem Home-Verzeichnis, Desktop usw. herumspielen, sollten Sie niemals
sudo
Benutzer- oder Superuser-Rechte benötigen . Wenn Sie dies tun, ist dies ein Warnsignal dafür, dass Sie etwas falsch machen.Sie sollten Systemdateien, die sich im Besitz von Paketen befinden, niemals manuell ändern. Ausnahme: Es sei denn, Sie tun dies auf eine Weise, die von diesen Paketen dokumentiert wird, beispielsweise durch Ändern ihrer Konfiguration in
/etc
. Dies gilt auch für das Ändern von Dateiberechtigungen. Wenn ein Tutorial oder der Versuch, das Problem zu beheben,sudo
Superuser-Rechte erfordert und es sich nicht einfach um eine Änderung an einer Konfiguration in / etc / handelt, ist dies ein Warnsignal dafür, dass Sie etwas falsch gemacht haben.quelle
sudo -i
über verwendensudo su
.sudo -i
(odersudo su -
) sind nicht allgemein besser, sondern nur anders - diese starten eine Login- Shell, die eine Root-Benutzer-Login-Umgebung simuliert, die zum Beispiel die.profile
Datei oder die.login
Datei des Root-Benutzers ausführt . Diese sind besser, wenn Sie möchten, dass die Umgebung in der Shell eher einer Root-Anmeldeshell als einer interaktiven Shell ähnelt, die Superuser-Berechtigungen zufällt. Es ist wahrscheinlich besser, die Login-basierten Shells zu verwenden, wenn Sie eine Shell verwenden. Dies ist jedoch umstritten: Die Antwort lautet, dass Ubuntu hauptsächlich für diesudo
Ausführung von Befehlen mit Superuser-Rechten entwickelt wurde.