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

UNIX/Linux :Grundlagen der Zugriffssteuerungslisten (ACLs).

Warum brauchen wir ACLs?

Jede Datei auf jedem UNIX-Dateisystem hat einen Eigentümer/eine Gruppe und eine Reihe von Berechtigungen. Stellen Sie sich einen Fall vor, in dem mehrere Benutzer Zugriff auf dieselbe Datei benötigen und die Benutzer aus verschiedenen Gruppen stammen. Die File Access Control Lists (FACLs) oder einfach ACLs sind die Liste zusätzlicher Benutzer/Gruppen und deren Berechtigungen für die Datei.

Wie man erkennt, ob eine Datei ACL angehängt hat

Es ist sehr einfach zu erkennen, ob eine Datei eine angehängte ACL hat. ls -l Befehl würde eine Ausgabe wie unten gezeigt erzeugen.

# ls -l
-rw-r--r-+ 1   root   root  0  Sep  19  14:41  file

Beachten Sie das + Zeichen am Ende der Berechtigungen. Dies bestätigt, dass der Datei eine ACL angehängt ist.

ACLs anzeigen

Um detaillierte ACL-Informationen einer Datei anzuzeigen, verwenden Sie getfacl Befehl.

# getfacl /tmp/test
# file: test
# owner: root
# group: root
user::rw-
user:john:rw-
user:sam:rwx
group::r--
mask::rwx
other:---

Beachten Sie die 3 verschiedenen user: Linien. Die erste Zeile listet die Standard-Dateiberechtigungen des Eigentümers der Datei auf. Die 2 anderen Benutzerberechtigungen sind die individuellen Berechtigungen für die Benutzer john und sam. Das Maskenfeld hier gilt nur für die zusätzlichen Berechtigungen, die wir den Benutzern und Gruppen gegeben haben. Wenn die Maske auf rwx gesetzt ist, werden Lese-, Schreib- und Ausführungsberechtigungen weiteren Benutzern/Gruppen erteilt. Wenn die Maske auf r-x gesetzt ist, wird das Schreibrecht weiteren Benutzern/Gruppen nicht gewährt. Im Allgemeinen NICHT setze mask auf etwas anderes als rwx. Der Maskenwert wirkt sich nicht auf die standardmäßigen UNIX-Benutzer-/Gruppen-/Andere-Berechtigungen aus.

Datei ohne ACLs
Wenn Sie den getfacl-Befehl auf eine Datei ohne ACLs ausführen, werden die zusätzlichen „user:“-Zeilen und die „mask“-Zeile nicht angezeigt und die Standard-Dateiberechtigungen werden angezeigt.

# getfacl test
# file: test
# owner: root
# group: root
user::rw-
group::r--
other::r--

Erstellen und Verwalten von FACLs

Das setfacl Der Befehl wird verwendet, um ACL für die angegebene Datei festzulegen. Um dem Benutzer john Zugriff auf die Datei /tmp/test zu geben:

# setfacl -m u:john:rw /tmp/test

Die Option -m weist setfacl an, ACLs für die Datei(en) zu ändern, die in der Befehlszeile erwähnt werden. Anstelle von Benutzer john können wir eine Gruppe haben, die eine bestimmte Berechtigung für die Datei hat:

# setfacl -m g:accounts:rw /tmp/test

FACLs für mehrere Benutzer und Gruppen können auch mit einem einzigen Befehl festgelegt werden:

# setfacl -m u:john:rw,g:accounts:rwx /tmp/test

Standard-FACLs für Verzeichnisse

Standard-ACLs werden nur für Verzeichnisse erstellt. Wenn Sie Standard-ACLs für Verzeichnisse festlegen, wird allen Dateien, die in diesem Verzeichnis erstellt werden, diese Standard-FACL ebenfalls automatisch zugewiesen.

So erstellen Sie eine Standard-FACL für ein Verzeichnis:

# setfacl -m default:u:john:rw /accounts
# getfacl accounts/
# file: accounts/
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
default:user::rwx
default:user:john:rw-
default:group::r-x
default:mask::rwx
default:other::r-x

Erstellen Sie nun eine neue Datei im Kontenverzeichnis und listen Sie die FACL in der Datei auf:

# touch /accounts/test
# getfacl test
# file: test
# owner: root
# group: root
user::rw-
user:john:rw-
group::r-x			#effective:r--
mask::rw-
other::r--

FACLs entfernen

Verwenden Sie zum Entfernen von FACL den Befehl setfacl mit der Option -x :

# setfacl -x u:john /tmp/test

Der obige Befehl entfernt die ACL für den Benutzer john aus der Datei /tmp/test. Die ACLs für andere Benutzer/Gruppen, sofern vorhanden, bleiben unberührt.

Um alle einer Datei zugeordneten ACLs zu entfernen, verwenden Sie die Option -b mit setfacl :

# setfacl -b /tmp/test

Sichern der FACLs

Oft kopiert die Sicherungssoftware möglicherweise nicht die Metadaten, die sich auf die FACL in den Dateien beziehen. In diesem Fall sollten Sie die FACL-Informationen zu den Dateien sichern. Jetzt kann die FACL aller Dateien in einem Verzeichnis (einschließlich aller Unterverzeichnisse) in eine einzige Datei kopiert werden.

# cd /accounts
# getfacl -R * > accounts_facl        ( -R -> recursive )

Wiederherstellen der FACLs

Wenn Sie die Dateien im Verzeichnis /accounts wiederherstellen, müssen Sie die FACLs wiederherstellen, die den Dateien in diesem Verzeichnis zugeordnet sind. Verwenden Sie dazu die FACL-Sicherungsdatei accounts_facl zusammen mit der –Wiederherstellung Option :

# setfacl --restore=accounts_facl


Linux
  1. Zugriffskontrolllisten und externe Laufwerke unter Linux:Was Sie wissen müssen

  2. Überwachung des Linux-Dateizugriffs?

  3. So konfigurieren Sie ACL (Access Control Lists) im Linux-Dateisystem

  4. So prüfen Sie den Dateizugriff unter Linux

  5. gleichzeitiger zugriff auf datei linux

Eine Einführung in Linux Access Control Lists (ACLs)

Eingabe-/Ausgabeumleitung in Linux/Unix

Zugriffssteuerungslisten unter Linux erklärt

AWK-Befehl unter Linux/Unix

Linux gegen Unix

Grundlagen des Ethernet-Bonding unter Linux