Linux Grundlegende Dateiattribute

Das Linux-System ist ein typisches Mehrbenutzersystem; verschiedene Benutzer haben unterschiedliche Status und unterschiedliche Berechtigungen.

Um die Sicherheit des Systems zu schützen, hat das Linux-System unterschiedliche Regelungen für die Berechtigungen verschiedener Benutzer zum Zugriff auf dieselbe Datei (einschließlich Verzeichnisdateien).

In Linux verwenden wir normalerweise die folgenden zwei Befehle, um den Eigentümer und die Berechtigungen einer Datei oder eines Verzeichnisses zu ändern:

  • chown (Besitzer ändern): Ändert den Eigentümer und die Gruppe.
  • chmod (Modus ändern): Ändert die Benutzerberechtigungen.

In der folgenden Abbildung wird chown verwendet, um den Benutzer zu autorisieren, und chmod wird verwendet, um die Berechtigung des Benutzers zum Öffnen der Tür festzulegen.

In Linux können wirlloderls –lals Befehl verwenden, um die Attribute einer Datei sowie den Benutzer und die Gruppe, zu denen die Datei gehört, anzuzeigen, zum Beispiel:

[root@www /]# ls -l
total 64
dr-xr-xr-x   2 root root 4096 Dec 14  2012 bin
dr-xr-xr-x   4 root root 4096 Apr 19  2012 boot
……

Im Beispiel,binDas erste Attribut der Datei wird durchdangegeben.dUnter Linux bedeutet dies, dass die Datei eine Verzeichnisdatei ist.

Unter Linux gibt das erste Zeichen an, ob die Datei ein Verzeichnis, eine Datei oder eine Verknüpfungsdatei usw. ist.

  • Wenn esdist, dann ist es ein Verzeichnis
  • Wenn es-ist, dann ist es eine Datei;
  • Wenn eslist, dann stellt es eine Verknüpfungsdatei dar;
  • Wenn esbist, dann stellt es unter den Gerätedateien ein Speicherschnittstellengerät (Gerät mit wahlfreiem Zugriff) dar;
  • Wenn escist, dann stellt es unter den Gerätedateien ein serielles Schnittstellengerät dar, wie z. B. eine Tastatur oder Maus (Gerät zum einmaligen Lesen).

In den folgenden Zeichen werden Dreiergruppen verwendet, und alle sindrwxKombinationen der drei Parameter. Darunter stehtrfür lesbar (read),wsteht für schreibbar (write),xsteht für ausführbar (execute). Beachten Sie, dass sich die Positionen dieser drei Berechtigungen nicht ändern. Wenn keine Berechtigung vorhanden ist, steht nur ein Minuszeichen-.

Die Attribute jeder Datei werden durch die ersten 10 Zeichen im linken Teil bestimmt (wie unten gezeigt).

363003_1227493859FdXT

Von links nach rechts werden0-9diese Zahlen zur Darstellung verwendet.

Nr.0Die Ziffer bestimmt den Dateityp, und die1-3Ziffern bestimmen die Berechtigungen, die der Eigentümer (der Besitzer der Datei) an der Datei hat.

Die Bits 4-6 bestimmen die Berechtigungen, die die Gruppe (Benutzer in derselben Gruppe wie der Eigentümer) für die Datei hat, und die Bits 7-9 bestimmen die Berechtigungen, die andere Benutzer für die Datei haben.

Unter ihnen gibt die1、4、7Ziffer die Leseberechtigung an. Wenn sie durch dasrZeichen angegeben wird, dann gibt es Leseberechtigung; wenn sie durch das-Zeichen angegeben wird, dann gibt es keine Leseberechtigung;

Nr.2、5、8Ziffer gibt die Schreibberechtigung an. Wenn sie durch daswZeichen angegeben wird, dann besteht Schreibberechtigung; wenn sie durch das-Zeichen angegeben wird, dann besteht keine Schreibberechtigung; die3、6、9Ziffer gibt die Ausführungsberechtigung an. Wenn sie durch dasxZeichen angegeben wird, dann besteht Ausführungsberechtigung; wenn sie durch das-Zeichen angegeben wird, dann besteht keine Ausführungsberechtigung.


Linux-Dateieigentümer und -gruppe

[root@www /]# ls -l
total 64
drwxr-xr-x 2 root  root  4096 Feb 15 14:46 cron
drwxr-xr-x 3 mysql mysql 4096 Apr 21  2014 mysql
……

Eine Datei hat immer einen bestimmten Eigentümer, das heißt den Benutzer, dem die Datei gehört.

Gleichzeitig werden im Linux-System Benutzer nach Gruppen klassifiziert, und ein Benutzer gehört zu einer oder mehreren Gruppen.

Benutzer außer dem Dateieigentümer lassen sich weiter in Gruppenbenutzer, die derselben Gruppe wie die Gruppe der Datei angehören, und andere Benutzer unterteilen.

Daher legt das Linux-System unterschiedliche Dateizugriffsberechtigungen basierend auf dem Dateieigentümer, Benutzern in derselben Gruppe wie der Dateieigentümer und anderen Benutzern fest.

Im obigen Beispiel ist die Datei mysql eine Verzeichnisdatei; sowohl der Eigentümer als auch die Gruppe sind mysql. Der Eigentümer hat Lese-, Schreib- und Ausführungsberechtigungen; andere Benutzer in derselben Gruppe wie der Eigentümer haben Lese- und Ausführungsberechtigungen; andere Benutzer haben ebenfalls Lese- und Ausführungsberechtigungen.

