Sichere Dateien/Verzeichnisse mithilfe von ACLs (Zugriffssteuerlisten) unter Linux

Sichere Dateien/Verzeichnisse mithilfe von ACLs (Zugriffssteuerlisten) unter Linux

Als ein System Administrator, Unsere erste Priorität besteht darin, Daten vor unbefugtem Zugriff zu schützen und zu sichern. Wir alle sind uns der Berechtigungen bewusst, die wir mit einigen hilfreichen Linux -Befehlen festgelegt haben, wie Chmod, Chown, chgrp… usw. Diese Standardberechtigungssätze haben jedoch eine gewisse Einschränkung und funktionieren manchmal möglicherweise nicht gemäß unseren Bedürfnissen. Zum Beispiel können wir keine verschiedenen Berechtigungssätze für verschiedene Benutzer im selben Verzeichnis oder der gleichen Datei einrichten. Daher, Zugriffskontrolllisten (ACLS) wurden implementiert.

Linux Access Control -Listen

Nehmen wir an, Sie haben drei Benutzer. 'Tecmint1',' 'Tecmint2' Und 'Tecmint3''. Jede gemeinsame Gruppe sagt 'ACL '. Benutzer 'Tecmint1"Willst das nur"Tecmint2'Benutzer kann lesen Und Zugang Dateien, die von 'gehören'Tecmint1'Und niemand sonst sollte Zugang dazu haben.

ACLS (Zugriffskontrolllisten) Ermöglicht uns den gleichen Trick. Diese ACLs ermöglichen es uns, Berechtigungen für a zu erteilen Benutzer, Gruppe und jede Gruppe von Benutzern, die sich nicht in der Gruppenliste eines Benutzers befinden.

Notiz: Gemäß der Redhat -Produktdokumentation bietet sie ACL -Unterstützung für Ext3 -Dateisysteme und exportierte NFS -Dateisysteme.

So überprüfen Sie die ACL -Unterstützung in Linux -Systemen

Bevor Sie voranschreiten.

1. Überprüfen Sie den Kernel auf ACL -Unterstützung

Führen Sie den folgenden Befehl aus, um den ACL -Support für das Dateisystem zu überprüfen und Pox_acl = y Option (wenn es vorhanden ist N anstatt Y, Dann bedeutet es, dass Kernel die ACL nicht unterstützt und neu kompiliert werden muss).

[[E -Mail geschützt] ~]# grep -i ACL /Boot /config* config_Ext4_fs_posix_acl = y Config_Reiserfs_FS_POSIX_ACL = y CONFIG_JFS_POSIX_ACL=y CONFIG_XFS_POSIX_ACL=y CONFIG_BTRFS_FS_POSIX_ACL=y CONFIG_FS_POSIX_ACL=y CONFIG_GENERIC_ACL=y CONFIG_TMPFS_POSIX_ACL=y CONFIG_NFS_V3_ACL=y CONFIG_NFSD_V2_ACL=y CONFIG_NFSD_V3_ACL=y CONFIG_NFS_ACL_SUPPORT=m CONFIG_CIFS_ACL=y CONFIG_9P_FS_POSIX_ACL=y

2. Überprüfen Sie die erforderlichen Pakete

Stellen Sie vor dem Spielen mit ACLS sicher, dass Sie Pakete installiert haben. Im Folgenden finden Sie die erforderlichen Pakete, die mit Verwendung installiert werden müssen Yum oder apt-get.

[[E-Mail geschützt] ~]# yum Installieren Sie NFS4-ACL-Tools ACL libacl [on Roter Hut basierte Systeme]
[[E-Mail geschützt] ~] $ sudo apt-Get Installieren Sie NFS4-ACL-Tools ACL [ON Debian basierte Systeme]

3. Überprüfen Sie das montierte Dateisystem für den ACLS -Support

