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

So prüfen Sie Berechtigungen mit dem Befehl find

Seien wir ehrlich:Das Linux-Dateisystem kann komplex sein. Fügen Sie gemountete Remote-Dateisysteme, Wechselmedien und alle serverspezifischen Verzeichnisse hinzu, die Sie erstellt haben, und Sie oder Ihre Benutzer werden es möglicherweise schwierig finden, sich genau zu merken, wo eine bestimmte Datei gespeichert ist. Dort finden Sie find Der Befehl kommt herein. Damit können Sie anhand verschiedener Kriterien nach Dateien oder Verzeichnissen suchen. Ich werde eine grundlegende Überprüfung von find durchführen unten, aber der Fokus dieses Artikels ist etwas anders:Ressourcen nach Berechtigungen finden.

Warum muss ich nach Berechtigungen suchen?

  • Sicherheitsaudit
  • Beheben Sie Beschwerden über den Nutzerzugriff
  • Probleme beim Anwendungszugriff beheben

Schnelles Beispiel für die Suche nach Namen

Es gibt andere Artikel zu Enable Sysadmin, die sich mit find befassen effektiv befehlen. Ich werde den Befehl hier jedoch schnell zusammenfassen.

Syntax:

find (where to search) (what to search for)

Beispiel:

# find /etc -name rsyslog
# find /home/user01 -type d

Dieser Artikel konzentriert sich jedoch auf die Verwendung von -perm Option, die basierend auf Berechtigungseinstellungen sucht.

Absoluter Modus versus symbolischer Modus

Denken Sie daran, dass Berechtigungen mithilfe von chmod festgelegt werden Befehl. Der chmod Der Befehl erkennt sowohl den absoluten Modus als auch den symbolischen Modus. In meinem kürzlich erschienenen Artikel So verwalten Sie Linux-Berechtigungen für Benutzer, Gruppen und andere finden Sie einen Überblick über die Verwaltung des Ressourcenzugriffs, einschließlich der beiden Modi. Der find Der Befehl erkennt auch beide Modi, sodass Sie den verwenden können, der für Sie am natürlichsten ist. Für mich ist das der absolute Modus. Sie müssen sich ein paar Dinge über den absoluten Modus und den symbolischen Modus merken, um find -perms effektiv zu nutzen Befehl.

Absolutmodus

Der absolute Modus verwendet Oktalwerte, um Berechtigungen darzustellen. Die Werte werden in der Reihenfolge aufgelistet, in der die Berechtigung dem Benutzer, der Gruppe und allen anderen zugewiesen werden soll.

Zum Beispiel:

# chmod 764 file1

Legt den Benutzer fest mit 7 (rwx), Gruppe mit 6 (rw) und andere mit 4 (r) für file1 .

Symbolischer Modus

Der symbolische Modus verwendet Symbole, um Zugriffsebenen darzustellen, und er verwendet mathematische Operatoren, um (+ ) oder entfernen (- ) Berechtigungen.

Zum Beispiel:

# chmod o+rw file1

Gibt die anderen Identität gelesen und schreiben zu file1 .

Ressourcenberechtigungen im absoluten Modus finden

Die grundlegendste Berechtigungssuche verwendet keine zusätzlichen Parameter. Die Anweisung lautet wie folgt:"Suche eine Ressource mit diesen Berechtigungen."

Zum Beispiel:

# find /etc -perm 777

Der Befehl lautet:Durchsuchen Sie /etc Verzeichnis für Ressourcen mit der 777 Zugriffsebene (rwx für alle Identitäten).

Das obige Beispiel findet nur Ressourcen mit genau der angegebenen Berechtigung – nicht mehr und nicht weniger. Was, wenn Sie etwas mehr Flexibilität brauchen? Es gibt zwei zusätzliche Parameter, die sehr nützlich sein können. Der erste ist der - Zeichen (Bindestrich) und das zweite ist der / Zeichen (Schrägstrich). Sehen wir uns beide an.

Suchen nach -

Die Verwendung des - Option bedeutet "mindestens diese Berechtigungsstufe ist gesetzt und alle höheren Berechtigungen."

Beispiel:

# find . -perm -644

Dieses Beispiel zeigt alle Ressourcen im aktuellen Verzeichnis mit mindestens 644 an Berechtigungen.

Suchen nach /

Die Verwendung von / Option bedeutet "alle aufgeführten Berechtigungen sind gesetzt."

Beispiel:

