Ich trat ein chmod -R 777 /usr/bin
und jetzt arbeitet sudo nicht.
Es heißt sudo must be setuid root
.
Einige Online-Ratschläge sollen laufen chown root:root /usr/bin/sudo
chmod 4755 /usr/bin/sudo
.
Bei der Eingabe chown root:root /usr/bin/sudo
wird ein opened in readonly mode
Fehler angezeigt.
permissions
sudo
root
chmod
Manojkumar
quelle
quelle
pkexec
Methode in meiner Antwort (die Sie als akzeptiert markiert haben) dieses Problem für Sie gelöst? Ich bin davon überzeugt, dass diese Methode, wie Damien Roche und Oli kommentiert haben, nach erfolgreichem Abschluss einessudo chmod -R 777 /usr/bin
Befehls nicht funktioniert . Wiesudo
,pkexec
hat setuid root Arbeit. (Ich bin nicht sicher, warum, da es den Polkit- Dienst verwendet , aber es tut.) Ich denke jedoch, ich habe andere Leute sagen hören, dass dies für sie funktioniert hat, was merkwürdig ist! Hatten Sie Strg + C gedrückt, bevor der777
Befehl chmod beendet war?sudo chmod -R 777 /usr/bin
, nachdem ich versehentlich erfolgreich ausgeführt wurde , jedoch erst , nachdem ich mich in dasroot
Konto eingeloggt habe.Antworten:
Auf einem Ubuntu-Desktop-System ist PolicyKit installiert,
pkexec
mit dem eine beschädigtesudo
ausführbaresudoers
Datei oder Datei repariert werden kann . Sie müssen nicht in den Wiederherstellungsmodus booten und müssen nicht von einer Live-CD booten. Sie müssen nicht einmal neu starten.Führen Sie in diesem Fall die folgenden Befehle aus:
Weitere Informationen finden Sie in dieser Frage .
quelle
pkexec must be setuid root
! Was ein Alptraum!pkexec
genau in der gleichen Situation wiesudo
. Es ist normalerweise setuid und lebt in/usr/bin
. Ich habe es getestet und das funktioniert danach einfach nicht mehrchmod -R 777 /usr/bin
.pkexec
setuid root erforderlich ist, um zu funktionieren (funktioniert es nicht wie andere nicht-setuid-Prozesse über den polkit-Daemon?), Aber es benötigt dies. Ich habe die Frage kommentiert, um zu sehen, ob das OP (das dies akzeptiert hat) Aufschluss darüber geben kann, ob diese Antwort richtig oder hilfreich ist. Und ich habe ein temporäres Banner oben in diesem Beitrag hinzugefügt, damit ich nicht weiter in die Irre führe. Wenn diese Antwort weiterhin existiert, wird ihre verbesserte Form wahrscheinlich einige Informationen enthalten, die derzeit in diesem Banner enthalten sind.su
/usr/bin
sind Root-Berechtigungen erforderlich.su
Auf den meisten Ubuntu-Systemen ist jedoch kein Root-Zugriff möglich, da Root-Anmeldungen standardmäßig deaktiviert sind. Im Gegensatz zusudo
undpkexec
müssen Sie, wenn Siesu
eine Root-Shell abrufen oder einen Befehl als Root ausführen, das Root-Passwort eingeben, nicht das eigene. Aber root hat kein Passwort standardmäßig in Ubuntu (das heißt , dass die kennwortbasierte Authentifizierung für root wird immer scheitern, nicht , dass ein leeres Passwort eingeben funktionieren würde). Siehe RootSudo für Details.Auch wenn Sie von der Live-CD / Pendrive ausgeführt werden, müssen Sie Ihrem
chmod
Befehl das Präfix voranstellensudo
. So werden Ihre Schritte wie folgt aussehen:sudo chmod 0755 <path>
, um die Berechtigungen anzupassenSo finden Sie heraus, wo Ihre Festplatte eingehängt ist: Führen Sie in einem Terminalfenster
mount
(ohne Argumente) aus. Dies listet alle gemounteten Geräte auf. Überprüfen Sie dietype
Liste - Sie können alles überspringen, ohne ein "echtes Dateisystem" zu verwenden (Ihre Festplatte verwendet wahrscheinlich entweder ext3 oder ext4 - Sie können sicher Dinge wie proc, sysfs und dergleichen überspringen). Wenn etwas vielversprechend klingt (wie es aussieht/dev/sda1 on /media/sda1 type ext3
), überprüfen Sie seinen Inhalt mit,ls /media/sda1
um festzustellen, ob es das ist.Wenn es nicht angebracht ist, können Sie mit den Check -
/dev
Einträgen , wo die Platte sein könnte (unter Verwendung vonls /dev/ |grep '/dev/sd
verfügbaren Geräten zu überprüfen, Ihre Festplatte aussehen sollte/dev/sdaX
,/dev/sdbX
oder dergleichen - mit X eine Zahl ist). Vergleichen Sie dies mit der Liste der gemounteten Geräte. Wenn es nicht vorhanden ist, versuchen Sie es zu mounten und überprüfen Sie den Inhalt (wie oben gezeigt). Um es zu mounten, erstellen Sie zuerst einen Mountpoint,sudo mkdir /mnt/mydisk
versuchen Sie dann, das Gerät mit zu mountenmount /dev/sda1 /mnt/mydisk
und überprüfen Sie seinen Inhalt mitls /mnt/mydisk
.Sobald Sie die richtige Scheibe dorthin zu gelangen, können Sie die Berechtigungen wieder auf usr dir ändern gehen Sie zu:
sudo chmod 0755 /mnt/mydisk/usr
.Jetzt könnten Sie immer noch Probleme haben, wenn Sie den
chmod
Befehl ursprünglich rekursiv mit dem-R
Parameter ausgeführt haben. In diesem Fall können Sie entweder versuchen, jeden Eintrag manuell zu korrigieren - oder Sie können direkt eine Neuinstallation durchführen ...quelle
mount /dev/sda /mnt/mydisk
ausroot@Ubuntu:/dev#
mkdir -p /mnt/mydisk && mount /dev/sda1 /mnt/mydisk
(Ich glaube nicht, dass Sie keine Partitionen haben/dev/sda
, daher müssen Sie auch die Partitionsnummer verpasst haben. Stellen Sie sicher, dass Sie das richtige Gerät angeben (oder die Bereitstellung schlägt fehl).Ich denke, Mat hat recht, Sie müssen root sein, um das Bit zu / usr / bin hinzuzufügen, aber natürlich ist sudo kaputt. Wenn Sie ein root-Passwort haben, können Sie sich damit als root anmelden und dann die Berechtigungen mit dem obigen Befehl korrigieren. Wenn Sie dies jedoch nicht tun (und ich auch nicht), ist es wahrscheinlich am besten,
Root ist immer die Benutzernummer 0, damit Root auf jedem System Änderungen vornehmen kann, die Root auf anderen Dateisystemen erlauben.
quelle
Ich habe nicht viel Wissen. Aber diese Schritte lösten mein Problem auch ohne Neustart meiner Maschine. Folge diesen Schritten:
quelle
root
, was nicht die Standardkonfiguration von Ubuntu ist.Beim Versuch, Berechtigungen für meine lokalen Skripts festzulegen, habe ich die sudo-Berechtigung verletzt und versehentlich den Besitzer gewechselt. Ich konnte den Besitz von sudo auf root zurücksetzen, indem ich Folgendes ausführte:
Schritt 1: Wechseln Sie in den Ubuntu-Wiederherstellungsmodus . Wenn Sie den Vorgang nicht kennen, können Sie hier eine Antwort eingeben: /ubuntu//a/172346/223901
Schritt 2: Sobald Sie sich im Wiederherstellungsmodus befinden, wählen Sie root - Drop to root shell prompt
Schritt 3: Führen Sie die folgenden Befehle aus
Warten Sie, bis Ihr System normal gebootet ist und Sie sehen, dass sudo wieder als root angemeldet ist.
quelle