Überprüfen Sie nun das montierte Dateisystem, unabhängig davon, ob es mit ACL -Option montiert ist oder nicht. Wir können benutzen 'montierenBefehl zum Überprüfen des gleichen wie unten gezeigt.

[[E -Mail geschützt] ~]# Mount | grep -i root /dev /mapper /fedora -root on /Type ext4 (RW, Relatime, Data = Ordered)

Aber in unserem Fall zeigt es standardmäßig nicht die ACL. Als nächstes haben wir also die Möglichkeit, die montierte Partition mithilfe der ACL. Bevor wir jedoch voranziehen, haben wir eine weitere Option, um sicherzustellen.

[[E -Mail geschützt] ~]# Tune2FS -l/Dev/Mapper/Fedora -Root | Grep ACL Standard -Mount -Optionen: user_xattr acl

In der obigen Ausgabe können Sie feststellen, dass die Standard -Mount -Option bereits Unterstützung für ACL hat. Eine andere Möglichkeit besteht darin, die Partition wie unten gezeigt neu zu machen.

[[E -Mail geschützt] ~]# Mount -o Remount, ACL /

Fügen Sie als nächstes den folgenden Eintrag zur Datei '/etc/fstab' hinzu, um sie dauerhaft zu gestalten.

/Dev/Mapper/Fedora-Root/ext4 Standards, ACL 1 1

Wiederum die Trennwand removieren.

[[E -Mail geschützt] ~]# montage -o remount /

4. Für NFS -Server

Auf dem NFS -Server werden ACLs vom Client -System verwendet, wenn das Dateisystem, das von NSF Server exportiert wird, ACL und ACLs unterstützt, von NFS -Clients gelesen werden kann.

Um ACLs auf NFS -Freigabe zu deaktivieren, müssen Sie die Option hinzufügen “no_acl" In '/etc/exportfs'Datei auf dem NFS -Server. Um es auf der NSF -Clientseite erneut zu deaktivierenno_aclOption während der Halterzeit.

So implementieren Sie die ACL -Unterstützung in Linux -Systemen

Es gibt zwei Arten von ACLS:

  1. Zugang zu ACLs: Zugriff auf ACLs werden verwendet, um Berechtigungen in einer Datei oder einem Verzeichnis zu gewähren.
  2. Standard ACLs: Standard -ACLs werden verwendet.

Unterschied zwischen Access ACL und Standard ACL:

  1. Standard -ACL kann nur auf Verzeichnisebene verwendet werden.
  2. Jedes Subverzeichnis oder eine Datei, die in diesem Verzeichnis erstellt wurde. Andererseits erbt eine Datei die Standard -ACLs als Zugriffs -ACLS.
  3. Wir benutzen “-D”Für die Einstellung von Standard -ACLs und Standard -ACLs sind optionale Optionen.
Vor dem Einstellen von Standard -ACLs

Um die Standard -ACLs für eine bestimmte Datei oder ein bestimmtes Verzeichnis zu bestimmen, verwenden Sie das ''getfacl' Befehl. Im folgenden Beispiel die getfacl wird verwendet, um die Standard -ACLs für einen Ordner zu erhaltenMusik''.

[[E-Mail Protected] ~] # getfacl music/ # Datei: Musik/ # Eigentümer: root # gruppe: root user :: rwx gruppe :: r-x Andere :: R-X Standard: User :: RWX Standard: Group :: R-X Standard: Andere :: rw-
Nach dem Einstellen von Standard -ACLs

Um die Standard -ACLs für eine bestimmte Datei oder ein bestimmtes Verzeichnis festzulegen, verwenden Sie das ''setfacl' Befehl. Im folgenden Beispiel die setfacl Der Befehl setzt eine neue ACLs (lesen Und ausführen) auf einem Ordner 'Musik'.

[[E -Mail geschützt] ~] # setfacl -m d: o: rx music/ [[E -Mail Protected] ~] # getfacl musik/ # Datei: Musik/ # Eigentümer: Root # Group: Root User :: RWX Group :: R -X Sonst :: R-X Standard: Benutzer :: RWX Standard: Gruppe :: R-X Standard: Andere :: R-X

