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

Sind die Berechtigungen des übergeordneten Verzeichnisses beim Zugriff auf ein Unterverzeichnis von Bedeutung?

Wenn ich einen Root-Ordner mit einer eingeschränkten Berechtigung habe, sagen wir 600, und wenn die untergeordneten Ordner/Dateien die Berechtigung 777 haben, kann dann jeder die untergeordnete Datei lesen/schreiben/ausführen, obwohl der Root-Ordner 600 hat?

Akzeptierte Antwort:

Die genaue Regel lautet:Sie können ein Verzeichnis nur dann durchsuchen, wenn Sie die Ausführungsberechtigung dafür haben.

Also zum Beispiel um auf dir/subdir/file zuzugreifen , benötigen Sie die Ausführungsberechtigung für dir und dir/subdir , plus die Berechtigungen für file für die gewünschte Zugriffsart. Um in Grenzfälle zu kommen, bin ich mir nicht sicher, ob es universell ist, dass Sie eine Ausführungsberechtigung für das aktuelle Verzeichnis benötigen, um über einen relativen Pfad auf eine Datei zuzugreifen (unter Linux).

Es kommt darauf an, wie Sie auf eine Datei zugreifen. Zum Beispiel, wenn Sie Ausführungsberechtigungen für /foo/bar haben aber nicht auf /foo , aber Ihr aktuelles Verzeichnis ist /foo/bar , können Sie auf Dateien in /foo/bar zugreifen durch einen relativen Pfad, aber nicht durch einen absoluten Pfad. Sie können nicht zu /foo/bar wechseln In diesem Szenario; ein privilegierterer Prozess hat vermutlich cd /foo/bar ausgeführt bevor er unprivilegiert wird. Wenn eine Datei mehrere feste Links hat, bestimmt der Pfad, den Sie für den Zugriff verwenden, Ihre Zugriffsbeschränkungen.

Symbolische Links ändern nichts. Der Kernel verwendet die Zugriffsrechte des aufrufenden Prozesses, um sie zu durchlaufen. Wenn beispielsweise sym ist ein symbolischer Link auf das Verzeichnis dir , benötigen Sie die Ausführungsberechtigung für dir um auf sym/foo zuzugreifen . Die Berechtigungen für den Symlink selbst können je nach Betriebssystem und Dateisystem von Bedeutung sein oder auch nicht (einige respektieren sie, andere ignorieren sie).

Das Entfernen der Ausführungsberechtigung aus dem Stammverzeichnis beschränkt einen Benutzer effektiv auf einen Teil des Verzeichnisbaums (in den ein privilegierterer Prozess wechseln muss). Dies erfordert Zugriffskontrolllisten, um von Nutzen zu sein. Wenn beispielsweise / und /home sind für joe tabu (setfacl -m user:joe:0 / /home ) und /home/joe ist joe ’s Home-Verzeichnis, dann joe wird nicht auf den Rest des Systems zugreifen können (einschließlich der Ausführung von Shell-Skripten mit /bin/sh oder dynamisch gelinkte Binärdateien, die auf /lib zugreifen müssen , also müssten Sie für die praktische Anwendung tiefer gehen, z. setfacl -m user:joe:0 /*; setfacl -d user:joe /bin /lib ).

Verwandte:Erhalten Sie „Erlaubnis verweigert“, wenn Sie die Ausgabe von sudo echo „xyz“ in eine Datei umleiten??

Die Leseberechtigung für ein Verzeichnis gibt das Recht, die Einträge aufzuzählen. Es ist gelegentlich nützlich, eine Ausführungserlaubnis zu erteilen, ohne eine Leseerlaubnis zu erteilen:Die Namen von Einträgen dienen als Passwörter für den Zugriff auf sie. Ich kann mir keinen Nutzen vorstellen, einem Verzeichnis Lese- oder Schreibberechtigungen ohne Ausführungsberechtigung zu erteilen.


Linux
  1. Zugriffsrechte von /dev/mem

  2. Wie kann man einen mit subprocess.check_output() erstellten Python-Kindprozess beenden, wenn der Elternteil stirbt?

  3. Dateiberechtigung in zip/7z/rar?

  4. Berechtigung beim Zugriff auf den freigegebenen VirtualBox-Ordner verweigert, wenn Mitglied der vboxsf-Gruppe

  5. Wie kann ich die Paritätsbits einstellen, wenn ich den Bildschirm verwende, um auf eine serielle Schnittstelle zuzugreifen

Einführung in den Linux-Befehl chmod

So ändern Sie Berechtigungen in Linux

So prüfen Sie Berechtigungen mit dem Befehl find

[CentOS 7 Apache]:Berechtigung verweigert:Dateiberechtigungen verweigern den Serverzugriff

Rsync ändert die Verzeichnisberechtigungen?

Zugriff auf die Rohzugriffsprotokolle in cPanel