chmod 700 -R ~ - ist es sicher?

2877
Anon

Ich denke an "chmod 700 -R ~". Kann es gefährlich sein? Was kann passieren, was ich nicht erwarte? Gibt es eine Möglichkeit, alle Dateien auf $ HOME auf -rwx ------ zu belassen?

3
Warum nicht einfach "chmod go-rx ~"? Keine Notwendigkeit zu rekursieren. (FWIW, manche Systeme mögen es nicht, z. B. wenn Benutzer Websites mit "~ / Sites" oder "~ / www" oder ähnlichem veröffentlichen) - der http-Server benötigt Zugriff auf "~" -, aber Sie würden weiß es wenn du das getan hast). Daniel Beck vor 10 Jahren 3
Of course, if somebody made a copy of one of Anon’s world-readable files yesterday, there’s no way of recovering it. But what if somebody made a hard link to one of his files? `chmod`ing the home directory won’t affect that; he needs recursion to make the linked file private. Scott vor 10 Jahren 0
Sie müssen kein rekursives "chmod" ausführen. `chmod 700 ~` hält alle neugierigen Augen von Ihrem Heimatverzeichnis fern. mtak vor 9 Jahren 1
@mtak: Ummm, hast du die vorhandenen Kommentare gelesen? Scott vor 9 Jahren 0
Wie wäre es, 'chmod 700 / home / *' statt rekursiv zu tun. Wenn der Zugriff auf die Berechtigungen des übergeordneten Verzeichnisses verweigert wird, können andere Benutzer nicht auf ihre Unterverzeichnisse zugreifen. Wenn eine Rekursion erforderlich ist, nachdem ein neuer Ordner unter home ~ erstellt wurde, müssen wir seine Berechtigung ändern. Es kann schwierig sein, alle neuen Ordner im Auge zu behalten und ihre Erlaubnis zu aktualisieren. @Scott alper vor 5 Jahren 0

2 Antworten auf die Frage

4
Scott

Das Hauptproblem ich denken kann, ist, dass dieser Befehl die E gesetzt wird x ecute Bit auf alle Dateien, auch solche, die nicht ausführbar sind. Wenn Sie also eine Datei aufgerufen haben foo, die Sie eines Tages ausführen möchten cat foooder wenn Sie print fooversehentlich einfach nur tippen foo, wird die Shell versuchen, sie auszuführen foo. dh interpretieren Sie es als Shell-Skript. Dies wird wahrscheinlich nur harmlos in Ihrem Gesicht explodieren, aber wenn es fooetwas enthält, das wie ein Shell-Befehl aussieht, können Sie schädliche Ergebnisse erzielen.

Ein geringeres Problem ist, dass, wenn Sie eine Datei haben, die Sie aufbewahren möchten, Sie im letzten Jahr einen chmod 444Schutz vor sich selbst vorgenommen haben, Ihr W rite-Bit chmod 700wiederhergestellt wird und Sie das Versehen der Datei einfacher machen können.

Die Lösung für beide Probleme besteht darin, chmod go= -R ~oder zu tun chmod go-rwx -R ~, wodurch alle Bits für die Gruppe und andere deaktiviert werden, der Zugriff jedoch jedoch unangetastet bleibt.

Könnte ich `chmod 700 / home / *` ausführen, anstatt rekursiv zu arbeiten. Da der Zugriff auf die Berechtigung des übergeordneten Verzeichnisses verweigert wird, können andere Benutzer nicht auf ihre Unterverzeichnisse zugreifen. @Scott alper vor 5 Jahren 1
0
Brendan Stennett

Ein bisschen alt, aber Sie können jetzt chmod 700für Ordner und chmod 600Dateien und es würde das Problem des Hinzufügens des Ausführungsbits für alle regulären Dateien lösen (Sie müssen die Ordner ausführen ls).

find ~ -type d -print0 | xargs -0 chmod 700 find ~ -type f -print0 | xargs -0 chmod 600 
Dieser Befehl von GNU coreutils hat den gleichen Effekt: `chmod -R ~ go-rwx, u + rwX`. Es entfernt zunächst Gruppen- und Weltberechtigungen, fügt dann dem Benutzer Lese- und Schreibzugriffe hinzu und führt Verzeichnisse aus. Achtung: Es wird erwartet, dass einige Dateien ein Ausführungsbit haben (wie die in ~ / bin / `oder` node_modules / bin / `). Lekensteyn vor 9 Jahren 2