So setzen Sie neue ACLs

Verwenden Sie das ''setfacl ' Befehl zum Einstellen oder Ändern in einer Datei oder einem Verzeichnis. Zum Beispiel geben lesen Und schreiben Berechtigungen an den Benutzer 'Tecmint1''.

# setfacl -m u: tecmint1: rw /tecmint1 /Beispiel

So sehen Sie ACLs

Verwenden Sie das ''getfaclBefehl zum Anzeigen von ACL in einer Datei oder einem Verzeichnis. Zum Beispiel, um ACL auf 'anzuzeigen'/tecmint1/Beispiel'Verwenden Sie den folgenden Befehl.

# getfacl/tecmint1/Beispiel # Datei: tecmint1/Beispiel/ # Eigentümer: Tecmint1 # Gruppe: Tecmint1 Benutzer :: rwx Benutzer: tecmint1: rwx user: tecmint2: r- gruppe :: rwx mask :: rwx Andere :::---

So entfernen Sie ACLs

Um ACL aus einer Datei/einem beliebigen Verzeichnis zu entfernen, verwenden wir X Und B Optionen wie unten gezeigt.

# setfacl -x ACL -Datei/Verzeichnis # Entfernen Sie nur angegebene ACL aus Datei/Verzeichnis. # setfaCl -b Datei/Verzeichnis #Remoching alle ACL aus Datei/Direcoty

Lassen Sie uns ACLs zum folgenden Szenario implementieren.

Zwei Benutzer (Tecmint1 Und Tecmint2), beide mit gemeinsamer sekundärer Gruppe namens 'ACL''. Wir werden ein Verzeichnis erstellen, das von 'gehört'Tecmint1'und wird das zur Verfügung stellen lesen Und ausführen Erlaubnis in diesem Verzeichnis an den Benutzer 'Tecmint2''.

Schritt 1: Erstellen Sie zwei Benutzer und entfernen Sie das Passwort von beiden

[[E -Mail geschützt] ~]# Für den Benutzer in Tecmint1 Tecmint2> do> userAdd $ user> passwd -d $ Benutzer> Kennwort für Benutzer tecmint1 abgeschlossen. PassWD: Erfolgt das Entfernen von Kennwort für den Benutzer Tecmint2. Passwd: Erfolg

Schritt 2: Erstellen Sie eine Gruppe und Benutzer für die sekundäre Gruppe.

[[E -Mail geschützt] ~]# GroupAdd ACL [[E -Mail geschützt] ~]# Usermod -g ACL tecmint1 [[E -Mail geschützt] ~]# Usermod -g ACL tecmint2

Schritt 3: Erstellen Sie ein Verzeichnis /Tecmint und Eigentümerschaft zu ändern an Tecmint1.

[[E -Mail geschützt] ~]# mkdir /tecmint1 [[E -Mail geschützt] ~]# chown tecmint1 /tecmint1 /
[[E-Mail geschützt] ~]# ls -ld /tecmint1 /drwxr-xr-x 2 tecmint1 root 4096 Apr 17 14:46 /tecmint1 /
[[E -Mail geschützt] ~]# getfacl /tecmint1 GetFacl: Entfernen der Führung '/' aus absoluten Pfadnamen # Datei: tecmint1 # Eigentümer: tecmint1 # Gruppe: root user :: rwx gruppe :: r-x other :: r-x

Schritt 4: Einloggen mit Tecmint1 und erstellen ein Verzeichnis in /Tecmint Ordner.

