Einige Methoden zur Dateiberechtigungsverwaltung unter Linux, die Sie möglicherweise nicht kennen

Einige Methoden zur Dateiberechtigungsverwaltung unter Linux, die Sie möglicherweise nicht kennen

Warum brauchen wir ein Berechtigungsmanagement?

1. Computerressourcen sind begrenzt und wir müssen Computerressourcen vernünftig zuweisen.

2. Linux ist ein Mehrbenutzersystem. Für jeden Benutzer ist der Schutz der Privatsphäre sehr wichtig.

rwx-Berechtigungen für das Verzeichnis

Aktueller Benutzer: vagrant:vagrant

Erstellen Sie ein Testdir-Verzeichnis und rufen Sie das Testdir-Verzeichnis auf. Erstellen Sie einen Dateitest.

$ mkdir Testverzeichnis
$ cd Testverzeichnis
$ Berührungstest

Ändern Sie die Testdir-Berechtigung auf 000 und versuchen Sie, ls testdir auszuführen

$ chmod 000 Testverzeichnis
$ ls testdir/
ls: Verzeichnis testdir/ kann nicht geöffnet werden: Berechtigung verweigert

Ändern Sie die Testdir-Berechtigung auf 400 und versuchen Sie, ls testdir auszuführen

$ chmod 400 Testverzeichnis
ls -l Testverzeichnis/
ls: kann nicht auf testdir/test zugreifen: Berechtigung verweigert
gesamt 0
-????????? ? ? ? ? ? prüfen

Ergebnis: Die Dateiliste im Verzeichnis kann gelesen werden, aber die spezifischen Dateiinformationen (Berechtigungen, Größe, Benutzergruppe, Zeit usw.) können nicht angezeigt werden, obwohl der aktuelle Benutzer der Eigentümer von /testdir/test ist und über RWX-Berechtigungen verfügt.

Mit der r-Berechtigung für ein Verzeichnis können Sie die Liste der Dateien im Verzeichnis lesen.

Versuchen Sie, in das Verzeichnis „Testdir“ zu wechseln.

$ cd testdir/
-bash: cd: testdir/: Berechtigung verweigert

Es scheint, dass die R-Berechtigung uns nicht erlaubt, das Verzeichnis zu betreten.

Versuchen wir, eine X-Berechtigung hinzuzufügen.

~$ chmod 500 testdir/
~$ cd testdir/
~/testdir$ ls -l
gesamt 0
-rw-rw-r-- 1 Landstreicher Landstreicher 0 19. Nov. 08:16 Test

Erfolgreich eingegeben.

Wenn wir über die Berechtigung x für ein Verzeichnis verfügen, können wir das Verzeichnis betreten. In diesem Arbeitsverzeichnis können wir die Dateiliste und Dateiattributinformationen anzeigen.

Versuchen Sie, die Testdatei zu löschen oder eine neue Datei „test1“ zu erstellen.

~/testdir$ rm test
rm: „Test“ kann nicht entfernt werden: Berechtigung verweigert
~/testdir$ touch test1
touch: kann „test1“ nicht berühren: Berechtigung verweigert

Wenn wir über RX-Berechtigungen für ein Verzeichnis verfügen, können wir den Inhalt des Verzeichnisses nicht ändern. Die Liste der Dateien in einem Verzeichnis kann als Inhalt des Verzeichnisses betrachtet werden.

Ein Benutzer mit der Berechtigung „w“ für ein Verzeichnis kann den Inhalt des Verzeichnisses hinzufügen oder löschen.

~/testdir$ chmod 700 .
~/testdir$ rm test
~/testdir$ touch test1
~/testdir$ ls -l
gesamt 0
-rw-rw-r-- 1 Landstreicher Landstreicher 0 19. Nov. 08:30 test1

umask

Im obigen Beispiel sind die Berechtigungen der neuen Datei, die wir erstellt haben, 664 (-rw-rw-r--). Warum ist die Standardberechtigung 664? Was passiert, wenn ich die Standardberechtigungen der neuen Datei ändern möchte?

Konsoleneingabe umask:

$ umask
0002

umask ist das Zweierkomplement der Berechtigungen. Die Standardberechtigungen für Dateien sind 666 – umask.