Für den root-Benutzer gelten Dateiberechtigungen im Allgemeinen nicht.


Dateiattribute ändern

1. chgrp: Dateigruppe ändern

Syntax:

chgrp [-R] 属组名 文件名

Parameteroptionen

  • -R: Die Dateigruppe rekursiv ändern. Das heißt, wenn beim Ändern der Gruppe einer Verzeichnisdatei der-RParameter hinzugefügt wird, wird auch die Gruppe aller Dateien unter diesem Verzeichnis geändert.

2. chown: Dateieigentümer (Eigentümer) ändern und gleichzeitig die Dateigruppe ändern.

Syntax:

chown [–R] 所有者 文件名
chown [-R] 所有者:属组名 文件名

Wechseln Sie in das Verzeichnis /root (~) und ändern Sie den Eigentümer von install.log zum Konto bin:

[root@www ~] cd ~
[root@www ~]# chown bin install.log
[root@www ~]# ls -l
-rw-r--r--  1 bin  users 68495 Jun 25 08:53 install.log

Ändern Sie den Eigentümer und die Gruppe von install.log zurück zu root:

[root@www ~]# chown root:root install.log
[root@www ~]# ls -l
-rw-r--r--  1 root root 68495 Jun 25 08:53 install.log

3. chmod: Die 9 Attribute der Datei ändern

Es gibt zwei Möglichkeiten, Linux-Dateiattribute festzulegen: eine numerisch, die andere symbolisch.

Die grundlegenden Berechtigungen einer Linux-Datei sind neun, nämlichEigentümer/Gruppe/AndereJede der drei Identitäten hat ihre eigenenLesen/Schreiben/AusführenBerechtigungen.

Zunächst ein Rückblick auf die gerade oben erwähnten Daten: Die Berechtigungszeichen der Datei sind:-rwxrwxrwxDiese neun Berechtigungen sind in Dreiergruppen zusammengefasst! Unter ihnen können wir Zahlen verwenden, um jede Berechtigung darzustellen. Die Punktevergleichstabelle für jede Berechtigung lautet wie folgt:

  • r:4
  • w:2
  • x:1

Die Punktzahlen der drei Berechtigungen (r/w/x) für jede Identität (Eigentümer/Gruppe/Andere) müssen addiert werden. Zum Beispiel, wenn die Berechtigung:-rwxrwx---lautet, ist die Punktzahl:

  • Eigentümer = rwx = 4+2+1 = 7
  • Gruppe = rwx = 4+2+1 = 7
  • Andere = --- = 0+0+0 = 0

Wenn wir also später Berechtigungsänderungen festlegen, ist die Berechtigungsnummer der Datei770. Die Syntax des chmod-Befehls zum Ändern von Berechtigungen lautet wie folgt:

 chmod [-R] xyz 文件或目录

Optionen und Parameter:

  • xyz: Dies ist das gerade erwähnte numerische Berechtigungsattribut, das dierwx-Summe der Attributwerte ist.
  • -R: Führen Sie eine fortlaufende rekursive Änderung durch, und alle Dateien in Unterverzeichnissen werden ebenfalls geändert.

Wenn Sie zum Beispiel für.bashrcalle Berechtigungen dieser Datei auf aktiviert setzen möchten, lautet der Befehl wie folgt:

[root@www ~]# ls -al .bashrc
-rw-r--r--  1 root root 395 Jul  4 11:45 .bashrc
[root@www ~]# chmod 777 .bashrc
[root@www ~]# ls -al .bashrc
-rwxrwxrwx  1 root root 395 Jul  4 11:45 .bashrc

Was aber, wenn Sie die Berechtigungen auf-rwxr-xr--ändern möchten? Dann ergibt sich der Berechtigungswert [4+2+1][4+0+1][4+0+0]=754.

Symbolische Typänderungen von Dateiberechtigungen

Es gibt eine andere Möglichkeit, Berechtigungen zu ändern. Aus der vorherigen Einführung können wir entnehmen, dass es im Grunde neun Berechtigungen gibt, nämlich:

  • Benutzer: Benutzer
  • Gruppe: Gruppe
  • Andere: andere

Dann können wiru, g, overwenden, um die Berechtigungen der drei Identitäten darzustellen.

Außerdem repräsentiertarepresentsalle, das heißt alle Identitäten. Die Lese- und Schreibberechtigungen können alsr, w, xgeschrieben werden, was anhand der folgenden Tabelle eingesehen werden kann:

chmodu
g
o
a
+ (hinzufügen)
- (entfernen)
= (setzen)
r
w
x
Datei oder Verzeichnis

Wenn wir die Dateiberechtigungen auf-rwxr-xr--setzen müssen, können wirchmod u=rwx,g=rx,o=r filenameverwenden, um sie festzulegen:

#  touch test1    // 创建 test1 文件
# ls -al test1    // 查看 test1 默认权限
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1
# chmod u=rwx,g=rx,o=r  test1    // 修改 test1 权限
# ls -al test1
-rwxr-xr-- 1 root root 0 Nov 15 10:32 test1

Was ist, wenn Sie Berechtigungen entfernen möchten, ohne andere vorhandene Berechtigungen zu ändern? Um beispielsweise die Ausführungsberechtigung für alle zu entfernen, dann:

#  chmod  a-x test1
# ls -al test1
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1

Weitere Referenzinhalte

Weitere Erweiterungen