GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann ich ein chmod im etc-Verzeichnis zurücksetzen?

Eine Sache ging schief:die Verwendung von sudo mit diesem Befehl. Die -R switch sagt chmod die Berechtigungen für dieses Verzeichnis rekursiv zu setzen, was in jedem Fall eine nicht empfohlene Aktion ist (sollten wir es nennen:Ketzerei), wenn Sie nicht wissen, was Sie tun (als mir das passiert ist, habe ich es nicht getan Geben Sie den Befehl aus, aber eine fehlerhafte GUI hat es geschafft, und mein System wurde verkabelt).

Es waren nur Dateirechte. Warum scheint dann das ganze System komplett in die Luft gesprengt zu sein?

GNU/Linux ist sehr empfindlich gegenüber Dateiberechtigungen, da es auf Stabilität und Sicherheit ausgelegt ist im Kopf. Gleiches gilt für die meisten Programme, die unter GNU/Linux ausgeführt werden (z. B. apache2 löscht Root-Privilegien und verwendet www-data , oder ein ähnlicher Benutzer, und Ihr 700 Berechtigung würde ihm nicht erlauben, seine eigenen Dateien zu lesen/schreiben).

Warum funktionieren jetzt keine Login-Passwörter?

Wie Sie bereits erwähnt haben, werden Login-Passwörter in einer Datei in /etc/passwd gespeichert und nur root (ich nehme an, Sie haben das nicht geändert) kann es lesen, aber die Anmeldeaufforderung (oder GUI-Anmeldung) verwendet ein nicht privilegiertes Konto, daher kann es die Datei nicht lesen.

Aber wie hat das Ändern von Berechtigungen alles gefährdet?

Wie oben erwähnt, reagiert Linux sehr empfindlich auf Dateiberechtigungen. Einige Programme überprüfen sogar die Berechtigungen ihrer Konfigurationsdateien und wenn sie nicht erwartet werden, werden sie überhaupt nicht ausgeführt.

Wie kann ich mein etc-Verzeichnis in seinen früheren Zustand zurückversetzen?

Wenn Sie eine RPM-basierte Distribution verwenden, können Sie dies mit rpm --setperms tun Befehl, würde es auf einem Debian-ähnlichen System apt-get --reinstall install die Pakete einzeln schmerzlich zurücksetzen ist dein Freund. Andere Lösungen sind möglicherweise verfügbar, benötigen jedoch ein funktionierendes System dafür.


Mal sehen, was Sie getan haben, ist, Berechtigungen im gesamten /etc-Verzeichnis als Lese-/Schreib-/Ausführungsberechtigungen nur für den Eigentümer der Datei/des Verzeichnisses, allen anderen verweigert, festzulegen. Wenn Sie die Dateiberechtigungen verwirren, können Sie mehr unter Wikipedia:Traditionelle UNIX-Berechtigungen lesen.

Der Grund, warum Sie Ihr System in die Luft gesprengt haben, liegt darin, dass viele Prozesse ihre Einstellungen nicht mehr lesen können und nicht auf /etc zugreifen können. Es wird nicht einfach sein, das gesamte /etc-Verzeichnis in seinen vorherigen Zustand zurückzuversetzen. Wie das geht, hängt von Ihrer Distribution ab, aber im Grunde bedeutet es, jedes Paket neu zu installieren, das eine beliebige Datei in /etc enthält.

Als schnelles Hilfsmittel, um das System verwenden zu können, um es richtig zu reparieren (Neuinstallation aller Pakete mit Inhalten in /etc, wie oben angegeben), könnten Sie Folgendes tun:

    # sudo find /etc -type d -exec chmod 775 '{}' \;
    # sudo find /etc -type f -exec chmod 664 '{}' \;

Mit diesen beiden Zeilen setzen Sie liberale Berechtigungen im gesamten /etc-Verzeichnis, wobei Lesen/Schreiben für den Besitzer und die Gruppe erlaubt ist und Lesen für alle anderen erlaubt ist. Der Grund für die beiden chmod ist, das Ausführungsbit nur auf Verzeichnisse zu setzen. Einige Prozesse beschweren sich oder schlagen trotzdem fehl, einschließlich aller ausführbaren Dateien in /etc, aber Sie sollten in der Lage sein, die oben beschriebene Neuinstallation durchzuführen.

Bitte beachten Sie, dass Ihr System bis zur Wiederherstellung der ursprünglichen Berechtigungen zumindest in einem unsicheren Zustand sein wird.


Linux
  1. Der Unterschied zwischen ~/.profile, ~/.bashrc, ~/.bash_profile, ~/.gnomerc, /etc/bash_bashrc, /etc/screenrc …?

  2. CentOS / RHEL:So stellen Sie eine gelöschte /etc/passwd-Datei wieder her

  3. „sudo:/etc/sudoers ist weltweit beschreibbar“ – So korrigieren Sie die Berechtigungen der sudoers-Datei

  4. So überprüfen Sie die Syntax der Datei /etc/ssh/sshd_config

  5. Wie kann ich die automatische Vervollständigung für Git-Befehle einrichten?

Der richtige Weg zum Bearbeiten von /etc/passwd- und /etc/group-Dateien unter Linux

Verstehen des Verzeichnisses /etc/skel unter Linux

Die Dateien /proc/mounts, /etc/mtab und /proc/partitions verstehen

Befehl grpck – Entfernen Sie beschädigte oder doppelte Einträge in den Dateien /etc/group und /etc/gshadow.

/etc/passwd zeigt Benutzer in einer Gruppe an, /etc/group jedoch nicht

Was ist die Verbindung zwischen den Verzeichnissen /etc/init.d und /etc/rcX.d in Linux?