# find . -perm /644

In diesem Beispiel werden Ressourcen mit 644 angezeigt oder größere Berechtigungen.

Ressourcenberechtigungen im symbolischen Modus finden

Der symbolische Modus verwendet das ugo Symbole (Benutzer, Gruppe, andere), rwx Symbole (Lesen, Schreiben, Ausführen) und mathematische Operatoren (wie + oder - ), um Berechtigungen zu definieren.

Suchen nach -

Der - Die Option funktioniert im symbolischen Modus genauso wie oben im absoluten Modus. Es zeigt Ressourcen mit "mindestens dieser Zugriffsebene" an.

Beispiel:

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

Suchen nach /

Der / funktioniert auch im symbolischen Modus. Es zeigt Ressourcen mit "alle aufgelisteten Berechtigungen" an.

Beispiel:

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

Linux-Standardberechtigungen sind weit verbreitet, und jetzt wissen Sie, wie Sie mit einer bestimmten konfigurierten Zugriffsebene nach Ressourcen suchen. Linux nutzt jedoch auch besondere Berechtigungen . Der find Befehl kann diese Berechtigungen ebenfalls anzeigen.

Ressourcen mit speziellen konfigurierten Berechtigungen finden

Spezielle Linux-Berechtigungen legen zusätzliche Zugriffskontrollen für Ressourcen fest. Es gibt drei spezielle Berechtigungen:Set User ID (SUID), Set Group ID, (SGID) und das Sticky Bit. Die Details der einzelnen Bereiche würden den Rahmen dieses Artikels sprengen, aber lassen Sie mich kurz zusammenfassen:

Sondergenehmigung Beschreibung
SUID Eine Datei wird von einem Benutzer mit der Identität des Eigentümers ausgeführt, auch wenn dieser Benutzer nicht der Eigentümer ist
SGID Der Inhalt eines Verzeichnisses erbt automatisch die Gruppenzugehörigkeit des übergeordneten Ordners (ideal für Verzeichnisse, die von Projektteams gemeinsam genutzt werden)
Sticky Bit Die Datei wird automatisch in den Speicher geladen und kann von niemand anderem als dem Eigentümer gelöscht oder geändert werden

Weitere Informationen zu Sonderberechtigungen finden Sie in diesem Artikel.

Spezielle Berechtigungen werden mit einem vierten Bit (ganz links) konfiguriert:

  • SUID =4
  • SGID =2
  • Sticky-Bit =1

Tipp :Die Ausgabe von ls -l Der Befehl zeigt ein s an im ausführbaren Feld für den Benutzer, wenn SUID konfiguriert ist, ein s im ausführbaren Feld für die Gruppe, wenn SGID konfiguriert ist, und ein T oder t wenn das Sticky Bit gesetzt ist (je nachdem ob auch execute gesetzt ist).

Der folgende Inhalt behandelt die Suche nach Dateien mit bestimmten konfigurierten Sonderberechtigungen.

Dateien mit konfigurierter SUID finden

Um Dateien zu finden, bei denen die SUID-Zugriffsebene definiert ist, verwenden Sie -perm Option, aber schließen Sie die vierte Ziffer ein. SUID hat einen Oktalwert von 4 .

So suchen Sie beispielsweise nach Ressourcen mit konfigurierter SUID:

# find /usr/bin -perm 4755

Dateien mit konfigurierter SGID suchen

Sie können dieselbe Syntax verwenden, um Ressourcen mit der SGID-Berechtigung anzuzeigen, die durch Verwendung des SGID-Oktalwerts von 2 definiert ist .

So suchen Sie beispielsweise nach Ressourcen mit konfigurierter SGID:

# find /usr/bin -perm 2755

Dateien mit konfiguriertem Sticky Bit finden

Schließlich können Sie den Oktalwert von 1 verwenden um Ressourcen mit konfiguriertem Sticky Bit anzuzeigen.

Hier ist ein Sticky Bit-Beispiel:

# find /etc -perm /1444

Hinweis :Der - und / Parameter funktionieren mit speziellen Berechtigungen genauso wie mit Standardberechtigungen.

[ Anderen Lesern hat gefallen: Linux-Grundlagen für Systemadministratoren:Benutzerkontenverwaltung ]

Bonusbeispiele

