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

So finden Sie Dateien anhand ihrer Berechtigungen in Linux

Das Suchen von Dateien über die Befehlszeile in Linux ist viel einfacher und schneller. Wir haben bereits besprochen, wie Sie Dateien basierend auf Zugriffs- und Änderungsdatum und -zeit finden und sortieren . Heute werden wir sehen, wie man Dateien basierend auf ihren Berechtigungen in Linux und Unix-ähnlichen Betriebssystemen findet.

Für die Zwecke dieser Anleitung werde ich drei Dateien erstellen, nämlich file1 , file2 und file3 mit Berechtigungen 777 , 766 , 655 jeweils in einem Ordner namens ostechnix .

$ mkdir ostechnix && cd ostechnix/
$ install -b -m 777 /dev/null file1
$ install -b -m 766 /dev/null file2
$ install -b -m 655 /dev/null file3

Lassen Sie uns nun die Dateien basierend auf ihren Berechtigungen finden.

Suchen Sie Dateien basierend auf ihren Berechtigungen

Die typische Syntax zum Suchen von Dateien anhand ihrer Berechtigungen lautet:

$ find -perm mode

Der MODE kann entweder mit numeric sein oder oktal Berechtigung (wie 777 , 666 , ... etc) oder symbolische Erlaubnis (wie u=x , a=r+x ).

Wir können den MODE angeben auf drei verschiedene Arten, wie unten aufgeführt.

  1. Wenn wir den Modus ohne Präfixe angeben, werden Dateien von exakt gefunden Berechtigungen.
  2. Wenn wir "-" verwenden Präfix mit Modus, zumindest sollten die Dateien die angegebene Berechtigung haben, nicht die exakte Berechtigung.
  3. Wenn wir "/" verwenden Präfix, entweder der Besitzer, die Gruppe oder andere Personen sollten die Berechtigung für die Datei haben.

Erlauben Sie mir, es mit einigen Beispielen zu erklären, damit Sie es besser verstehen können.

Zuerst werden wir sehen, wie Dateien basierend auf numerischen Berechtigungen gefunden werden.

Suchen Sie Dateien basierend auf ihren numerischen (oktalen) Berechtigungen

Lassen Sie mich nun den folgenden Befehl ausführen:

$ find -perm 777

Dieser Befehl findet die Dateien mit der Berechtigung genau 777 im aktuellen Verzeichnis.

Wie Sie in der obigen Ausgabe sehen, ist file1 die einzige, die genaue 777-Berechtigung hat .

Lassen Sie uns nun "-" verwenden Präfix und sehen Sie, was passiert.

$ find -perm -766

Wie Sie sehen, zeigt der obige Befehl zwei Dateien an. Wir haben 766 eingestellt Berechtigung für file2 , aber dieser Befehl zeigt zwei Dateien an, warum? Denn hier haben wir "-" verwendet Präfix. Dies bedeutet, dass dieser Befehl alle Dateien findet, bei denen der Dateibesitzer Lese-/Schreib-/Ausführungsberechtigungen hat, Dateigruppenmitglieder Lese-/Schreibberechtigungen haben und alle anderen auch Lese-/Schreibberechtigungen haben. In unserem Fall file1 und file2 diese Kriterien erfüllt haben. Mit anderen Worten, die Dateien müssen nicht die exakte 766-Berechtigung haben. Es werden alle Dateien angezeigt, die unter diese 766-Berechtigung fallen.

Als nächstes verwenden wir "/" Präfix und sehen Sie, was passiert.

$ find -perm /222

Der obige Befehl findet Dateien, die von jemandem beschreibbar sind (entweder ihr Besitzer oder ihre Gruppe oder jemand anderes). Hier ist ein weiteres Beispiel.

$ find -perm /220

Dieser Befehl findet Dateien, die entweder von ihrem Eigentümer oder ihrer Gruppe beschreibbar sind. Das heißt, die Dateien müssen nicht beschreibbar sein von dem Eigentümer und der Gruppe abgestimmt werden; entweder reicht.

Aber wenn Sie denselben Befehl mit "-" ausführen Präfix, sehen Sie nur die Dateien, die sowohl vom Eigentümer als auch von der Gruppe beschreibbar sind.

$ find -perm -220

Der folgende Screenshot zeigt Ihnen den Unterschied zwischen diesen beiden Präfixen.

Wie ich bereits sagte, können wir auch die symbolische Notation verwenden, um die Dateiberechtigungen darzustellen.

Suchen Sie Dateien basierend auf ihren Berechtigungen mit symbolischer Notation

In den folgenden Beispielen verwenden wir symbolische Schreibweisen wie u ( für Benutzer), g (Gruppe), o (Andere). Wir können auch den Buchstaben a verwenden um alle drei dieser Kategorien zu vertreten. Die Berechtigungen können mit den Buchstaben r angegeben werden (lesen), w (schreiben), x (ausführbar).

Zum Beispiel, um eine beliebige Datei mit der Gruppe write zu finden Berechtigung, führe aus:

$ find -perm -g=w

Wie Sie im obigen Beispiel sehen, file1 und file2 Gruppe schreiben lassen Erlaubnis. Bitte beachten Sie, dass Sie entweder "=" verwenden können oder "+" Operatoren für die symbolische Notation. Zum Beispiel werden die folgenden zwei Befehle dasselbe tun.

$ find -perm -g=w
$ find -perm -g+w

Führen Sie Folgendes aus, um Dateien zu finden, die vom Eigentümer der Datei beschreibbar sind:

$ find -perm -u=w

Um eine Datei zu finden, die für alle schreibbar ist (der Dateieigentümer, die Gruppe und alle anderen), führen Sie Folgendes aus:

$ find -perm -a=w

Um Dateien zu finden, die von beiden beschreibbar sind ihrem Eigentümer und ihre Gruppe , verwenden Sie diesen Befehl:

$ find -perm -g+w,u+w

Der obige Befehl entspricht "find -perm -220" Befehl.

Um Dateien zu finden, die von beidem beschreibbar sind ihrem Eigentümer oder ihre Gruppe , ausführen:

$ find -perm /u+w,g+w

Oder,

$ find -perm /u=w,g=w

Diese beiden Befehle erledigen die gleiche Aufgabe wie "find -perm /220" Befehl.

Weitere Einzelheiten finden Sie in den Manpages.

$ man find

Sehen Sie sich auch die Manpage-Alternativen an um vereinfachte Beispiele für beliebige Linux-Befehle zu lernen.

Verwandte Lektüre:

  • So finden Sie die größten und kleinsten Verzeichnisse und Dateien in Linux
  • So finden Sie die älteste Datei in einem Verzeichnisbaum unter Linux
  • So finden Sie unter Linux Dateien, die größer oder kleiner als X sind

Linux
  1. So finden Sie Dateien mit SUID- und SGID-Berechtigungen in Linux

  2. Wie sortiert man Dateien nach ihren Berechtigungen mit Ls?

  3. So finden Sie Dateien mit dem fd-Befehl in Linux

  4. So verwenden Sie den Linux-Befehl find zum Suchen von Dateien

  5. So finden Sie alle Sparse-Dateien in Linux

So finden Sie Dateien unter Linux

So zählen Sie Dateien im Verzeichnis in Linux

Linux-Berechtigungen – So finden Sie Berechtigungen einer Datei

So finden Sie Dateien basierend auf dem Zeitstempel in Linux

So finden Sie Dateien mit dem fd-Befehl in Linux

So finden Sie Ordner in Linux