[[E -Mail geschützt] ~] $ su - Tecmint1 Letzte Login: Thu 17. April 14:49:16 IST 2014 auf PTS/4
[[E -Mail geschützt] ~] $ cd / tecmint1 / [[E -Mail geschützt] tecmint1] $ mkdir Beispiel
[[E-Mail geschützt] tecmint1] $ ll insgesamt 4 drwxrwxr-x 2 tecmint1 tecmint1 4096 Apr 17 14:50 Beispiel
[[E -Mail geschützt] tecmint1] $ whoami tecmint1

Schritt 5: Stellen Sie jetzt die ACL mit 'einsetfacl', so dass 'Tecmint1'wird alle haben rwx Berechtigungen, 'Tecmint2'wird nur haben lesen Erlaubnis auf 'Beispiel'Ordner und andere haben keine Berechtigungen.

$ setfacl -m u: tecmint1: rwx Beispiel/ $ setfacl -m u: tecmint2: r-- Beispiel/ $ setfacl -m Andere: --- :: rwx user: tecmint1: rwx user: tecmint2: r-- gruppe :: r-x mask :: rwx Andere ::---

Schritt 6: Melden Sie sich nun mit einem anderen Benutzer an i an i.e. ''Tecmint2"An einem anderen Terminal und Verzeichnis wechseln Sie zu"/tecmint1''. Versuchen Sie nun, den Inhalt mit 'anzuzeigen.'lsBefehl und dann versuchen Sie, das Verzeichnis zu ändern und den Unterschied wie unten zu sehen.

[[E -Mail geschützt] ~] $ su - Tecmint2 Letzte Login: Thu 17. April 15:03:31 IST 2014 auf PTS/5
[[E -Mail geschützt] ~] $ cd/ tecmint1/ [[E -Mail geschützt] tecmint1] $ ls -lr Beispiel/ Beispiel/: Gesamt 0
[[E -Mail geschützt] tecmint1] $ cd Beispiel/ -Bash: CD: Beispiel/: Erlaubnis abgelehnt 
[[E-Mail geschützt] tecmint1] $ getfacl Beispiel/ # Datei: Beispiel # Eigentümer: tecmint1 # gruppe: tecmint1 user :: rwx user: tecmint1: rwx user: tecmint2: r- gruppe :: rwx mask :: rwx Andere :::::---

Schritt 7: Jetzt geben Sie 'ausführen' Erlaubnis zu 'Tecmint2' An 'Beispiel'Ordner und dann verwenden 'CDBefehl, um den Effekt zu sehen. Jetzt 'Tecmint2„Haben Sie die Berechtigungen, das Verzeichnis anzusehen und zu ändern, aber keine Berechtigungen für das Schreiben von etwas haben.

[[E -Mail geschützt] tecmint1] $ setfacl -m u: tecmint2: r -X Beispiel/ [[E -Mail geschützt] tecmint1] $ getfacl Beispiel/ # Datei: Beispiel # Eigentümer: tecmint1 # gruppe: tecmint1 user: : Tecmint2: R-X-Gruppe :: rwx mask :: rwx Andere ::---
[[E -Mail geschützt] ~] $ su - Tecmint2 Letzter Anmeldung: Thu 17. April 15:09:49 IST 2014 auf PTS/5
[[E -Mail geschützt] ~] $ cd/ tecmint1/ [[E -Mail geschützt] tecmint1] $ cd Beispiel/ [[E -Mail geschützt] Beispiel] $ getfacl .
[[E -Mail geschützt] Beispiel] $ MKDIR -Test MKDIR: Verzeichnis "Test" kann nicht erstellen: Erlaubnis abgelehnt 
[[E -Mail geschützt] Beispiel] $ Touch Test Berührung: Kann 'Test' nicht berühren: Erlaubnis abgelehnt 

Notiz: Nach der Implementierung von ACL sehen Sie ein Extra '+'Zeichen für' ls -l 'Ausgang wie unten.

[[E-Mail geschützt] tecmint1]# ll insgesamt 4 drwxrwx ---+ 2 tecmint1 tecmint1 4096 Apr 17. 17:01 Beispiel

Referenzlinks

Dokumentation von ACL