Hier sind einige zusätzliche Befehle, die zum Anzeigen von Berechtigungen nützlich sein könnten. Als ich den Artikel schrieb, dachte ich ständig:Warte, was ist damit? und dann Bonusbeispiele hinzufügen. Hier sind also einige zusätzliche Befehle für die Berechtigungsprüfung.

Bonus 1:Verwenden Sie -not, um Ergebnisse zu negieren

Sie können den -not verwenden Option mit find etwas angeben, das nicht den angegebenen Kriterien entspricht.

Das erste Beispiel zeigt ein normales find versuchen, und die zweite zeigt find an mit -not .

# find /etc/network -perm 777

Das obige Beispiel zeigt die Ressourcen innerhalb von /etc/network das tun haben 777 Berechtigungen konfiguriert.

# find /etc/network -not -perm 777

Dieses Beispiel zeigt die Ressourcen innerhalb von /etc/network die irgendwelche Berechtigungen anders als haben 777 konfiguriert.

Bonus 2:Berechtigungen mit find und chmod setzen

Einer der Vorteile von find ist, dass es eine Ausführungsfunktion enthält. Sie können dies mit Folgebefehlen wie xargs kombinieren , rm , oder chmod .

# find -perm -111 -exec chmod -R 777 {} \;

In diesem Beispiel der {} Zeichen repräsentieren die Ergebnisse von find Befehl und den \; Zeichen stellen eine Beendigung des chmod dar Befehl.

Warnung :Achten Sie darauf, genau zu verstehen, was die Auswirkung Ihrer kombinierten Ausführung von "Suchen + andere Befehle" sein wird. Ein Tippfehler könnte leicht find werden alle Dateien in /etc und dann versuchen, sie zu löschen oder Berechtigungen zu konfigurieren, die legitime Benutzer aus ihren Home-Verzeichnissen ausschließen.

Bonus 3:Anzeigeberechtigungen mit ls und grep

Manchmal benötigen Sie die erweiterte Funktionalität von find nicht Befehl. Stattdessen benötigen Sie nur eine schnelle und einfache Anzeige bestimmter Berechtigungen. Verlassen Sie sich in diesem Fall auf ls und grep Befehle.

Beispiel:

# ls -l | grep rwxrw-r--

Dieser Befehl zeigt alle Verzeichnisinhalte mit den angegebenen Berechtigungen an.

Bonus 4:ACL-Berechtigungen anzeigen

Der find Der Befehl zeigt Dateien mit angewendeten Zugriffssteuerungslisten (ACL)-Berechtigungen nicht einfach an. Verwenden Sie in diesem Fall den getfacl Befehl statt.

Beispiel:

# getfacl file1

Weitere Informationen zu Zugriffskontrolllisten finden Sie unter Eine Einführung in Linux-Zugriffskontrolllisten (ACLs).

Abschluss

Der find Der Befehl ist ein praktisches Dienstprogramm zum Anzeigen von Verzeichnissen oder Dateien, die Sie suchen müssen. Find kann jedoch auch ein großartiges Sicherheitstool sein, da es Verzeichnisse und Dateien mit bestimmten Berechtigungen anzeigt. Als Systemadministrator können Sie diese Informationen verwenden, um sicherzustellen, dass die Ressourcen des Servers gemäß den Sicherheitsrichtlinien Ihres Unternehmens eingestellt sind. Vergessen Sie nicht, dass Sie den >> verwenden können Redirector, um diese Berechtigungen zu dokumentieren. Ein solches Dokument kann als Grundlage für Berechtigungen für zukünftige Audits verwendet werden.

[ Denken Sie an Sicherheit? Lesen Sie diesen kostenlosen Leitfaden zur Verbesserung der Hybrid Cloud-Sicherheit und zum Schutz Ihres Unternehmens. ] 


Linux
  1. Wie finde ich doppelte Dateien in Linux? Hilfe ist hier mit dem fdupes-Befehl!

  2. Wie finde ich den Prozess mit maximalen Dateideskriptoren?

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

  4. So finden Sie die Anzahl der Kerne in Ubuntu

  5. Wie verwende ich Regex mit dem Find-Befehl?

So verwenden Sie den Linux-Schlafbefehl mit Beispielen

So verwenden Sie den who-Befehl in Linux mit Beispielen

Verwendung des RPM-Befehls (mit Beispielen)

So finden Sie Dateien in der Ubuntu-Befehlszeile

So finden Sie Dateien mit dem fd-Befehl in Linux

So finden Sie Dateien mit Dutzenden von Kriterien mit dem Bash-Suchbefehl