Detaillierte Erläuterung des Verwendungsprinzips und der Berechnungsmethode des Befehls umask unter Linux

Detaillierte Erläuterung des Verwendungsprinzips und der Berechnungsmethode des Befehls umask unter Linux

umask Umask-Nutzung

umask legt die Standardberechtigungen für neu erstellte Dateien und Verzeichnisse fest.

Sie können sehen, dass das von root erstellte Verzeichnis 755 und die Datei 644 ist

[root@zaishu zaishu]# touch test.txt
[root@zaishu zaishu]# mkdir test

[root@zaishu zaishu]# ls -l
gesamt 0
drwxr-xr-x 2 root root 6 25. November 16:29 Test  
-rw-r--r-- 1 root root 0 25. Nov. 16:28 test.txt

Normaler Benutzer

Sie können sehen, dass die von normalen Benutzern erstellten Verzeichnisse 775 und die Dateien 664 sind

[mysql@zaishu ~]$ touch test.txt
[mysql@zaishu ~]$ mkdir test
[mysql@zaishu ~]$ ls -l
gesamt 0
drwxrwxr-x 2 mysql mysql 6 25. November 16:30 Test
-rw-rw-r-- 1 mysql mysql 0 25. November 16:30 test.txt

Diese Standardberechtigungswerte werden mithilfe der Umask-Einstellung berechnet.

Prinzip

Linux verwendet die umask-Standardberechtigungen, um allen neu erstellten Dateien und Verzeichnissen anfängliche Berechtigungen zuzuweisen. Wie kennen wir also den Wert der Umask-Standardberechtigung? Verwenden Sie einfach den Befehl umask:

1. umask-Wert

[root@zaishu ~]# umask
0022

[mysql@zaishu ~]$ umask
0002

#Der Standardwert für den Root-Benutzer ist 0022 und der Standardwert für den normalen Benutzer ist 0002

Die Standardberechtigungen von umask bestehen tatsächlich aus 4 Oktalzahlen. Die erste Zahl stellt die speziellen Berechtigungen der Datei dar (SetUID, SetGID, Sticky BIT), die zuerst ignoriert werden. Die letzten drei Ziffern „022“ entsprechen ----w–w-.

2. Maximale Dateiverzeichnisberechtigungen

In Linux-Systemen sind die maximalen Standardberechtigungen für Dateien und Verzeichnisse unterschiedlich:

Für Dateien beträgt die maximale Standardberechtigung 666, also rw-rw-rw-. x ist die maximale Dateiberechtigung. Sie wird beim Erstellen einer neuen Datei nicht vergeben und kann nur manuell vom Benutzer gewährt werden.

Für Verzeichnisse beträgt die maximale Standardberechtigung 777, also rwxrwxrwx.

3. Konventionelle Berechnungen

Die anfänglichen Berechtigungen für Dateien und Verzeichnisse werden wie folgt berechnet:

Die anfänglichen Berechtigungen einer Datei (oder eines Verzeichnisses) = die maximalen Standardberechtigungen der Datei (oder des Verzeichnisses) - Umask-Berechtigungen

[mysql@zaishu ~]$ umask
0002
[mysql@zaishu ~]$ mkdir test
[mysql@zaishu ~]$ ll -d test
drwxrwxr-x 2 mysql mysql 6 Nov 26 10:50 test // Die Standardberechtigung des Verzeichnisses kann bis zu 777 betragen, 777-002 = 775

[mysql@zaishu ~]$ touch h.txt
[mysql@zaishu ~]$ ll h.txt 
-rw-rw-r-- 1 mysql mysql 0 Nov 26 10:52 h.txt // Maximale Dateiberechtigungen 666, 666-002 (normaler Benutzer) 666-002 = 664
[root@zaishu ~]# h2 berühren
[root@zaishu ~]# ls -l h2 
-rw-r--r-- 1 root root 0 Nov 26 10:53 h2 // Maximale Dateiberechtigungen 666, 666-002 (root) 666-022 = 644

4. Rigorose Berechnung