Wenn wir nicht möchten, dass andere Benutzer R-Berechtigungen für die von uns erstellten Dateien haben, können wir den Komplementcode in 0006 ändern.

~/testdir$ umask 0006
~/testdir$ touch test2
~/testdir$ ls -l | grep test2
-rw-rw---- 1 Landstreicher Landstreicher 0 19. Nov. 08:38 test2

Warum lauten die Standarddateiberechtigungen nicht 777 – umask? Da neu erstellte Dateien standardmäßig keine Ausführungsberechtigungen haben, beträgt dieser Vorgang natürlich 666, wenn wir nur die RW-Berechtigungen berücksichtigen.

Standardmäßig haben Verzeichnisse x Berechtigungen. Wenn die Umask 0002 ist, sollten die Standardberechtigungen der erstellten Verzeichnisse 777 - 0002 = 775 sein:

~/testdir$ mkdir dir1
~/testdir$ ls -l | grep dir1
drwxrwxr-x 2 vagrant vagrant 4096 Nov 19 08:39 dir1

Sonderberechtigungen

SUID

Im Allgemeinen gelten die Dateiberechtigungen rwx. Lassen Sie uns die Berechtigungen von passwd überprüfen (Befehl zum Ändern des Passworts):

~/testdir$ ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 47032 16. Mai 2017 /usr/bin/passwd

Wenn Sie genau hinschauen, werden Sie feststellen, dass das x-Bit der Benutzerberechtigung tatsächlich s ist. Diese Berechtigung heißt SUID und ist nur für Binärprogramme gültig.

Wenn ein Benutzer über die Ausführungsberechtigung für eine Datei verfügt, wird für die Ausführung der Datei vorübergehend die Unterstützung der Berechtigungen des Dateibesitzers erhalten.

Beispiel: Alle Benutzerkennwörter werden in der Datei /etc/shadow gespeichert und die Standardberechtigung der Datei lautet -r-------- root root. Nur der Root-Benutzer hat obligatorische Schreibberechtigung. Warum können normale Benutzer dann trotzdem ihre Kennwörter ändern? Da der Befehl „passwd“ über SUID-Berechtigungen verfügt, erhält ein Benutzer bei der Ausführung des Befehls die Berechtigungsunterstützung des Dateieigentümers „root“ und kann somit sein eigenes Kennwort ändern.

SGID

Wenn die x-Position der Gruppe s wird, bedeutet dies, dass die Datei über SGID-Berechtigung verfügt.

SGID-Berechtigungen sind für Binärprogramme gültig. Ähnlich wie bei SUID gilt: Wenn ein Benutzer über die Berechtigung x für eine Datei verfügt, erhält beim Ausführen der Datei die Benutzergruppe, zu der die Datei gehört, die Berechtigungsunterstützung.

Neben Binärprogrammen können SGIDs auch für Verzeichnisse festgelegt werden.

Wenn der Benutzer über SGID-Berechtigungen für das Verzeichnis verfügt:

Die effektive Benutzergruppe des Benutzers in diesem Verzeichnis wird zur Benutzergruppe dieses Verzeichnisses.

Wenn der Benutzer über die w-Berechtigung für das Verzeichnis verfügt, ist die Benutzergruppe der vom Benutzer im Verzeichnis erstellten Dateien dieselbe wie die Benutzergruppe des Verzeichnisses.

Diese Genehmigung ist für die Projektentwicklung wichtig.

SBIT

Diese Berechtigung ist derzeit nur für Verzeichnisse gültig:

Wenn ein Benutzer über w,x-Berechtigungen für dieses Verzeichnis verfügt und er einen Ordner oder ein Verzeichnis in diesem Verzeichnis erstellt, sind nur der Benutzer und der Root berechtigt, die Datei zu löschen.

Wenn das x-Berechtigungsbit von „Andere“ t ist, bedeutet dies, dass der Ordner über die SBIT-Berechtigung verfügt.

Beispielsweise das Verzeichnis /tmp:

