Wie kann ich verhindern, dass andere Personen den Inhalt meines Heimatverzeichnisses sehen, außer dem öffentlichen Ordner?

3834
stalepretzel

Unter Mac OS X ist es relativ einfach zu verhindern, dass die Dateien in Ihrem Heimatverzeichnis angezeigt werden: chmod 700 ~

Ich möchte eine Variation davon ausführen. Ich möchte es so, dass wenn Leute / Benutzer / stalepretzel öffnen, sie nur einen Ordner sehen: Public. Von dort aus möchte ich die Berechtigungen von "Öffentlich" festlegen, sodass Benutzer diesen Ordner aufrufen und alles lesen können, das nicht anders angegeben ist.

Zur Verdeutlichung möchte ich, dass ein anderer Nicht-Admin-Benutzer Folgendes ausführen könnte:

$ cd /Users/stalepretzel; ls Public $ cd Public All the contents of my public folder 
2

3 Antworten auf die Frage

3
jtb

Ich fürchte, das ist nicht möglich. Ein Benutzer kann nicht auf eine Datei oder einen Ordner im Verzeichnisbaum zugreifen, für den er keine Leseberechtigung hat. Wenn der Benutzer über Leseberechtigungen für ein Verzeichnis (und alle Superdirectories) verfügt, kann er lsalle darin enthaltenen Dateien anzeigen .

Es fühlt sich vielleicht nicht ganz so ordentlich an, aber wenn Sie verhindern möchten, dass Benutzer lsIhr Home-Verzeichnis in der Lage sind, müssen Sie Publicetwas außerhalb von erstellen ~. Wenn Sie leichter auf Ihr eigenes öffentliches Verzeichnis zugreifen können ~/Public, erstellen Sie einen Symlink (z ln -s ~/Public /Users/Shared/stalepretzel. B. ).

Ah, gute Idee. Ich werde dies wahrscheinlich akzeptieren, wenn es bald keine weiteren Beiträge gibt. Vielen Dank! stalepretzel vor 14 Jahren 0
1
jrg

Ich glaube nicht, dass Sie es besser können als (Standard-Unix-Kram):

$ chmod 711 ~/ $ chmod g-rx,o-rx ~/* $ chmod 755 ~/Public 

um Ihr Home-Verzeichnis durchlaufbar zu machen, aber unlesbar und alles, außer "Public", nicht zugänglich.

[Wiederholung der Unix-Berechtigung - Das Ausführen von Bits in einem Verzeichnis ermöglicht das Durchqueren. Mit Lesebits können Sie den Inhalt anzeigen.]

Leider kann niemand sehen, dass Ihr öffentlicher Ordner existiert - und dies ist nicht möglich, da das Vorhandensein des öffentlichen Ordners davon abhängt, dass Sie Ihr Basisverzeichnis lesen können, da dies die "Datei" ist, die es enthält (Namen) sind in übergeordneten Verzeichnissen, Berechtigungen sind Teil des Datei-Inodes.)

-1
Robert Swisher

Öffne dein Heimatverzeichnis, um es zu lesen:

$ chmod 0744 ~ 

und verstecken Sie alles dort:

$ chmod 700 ~/* 

dann öffnen Sie nur das öffentliche Verzeichnis:

$ chmod 0744 ~/Public 

Hinweis: Die Befehlsreihenfolge wurde bearbeitet, um sie zu korrigieren

Das geht nicht. Dies ermöglicht es den Benutzern, eine Auflistung meines gesamten Heimatverzeichnisses anzuzeigen (schlecht), und es ist nicht möglich, den Inhalt des öffentlichen Verzeichnisses anzuzeigen oder einzugeben (schlecht). Außerdem können Benutzer keine in meinem öffentlichen Verzeichnis enthaltenen Dateien öffnen, wenn sie ihren Speicherort kennen (schlecht). Oh oh! stalepretzel vor 14 Jahren 0
Die Idee ist, Ihr Home-Verzeichnis zu öffnen, alles darin zu verbergen und dann nur den öffentlichen Ordner zu öffnen. Sie müssen daran denken, alle neuen Dateien / Verzeichnisse zu Hause nicht in der Öffentlichkeit auszublenden, aber sie erfüllen, was Sie wollten. Ich habe die Befehlsreihenfolge bearbeitet, um sie klarer zu machen Robert Swisher vor 14 Jahren 0