Beim Berechnen der anfänglichen Berechtigungen für eine Datei oder ein Verzeichnis ist es nicht streng, die maximalen Standardberechtigungen und die numerische Form der Umask-Berechtigungen direkt zur Subtraktion zu verwenden. Wenn beispielsweise der Standardberechtigungswert von umask 033 ist, wird die anfängliche Berechtigung der Datei in numerischer Form berechnet, 666-033=633. Wenn wir jedoch in alphabetischer Form rechnen, erhalten wir (rw-rw-rw-) - (----wx-wx) = (rw-r–r--), was in numerischer Form 644 entspricht.

Die Subtraktion bedeutet hier eigentlich "Maskierung", d. h. der Teil der maximalen Standardberechtigungen, der den Umask-Berechtigungen gemeinsam ist, wird durch die Subtraktionsoperation maskiert, und die verbleibenden "maximalen Standardberechtigungen" sind die anfänglichen Berechtigungen, die der Datei oder dem Verzeichnis schließlich erteilt werden.

Ändern des Umask-Werts

1. Temporäre Wirkung (aktuelle Sitzung)

Der Umask-Berechtigungswert kann direkt geändert werden:

[root@localhost ~]# umask 002
[root@localhost ~]# umask
0002
[root@localhost ~]# umask 033
[root@localhost ~]# umask
0033

Die auf diese Weise geänderte Umask ist nur temporär und verliert nach einem Neustart oder einer erneuten Anmeldung des Systems ihre Gültigkeit.

2. Dauerhafte Wirkung

Um die Änderungen dauerhaft zu machen, müssen Sie die entsprechende Umgebungsvariablen-Konfigurationsdatei /etc/profile ändern.

[root@zaishu~]# vim /etc/profile
...einige Teile ausgelassen...
wenn [ $UID -gt 199]&&[ "'id -gn'" = "'id -un'" ]; dann
    umask 002
    #Wenn die UID größer als 199 ist (normaler Benutzer), verwenden Sie diesen Umask-Wert, andernfalls
    umask 022
    #Wenn die UID kleiner als 199 ist (Superuser), verwenden Sie diesen Umask-Wert

Zusammenfassen

Dies ist das Ende dieses Artikels über das Verwendungsprinzip und die Berechnungsmethode des Befehls umask unter Linux. Weitere Informationen zur detaillierten Erläuterung des Befehls umask unter Linux finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die verwandten Artikel weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung zur Verwendung von umask unter Linux
  • Detailliertes Verständnis von umask in den neuen Linux-Dateiberechtigungseinstellungen

<<:  Fügen Sie beim Schreiben von HTML-Links immer Schrägstriche zu Unterordnern hinzu, um HTTP-Anfragen zu reduzieren

>>:  CSS3-Zeitleistenanimation

Artikel empfehlen

MySQL bedingte Abfrage und/oder Verwendung und Priorität Beispielanalyse

Dieser Artikel veranschaulicht anhand von Beispie...

JS realisiert den Front-End-Paging-Effekt

In diesem Artikelbeispiel wird der spezifische JS...

So erstellen Sie PHP7 mit einem benutzerdefinierten Docker-Image

Führen Sie zunächst eine einfache Docker-Installa...

Zusammenfassung der Verwendung von Element-Formularelementen

Es gibt viele Formularelemente. Hier ist eine kur...

Docker View-Prozess, Speicher und Cup-Verbrauch

Docker-Ansichtsprozess, Speicher, Cup-Verbrauch S...

JavaScript implementiert den Div-Maus-Drag-Effekt

In diesem Artikel wird der spezifische Code für J...

Detaillierte Diskussion der Unterschiede zwischen Schleifen in JavaScript

Inhaltsverzeichnis Vorwort Aufzählbare Eigenschaf...

Starten Sie eine lokale Kubernetes-Umgebung mit Kind und Docker

einführen Haben Sie schon einmal einen ganzen Tag...

Detaillierte Erklärung von :key in VUE v-for

Wenn der Schlüssel nicht zum v-for-Tag hinzugefüg...

Vue3-Kompilierungsprozess - Quellcodeanalyse

Vorwort: Vue3 ist schon seit langem verfügbar. Vo...

So installieren Sie nginx unter Linux

Nginx wurde in der Programmiersprache C entwickel...

Detaillierte Verwendung der MySQL-Funktionen row_number() und over()

Syntaxformat: row_number() über (Partition durch ...