$ ls -l / | grep tmp
drwxrwxrwt 4 root root 4096 19. Nov. 09:09 tmp
$ sudo -s
# Berührungstest
root@vagrant-ubuntu-trusty-64:/tmp# beenden
Ausfahrt
vagrant@vagrant-ubuntu-trusty-64:/tmp$ rm test
rm: schreibgeschützte normale leere Datei „Test“ entfernen? y
rm: „Test“ kann nicht entfernt werden: Vorgang nicht zulässig

So legen Sie die drei oben genannten Berechtigungen fest

Wenn Sie in den normalen Berechtigungseinstellungen vor den drei Zahlen eine weitere Zahl hinzufügen, steht die Zahl davor für diese Berechtigungen:

  • 4 ist SUID
  • 2 ist SGID
  • 1 für SBIT

Zum Beispiel:

# chmod 777 /tmp
# ls -l / | grep tmp
drwxrwxrwx 4 Wurzel Wurzel 4096 Nov 19 09:17 tmp
# chmod 1777 /tmp
# ls -l / | grep tmp
drwxrwxrwt 4 Wurzel Wurzel 4096 Nov 19 09:17 tmp
Ende.

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • Eine kurze Analyse gängiger Linux-Dateiverwaltungsbefehle
  • Detaillierte Erklärung der Linux-Dateiverwaltung
  • Freigabe des Dateimanagers des Linux-Betriebssystems
  • Praxis der Linux-Datei- und Benutzerverwaltung
  • Linux-Datei-/Verzeichnisberechtigungen und Eigentümerverwaltung
  • Zusammenfassung der Linux-Befehle zur Dateiverzeichnisverwaltung
  • Detaillierte Schritte zur Dateisteuerungsverwaltung für Linux-Konten
  • Detaillierte Erläuterung der Linux-Dateiberechtigungen und Verzeichnisverwaltung
  • Linux-Befehl „du“ zum Anzeigen von Ordnergrößen und Sortieren in absteigender Reihenfolge
  • So rufen Sie Dateiinhalte mit dem Grep-Befehl in Linux ab
  • Detaillierte Anwendung des Befehls „get“ zum Herunterladen von Dateien und „put“ zum Hochladen von Dateien in der Linux-FTP-Befehlszeile
  • Linux-Befehle zum Löschen von Ordnern und Dateien (erzwungenes Löschen, auch nicht leerer Dateien)
  • Beispielanalyse von Linux-Dateiverwaltungsbefehlen [Berechtigungen, Erstellen, Löschen, Kopieren, Verschieben, Suchen usw.]

<<:  Tutorial zur Installation und Verwendung des Elasticsearch-Tools cerebro

>>:  Tutorial zur kostenlosen Konfiguration der MySQL 5.7.18-Installationsversion

Artikel empfehlen

Vue implementiert die Anmeldung per Mobiltelefon-Bestätigungscode

In diesem Artikel wird der spezifische Code von V...

Detaillierte Beispiele für Docker-Compose-Netzwerke

Ich habe heute mit den Netzwerkeinstellungen unte...

Nginx verwendet Lua+Redis, um IP dynamisch zu blockieren

1. Hintergrund Bei unserer täglichen Website-Wart...

Mehrere Möglichkeiten zum einfachen Durchlaufen von Objekteigenschaften in JS

Inhaltsverzeichnis 1. Selbstaufzählbare Eigenscha...

Zusammenfassung der Methoden zum Einfügen von Videos in HTML-Seiten

Wenn Sie nun das Video-Tag auf einer Seite verwen...

MySql Installer 8.0.18 Visuelles Installationstutorial mit Bildern und Text

Inhaltsverzeichnis 1. MySQL 8.0.18 installieren 2...

So installieren Sie die IonCube-Erweiterung mit Pagoda

1. Installieren Sie zuerst die Pagode Installatio...

Beispielcode für horizontalen Linienstil „hr“

Code kopieren Der Code lautet wie folgt: <hr S...

Detaillierte Erklärung des Typschutzes in TypeScript

Inhaltsverzeichnis Überblick Typzusicherungen in ...

Probleme und Lösungen bei der Installation von Docker in der Alibaba Cloud

Frage Bei der Installation von Docker mithilfe de...

So lösen Sie das Phantomleseproblem in MySQL

Inhaltsverzeichnis Vorwort 1. Was ist Phantomlese...