Ich hab's gemacht:
sudo chown -R myname /usr/
und jetzt kann ich den sudo
Befehl wegen dieses Fehlers nicht verwenden :
sudo: muss setuid root sein
Und wenn ich das lese, bedeutet das, dass der Besitzer dieser Datei /usr/bin/sudo
nicht der Root ist. Es ist jetzt mein Benutzer, weil der /usr
Ordner angezeigt wird.
In vielen Foren und Blogs wird vorgeschlagen, dies als root zu tun:
# chown root:root /usr/bin/sudo
# chmod 4111 /usr/bin/sudo
... aber das Problem dabei ist, dass ich mich als root anmelden muss, aber ich kann nicht, weil wenn ich su
im Terminal schreibe, das Passwort falsch ist (eigentlich verwende ich das Passwort, das ich meinem Benutzer hinzugefügt habe):
$ su
Password:
su: Authentication failure
Kann ich den sudo
Befehl zurückerhalten ?
Bearbeiten: Mein Ubuntu befindet sich unter Paralells auf meinem Mac OS X.
su
, werden Sie aufgefordert, das root-Passwort einzugeben , nicht das Passwort Ihres Benutzers wie beisudo
. Kennen Sie das root-Passwort für diesen Computer?sudo chmod -R cirk:cirk /usr
du dich für eine entschieden? Was hast du versucht zu erreichen?Antworten:
Wenn Sie über ein ähnliches System verfügen, anhand dessen Sie den korrekten Besitz für alle Dateien ermitteln können, können Sie in den Rettungsmodus booten, zu einer Root-Shell wechseln und den korrekten Besitz für alle Dateien manuell wiederherstellen Dateien in
/usr
.Der schnellste Weg ist möglicherweise die Neuinstallation Ihres Betriebssystems oder die Wiederherstellung aus einer Sicherungskopie.
In Ubuntu oder ähnlichem gibt es dann standardmäßig kein root-Passwort (das Konto ist deaktiviert), weshalb dies nicht möglich ist
su
.quelle
chown
nichtchmod
. Da alles in dem/usr
Ordner sein sollteroot:root
, sollte dies eine einfache Lösung sein, nicht die akribische Lösung, die einchmod
Clobber bedeuten würde.chown
setzt die setxid-Bits zurück. Es gibt einige Dateien/usr
, die nicht dem Root gehören. mehr, die in einer anderen Gruppe sind (vor allem setgid-Programme in/usr/bin
).Da Sie die Berechtigungen für das einzige abgehakt haben, das Ihnen Zugriff auf Root-Ebene ermöglicht, benötigen Sie Hilfe von AUSSERHALB der aktuellen Softwareumgebung, um dieses Problem zu beheben.
Ich schlage vor, dass der einfachste Weg ist, eine Live-CD für Ihre Distribution zu starten, Ihr Laufwerk zu mounten und die Dateiberechtigungen mit den von
chmod
Ihnen dort aufgelisteten zu ändern .Sie können auch versuchen, im Einzelbenutzermodus zu booten, um eine Root-Shell zu erhalten.
Beachten Sie, dass in der Regel alle Objekte im
/usr/
Verzeichnis im Besitz vonroot
Benutzern sein sollten, sodass Sie nur ein rekursiveschown
Verfahren ausführen können, um das Problem zu beheben, das Sie aufgetreten sind. ( Bearbeiten: Per @Gilles-Kommentare, in denen offenbar diechown
Bits setuid und setgid ausgeführt werden, müssen manuell mit einem vorhandenen System verglichen werden, um alle wiederherzustellen, sobald Sie das Eigentumsrecht wieder hergestellt haben.)Es sollten jedoch nur WENIGE sein
4111
. Diese zusätzliche Berechtigung ist eine spezielle Berechtigung, die es jedoch selbst dann als Root ausführen lässt, wenn es als Benutzer ausgeführt wird! Nur beisudo
einigen wenigen Befehlen sollte dieses Berechtigungsbit gesetzt sein. Wenn Sie a zunächst nicht ausgeführtchmod
haben, müssen Sie dies wahrscheinlich gar nicht beheben , alle Berechtigungen sollten bereits korrekt sein. Führen Sie keine großechmod
Operation aus, ohne zu wissen, welche Berechtigungen erforderlich sind.quelle
sudo chown -R root /usr/
?/usr
der LivdCD. Sie müssen sie irgendwo mounten und gegen diesen Pfad laufen, sagen wir/mnt/mydrive/usr
. Dann müssen Sie das setuid-Bit korrigieren/mnt/mydrive/usr/bin/sudo
. Schauen Sie sich dann das / usr auf der Live-CD an und sehen Sie, ob es andere Eigentümer als root gibt.find /usr -not -uid 0
und ändern Sie diese entsprechend. Suchen Sie dann nach Dingen, für die unterschiedliche setuid- oder setgid-Bits festgelegt sind, und stellen Sie sicher, dass diese ebenfalls übereinstimmen. Wenn Sie ein echtes Ubunutu-System zum Vergleich haben, ist dies am besten.Geben Sie im Ubuntu-Wiederherstellungsmodus die folgenden Befehle ein. Dadurch wurde das Problem für mich behoben.
Ich hoffe, dies behebt Ihr Problem (oder eines anderen).
Ich habe dieses hier in diesem Blog-Beitrag gefunden .
quelle
Dies ist viel einfacher als von anderen Antworten vorgeschlagen. Sie müssen die Live-CD nicht formatieren, neu starten oder verwenden.
Dies ist der einfachste Weg, um dieses Problem zu beheben. Erklärung, sudo ist beschädigt (Ich weiß, dass "beschädigt" der falsche Begriff ist, aber es funktioniert nicht. Daher müssen wir die Verwendung von sudo vermeiden.)
Ich habe diese Methode unter Linux Mint getestet. Welches ist ein Ubuntu-ähnliches System. Lassen Sie mich wissen, dass diese Methode auf keinem anderen Betriebssystem funktioniert. Aktualisiert die Antwort entsprechend.
Vielen Dank
quelle
su root
, und weilsudo
nicht funktioniert, ist es set root - Passwort nicht möglichDas ist einfacher als die Leute es machen. Versuche Folgendes:
su
Befehl als root anzumelden, melden Sie sich als aktueller Benutzer ab und über Ihren normalen Display Manager (dh Anmeldebildschirm) erneut als root an.chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo
Dies sollte den
sudo
Befehl reparieren und Sie in kürzester Zeit wieder einsatzbereit machen.quelle
Um sich als root ohne su oder sudo anzumelden, können Sie pkexec verwenden:
Ändern Sie nun die Berechtigungen der Dateien:
quelle