Wie Benutzer zuvor bemerkt haben, funktioniert die Verwendung von "chmod 0440 / etc / sudoers", wenn die Datei sudoers.d / README das falsche chmod enthält, NICHT.
Kentfx
Schlagen Sie vor /etc/sudoers.d/README, dass der Fehler immer noch angezeigt wird , wenn das Problem bei den Berechtigungen liegt sudo: /etc/sudoers is mode 0777, should be 0440?
Wenn der GRUB-Startauswahlbildschirm angezeigt wird, wählen Sie den Wiederherstellungsmodus. (Wenn es nicht hochkommt, drücken Sie die ShiftTaste, wenn Sie den GRUB-Lader unten sehen).
Es sollte ein schwarzes Terminal erscheinen, an dieser Stelle können Sie diesen Befehl ausführen (Sie sollten Root-Rechte haben):
chmod 0440 /etc/sudoers
Alternative
Sie müssen Ubuntu auf eine LiveCD laden, die LiveCD starten, Ihre Ubuntu-Partition auf der Festplatte mounten (Öffnen Sie einen Dateibrowser wie Nautilus und klicken Sie auf Ihre Ubuntu-Partition; oder klicken Sie auf Orte -> "xxGB-Partition / Ihre Ubuntu-Partition ").
Öffnen Sie dann ein Terminal in der LiveCD-Sitzung und geben Sie diese beiden Befehle ein:
cd /media/<name of permanent ubuntu partition>/etc
sudo chmod 0440 sudoers
Zusätzliche Probleme
Wenn Fehler auftreten (siehe unten), befolgen Sie die Fehleraufforderung und passen Sie jede Datei entsprechend an, indem Sie einen der beiden oben genannten Schritte ausführen:
sudo apt-get update sudo: /etc/sudoers.d/README ist mode 0777, sollte 0440 sein sudo: / var / lib / sudo beschreibbar für Nicht-Besitzer (040777), sollte mode 0700 sein [sudo] Passwort für
Beide Befehle sollten mit den oben beschriebenen Schritten verwendet werden. Sie ändern die dieser Datei zugeordneten Dateiberechtigungen. 0440 gibt dem Eigentümer (root) und der Gruppe Leseberechtigungen und 0700 gibt dem Eigentümer (root) Lese-, Schreib- und Ausführungsberechtigungen.
Ich kann den sudo Befehl aber nur eingeschränkt verwenden. sudo apt-get update sudo: /etc/sudoers.d/README is mode 0777, should be 0440 sudo: /var/lib/sudo writable by non-owner (040777), should be mode 0700 [sudo] password for
user20698
@Alex: ESC ist für GRUB Legacy richtig? Die Umschalttaste sollte für GRUB2 gedrückt werden.
Lekensteyn
@ user20698: du brauchst sudofür den ersten nicht, der zweite sollte von einer Live CD gemacht werden.
Lekensteyn
Wenn sudoers 0777 ist, sollte der Benutzer nicht in der Lage sein, chmod 0440 /etc/sudoersohne sudo zu laufen, da sudoers von jedem geschrieben werden kann?
Seppo Erviälä
2
@Seppo: Nein, nur der Eigentümer einer Datei kann die Dateiberechtigungen ändern.
Lekensteyn
16
sudoist in dieser Situation fehlerhaft , aber pkexec(das Befehlszeilen-Frontend für PolicyKit ) funktioniert immer noch, sodass Sie es mit einem einzigen Befehl beheben können. Ein Neustart ist nicht erforderlich.
pkexec chmod 0440 /etc/sudoers
Dies setzt voraus, dass PolicyKit installiert ist. Wenn es sich um ein Desktop-System handelt (und nicht um einen Server ohne GUI), ist dies der Fall.
Warum chmodgibst du einige Dateien an 440und andere an 0440? Sollten Sie nicht 0440einheitlich verwenden? Und warum ändern Sie Berechtigungen, /etc/sudoers.d/READMEwenn Sie die pkexecArt und Weise verwenden, aber nicht anders? Und was ist mit anderen möglichen Dateien in /etc/sudoers.d?
Eliah Kagan
1
Was haben Sie getan, um diese Fehler zu erhalten?
Wenn Sie dies getan haben sudo chmod -R 777 /etc, benötigen Sie eine Live-CD, um dies zu reparieren.
Booten Sie eine Live-CD und wählen Sie "Try it"
Mounten Sie Ihre Ubuntu-Partition (oder die Partition, die enthält, /etcwenn Sie /etceine separate Partition angelegt haben). Dies kann mit einem Dateibrowser wie Nautilus oder dem Menü Orte erfolgen
Bestimmen Sie den Ordner Ihrer Ubuntu-Partition, indem Sie den Inhalt der gemounteten Partitionen auflisten ls -l /media. Möglicherweise heißt es ubuntuoder disk. In den nächsten Schritten gehe ich davon aus ubuntu.
Legen Sie im Terminal standardmäßig restriktive Berechtigungen fest:
sudo find /media/ubuntu/etc -type f -exec chmod g-wx,o-rwx {} \;
sudo find /media/ubuntu/etc -type d -exec chmod g-w,o-rwx {} \;
Verwenden Sie als Nächstes die Live-CD als Referenzpunkt für die Wiederherstellung von Dateiberechtigungen. Der folgende Befehl ändert die Dateiberechtigungen für die /etc/media/ubuntuVerwendung des /etcOrdners auf der Live-CD als Referenzpunkt. Es werden nur Berechtigungen für Dateien ( -type f) und Verzeichnisse ( -type d) im selben Dateisystem ( -xdev) geändert . Alle Fehler werden in ~/errors.logFehler wie "Datei nicht gefunden" geschrieben. Dies bedeutet, dass eine Datei auf dem System installiert ist, aber nicht auf der Live-CD gefunden wird. Der Befehl aus Schritt 5 sollte die richtigen Berechtigungen dafür festlegen. Um jedoch die besten Ergebnisse zu erzielen, sollten Sie die Pakete neu installieren.
cd /media/ubuntu && sudo find etc -xdev \( -type f -o -type d \) -f -exec chmod --reference=/{} {} \; 2>~/errors.log
Jetzt sicher ~/errors.logirgendwo (wie http://paste.ubuntu.com/ ), damit Sie es als Kommentar zu dieser Antwort hinzufügen können, falls Sie Probleme mit Anwendungen haben.
In Ubuntu können Sie zuerst Ctrl+ Alt+ Tdrücken, um das Terminal zu öffnen. Danach können Sie den folgenden Befehl mit Ctrl+ kopieren Cund im Terminal mit Ctrl+ Shift+ einfügen V.
Für mich hatte ich einen weiteren Schritt das die hinzuzufügen pkexecVorschläge pro diesem , ich hatte das Glück , dass ich zwei SSH - Sitzungen haben , passiert ist, als ich die dummen Fehler gemacht:
2 Klemmen öffnen
Führen Sie echo $$in Terminal 2 aus, um die PID abzurufen
Führen Sie pkttyagent --process PID_FROM_STEP2in Terminal 2
Führen Sie in Terminal 1 aus pkexec chmod 0440 /etc/sudoers
In meinem Fall musste ich auch rennen pkexec chown root:root /etc/sudoers
/etc/sudoers.d/README
, dass der Fehler immer noch angezeigt wird , wenn das Problem bei den Berechtigungen liegtsudo: /etc/sudoers is mode 0777, should be 0440
?Antworten:
Erste Wahl
Im Anschluss an diesen Beitrag :
Es sollte ein schwarzes Terminal erscheinen, an dieser Stelle können Sie diesen Befehl ausführen (Sie sollten Root-Rechte haben):
Alternative
Sie müssen Ubuntu auf eine LiveCD laden, die LiveCD starten, Ihre Ubuntu-Partition auf der Festplatte mounten (Öffnen Sie einen Dateibrowser wie Nautilus und klicken Sie auf Ihre Ubuntu-Partition; oder klicken Sie auf Orte -> "xxGB-Partition / Ihre Ubuntu-Partition ").
Öffnen Sie dann ein Terminal in der LiveCD-Sitzung und geben Sie diese beiden Befehle ein:
Zusätzliche Probleme
Wenn Fehler auftreten (siehe unten), befolgen Sie die Fehleraufforderung und passen Sie jede Datei entsprechend an, indem Sie einen der beiden oben genannten Schritte ausführen:
Fix durch Befolgen mit:
Beide Befehle sollten mit den oben beschriebenen Schritten verwendet werden. Sie ändern die dieser Datei zugeordneten Dateiberechtigungen. 0440 gibt dem Eigentümer (root) und der Gruppe Leseberechtigungen und 0700 gibt dem Eigentümer (root) Lese-, Schreib- und Ausführungsberechtigungen.
quelle
sudo apt-get update sudo: /etc/sudoers.d/README is mode 0777, should be 0440 sudo: /var/lib/sudo writable by non-owner (040777), should be mode 0700 [sudo] password for
sudo
für den ersten nicht, der zweite sollte von einer Live CD gemacht werden.chmod 0440 /etc/sudoers
ohne sudo zu laufen, da sudoers von jedem geschrieben werden kann?sudo
ist in dieser Situation fehlerhaft , aberpkexec
(das Befehlszeilen-Frontend für PolicyKit ) funktioniert immer noch, sodass Sie es mit einem einzigen Befehl beheben können. Ein Neustart ist nicht erforderlich.Dies setzt voraus, dass PolicyKit installiert ist. Wenn es sich um ein Desktop-System handelt (und nicht um einen Server ohne GUI), ist dies der Fall.
quelle
Booten Sie in den Wiederherstellungsmodus, wählen Sie die Root-Shell und:
Oder wenn Sie nicht neu starten möchten, können Sie diese Alternative verwenden:
es wird die Erlaubnis ändern. Probieren Sie es aus, es wird funktionieren.
quelle
chmod
gibst du einige Dateien an440
und andere an0440
? Sollten Sie nicht0440
einheitlich verwenden? Und warum ändern Sie Berechtigungen,/etc/sudoers.d/README
wenn Sie diepkexec
Art und Weise verwenden, aber nicht anders? Und was ist mit anderen möglichen Dateien in/etc/sudoers.d
?Was haben Sie getan, um diese Fehler zu erhalten?
Wenn Sie dies getan haben
sudo chmod -R 777 /etc
, benötigen Sie eine Live-CD, um dies zu reparieren./etc
wenn Sie/etc
eine separate Partition angelegt haben). Dies kann mit einem Dateibrowser wie Nautilus oder dem Menü Orte erfolgenls -l /media
. Möglicherweise heißt esubuntu
oderdisk
. In den nächsten Schritten gehe ich davon ausubuntu
.Legen Sie im Terminal standardmäßig restriktive Berechtigungen fest:
Verwenden Sie als Nächstes die Live-CD als Referenzpunkt für die Wiederherstellung von Dateiberechtigungen. Der folgende Befehl ändert die Dateiberechtigungen für die
/etc/media/ubuntu
Verwendung des/etc
Ordners auf der Live-CD als Referenzpunkt. Es werden nur Berechtigungen für Dateien (-type f
) und Verzeichnisse (-type d
) im selben Dateisystem (-xdev
) geändert . Alle Fehler werden in~/errors.log
Fehler wie "Datei nicht gefunden" geschrieben. Dies bedeutet, dass eine Datei auf dem System installiert ist, aber nicht auf der Live-CD gefunden wird. Der Befehl aus Schritt 5 sollte die richtigen Berechtigungen dafür festlegen. Um jedoch die besten Ergebnisse zu erzielen, sollten Sie die Pakete neu installieren.~/errors.log
irgendwo (wie http://paste.ubuntu.com/ ), damit Sie es als Kommentar zu dieser Antwort hinzufügen können, falls Sie Probleme mit Anwendungen haben.quelle
In Ubuntu können Sie zuerst Ctrl+ Alt+ Tdrücken, um das Terminal zu öffnen. Danach können Sie den folgenden Befehl mit Ctrl+ kopieren Cund im Terminal mit Ctrl+ Shift+ einfügen V.
quelle
Für mich hatte ich einen weiteren Schritt das die hinzuzufügen
pkexec
Vorschläge pro diesem , ich hatte das Glück , dass ich zwei SSH - Sitzungen haben , passiert ist, als ich die dummen Fehler gemacht:echo $$
in Terminal 2 aus, um die PID abzurufenpkttyagent --process PID_FROM_STEP2
in Terminal 2pkexec chmod 0440 /etc/sudoers
pkexec chown root:root /etc/sudoers
quelle