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

Uniapp WeChat-Applet: Lösung bei Schlüsselfehler

Uniapp-Code <Vorlage> <Ansicht> <i...

SQL-Implementierung von LeetCode (177. N-höchstes Gehalt)

[LeetCode] 177.N-höchstes Gehalt Schreiben Sie ei...

Allgemeine Verwendung von regulären Ausdrücken in MySQL

Allgemeine Verwendung von Regexp in Mysql Fuzzy-M...

Ändern des Standard-Bildlaufleistenstils im Front-End-Projekt (Zusammenfassung)

Ich habe viele Projekte geschrieben, bei denen de...

So verwenden Sie Docker Compose zum Erstellen eines FastDFS-Dateiservers

Im vorherigen Artikel wurde ein ausführliches Bei...

Mit CSS3 implementierter Gradienten-Folieneffekt

Ergebnisse erzielen Code html <div Klasse=&quo...

Einige Dinge, die beim Erstellen einer Webseite zu beachten sind

--Backup der Homepage 1.txt-Text 2. Scannen Sie da...

Eine kurze Analyse von Event Bubbling und Event Capture in js

Inhaltsverzeichnis 01-Ereignisse brodeln 1.1- Ein...

C# implementiert MySQL-Befehlszeilensicherung und -wiederherstellung

Es gibt viele Tools zum Sichern von MySQL-Datenba...

js verwendet die Reduce-Methode, um Ihren Code eleganter zu gestalten

Vorwort In tatsächlichen Projekten kann die häufi...

Tabellen in HTML aufteilen und zusammenführen (colspan, rowspan)

Der Code demonstriert die horizontale Zusammenfüh...

Lösung für das img-Tag-Problem unter IE10

Finden Sie das Problem Ich habe vorher eine einfa...