So setzen Sie Zugriffskontrolllisten (ACL) und Festplattenkontingents für Benutzer und Gruppen

So setzen Sie Zugriffskontrolllisten (ACL) und Festplattenkontingents für Benutzer und Gruppen

Zugriffskontrolllisten (auch als ACLS bezeichnet) sind eine Funktion des Linux-Kernels, mit dem feinkörnige Zugriffsrechte für Dateien und Verzeichnisse definiert werden können Ugo/rwx Berechtigungen.

Zum Beispiel der Standard Ugo/rwx Berechtigungen ermöglichen es nicht, unterschiedliche Berechtigungen für verschiedene einzelne Benutzer oder Gruppen festzulegen. Mit ACLS ist dies relativ einfach, wie wir in diesem Artikel sehen werden.

Überprüfen Sie die Kompatibilität des Dateisystems mit ACLs

Um sicherzustellen, dass Ihre Dateisysteme derzeit ACLs unterstützen, sollten Sie überprüfen, ob sie mit der ACL -Option montiert wurden. Um das zu tun, werden wir verwenden Tune2fs Für Ext2/3/4 -Dateisysteme wie unten angegeben. Ersetzen /dev/sda1 Mit dem Gerät- oder Dateisystem, das Sie überprüfen möchten:

# Tune2FS -l /dev /sda1 | Grep "Standard -Mount -Optionen:" 

Notiz: Mit Xfs, Zugriffskontrolllisten werden außerhalb der Box unterstützt.

Im Folgenden ext4 Dateisystem können wir feststellen, dass ACLs für die Aktivierung der /dev/xvda2:

# Tune2FS -l /dev /xvda2 | Grep "Standard -Mount -Optionen:" 
Überprüfen Sie die Aktivierung von ACL auf Linux -Dateisystem aktiviert

Wenn der obige Befehl nicht angibt, dass das Dateisystem mit Unterstützung für ACLs montiert wurde, ist es höchstwahrscheinlich auf das zurückzuführen Noacl Option, vorhanden zu sein in /etc/fstab.

In diesem Fall entfernen Sie es, montieren Sie das Dateisystem und montieren Sie es dann erneut oder starten Sie Ihr System einfach neu, nachdem Sie die Änderungen auf gespeichert haben /etc/fstab.

Einführung von ACLs in Linux

Um zu veranschaulichen, wie ACLs funktionieren, werden wir eine Gruppe namens verwenden Entwickler und Benutzer hinzufügen Walter White Und Saulgoodman (Ja, ich bin ein Breaking Bad Fan!) dazu.:

# GroupAdd Developers # UserAdd Walterwhite # UserAdd Saulgoodman # Usermod -a -g -Entwickler Walterwhite # Usmod -a -g -Entwickler Saulgoodman 

Bevor wir fortfahren, überprüfen wir, ob beide Benutzer zur Entwicklergruppe hinzugefügt wurden:

# ID Walterwhite # id saulgoodman 
Suchen Sie die Benutzer -ID unter Linux

Lassen Sie uns nun ein Verzeichnis namens erstellen prüfen In /mnt, und eine Datei mit dem Namen ACL.txt innen (/mnt/test/acl.txt).

Dann werden wir den Gruppenbesitzer auf Entwickler und ändern Sie den Standard Ugo/rwx Berechtigungen rekursiv zu 770 (Erteilt die Berechtigungen, die sowohl dem Eigentümer als auch dem Gruppenbesitzer der Datei erteilt wurden, Lesen, Schreiben und Ausführen.)

# mkdir/mnt/test # touch/mnt/test/acl.TXT # CHGRP -R -Entwickler /mnt /test # chmod -r 770 /mnt /test /test 

Wie erwartet können Sie schreiben /mnt/test/acl.txt als Walter White oder Saulgoodman:

# su - Walterwhite # echo "Mein Name ist Walter White">/mnt/test/acl.txt # exit # su - saulgoodman # echo "Mein Name ist Saul Goodman" >>/mnt/test/acl.txt # beenden 
Überprüfen Sie die ACL -Regeln für Benutzer

So weit, ist es gut. Wir werden jedoch bald ein Problem sehen, wenn wir einen Zugriff auf einen Schreibzugriff gewähren müssen /mnt/test/acl.txt Für einen anderen Benutzer, der nicht in der Entwicklergruppe ist.

Standard Ugo/rwx Berechtigungen müssen erfordern, dass der neue Benutzer der Entwicklergruppe hinzugefügt wird, aber das würde ihm/ihr die gleichen Berechtigungen über alle Objekte geben, die der Gruppe gehören. Genau das sind die ACLs nützlich.

ACLs in Linux einstellen

Es gibt zwei Arten von ACLs: Zugang zu ACLs sind (die auf eine Datei oder ein Verzeichnis angewendet werden) und Standard (optional) ACLs, das kann nur auf ein Verzeichnis angewendet werden.

Wenn Dateien in einem Verzeichnis, in dem a Standard ACL Es wurde nicht eigene ACL festgelegt, sie erben die Standard -ACL ihres übergeordneten Verzeichnisses.

Lassen Sie uns den Benutzer geben Gacanepa Lesen und schreiben Zugriff auf /mnt/test/acl.txt. Bevor Sie dies tun, werfen wir einen Blick auf die aktuellen ACL -Einstellungen in diesem Verzeichnis mit:

# getfacl/mnt/test/acl.txt 

Ändern Sie dann die ACLs in der Datei, verwenden Sie u: gefolgt vom Benutzernamen und : rw Lesen / Schreibberechtigungen anzugeben:

# setfacl -m u: gacanepa: rw/mnt/test/acl.txt 

Und Renn getfacl in der Datei erneut zu vergleichen. Das folgende Bild zeigt das "Vor" Und "Nach":

# getfacl/mnt/test/acl.txt 
Stellen Sie ACL auf Linux -Benutzer ein

Als nächstes müssen wir anderen Berechtigungen auf der Ausführung geben /mnt/test Verzeichnis:

# chmod +x /mnt /test 

Beachten Sie, dass ein regulärer Benutzer, um auf den Inhalt eines Verzeichnisses zuzugreifen.

Benutzer Gacanepa sollte jetzt in der Lage sein, in die Datei zu schreiben. Wechseln Sie zu diesem Benutzerkonto und führen Sie den folgenden Befehl aus, um zu bestätigen:

# echo "Mein Name ist Gabriel Cánepa" >>/mnt/test/acl.txt 

Fügen Sie hinzu, um ein Standard -ACL auf ein Verzeichnis festzulegen (das sein Inhalt erben wird, sofern nicht anders überschrieben), hinzufügen D: Vor der Regel und geben Sie ein Verzeichnis anstelle eines Dateinamens an:

# setfacl -m d: o: r/mnt/test # getfacl/mnt/test/ 

Die obige ACL ermöglicht es Benutzern, die nicht in der Eigentümergruppe Lesezugriff auf den zukünftigen Inhalt des /mnt/test Verzeichnis. Beachten Sie den Unterschied in der Ausgabe von getfacl /mnt /test vor und nach der Änderung:

Setzen Sie die Standard -ACL auf Linux -Verzeichnis

Um eine bestimmte ACL zu entfernen, ersetzen Sie -M in den obigen Befehlen mit -X. Zum Beispiel,

# setfacl -x d: o /mnt /test 

Alternativ können Sie auch die verwenden -B Option zum Entfernen aller ACLs in einem Schritt:

# setfacl -b /mnt /test 

Weitere Informationen und Beispiele zur Verwendung von ACLs finden Sie unter Kapitel 10, Sektion 2, des OpenSuse -Sicherheitshandbuchs (auch kostenlos im PDF -Format zum Download verfügbar).

Legen Sie Linux -Festplattenquoten für Benutzer und Dateisysteme fest

Speicherplatz ist eine weitere Ressource, die sorgfältig verwendet und überwacht werden muss. Dazu können Quoten auf Dateisystembasis festgelegt werden, entweder für einzelne Benutzer oder für Gruppen.

Daher wird eine Grenze für die Disk -Nutzung gestellt, die für einen bestimmten Benutzer oder eine bestimmte Gruppe zulässig ist, und Sie können sicher sein, dass Ihre Festplatten von einem nachlässigen (oder malintierenden) Benutzer nicht in Kapazität gefüllt werden.

Das erste, was Sie tun müssen, um Quoten für ein Dateisystem zu aktivieren /etc/fstab.

Lassen Sie uns beispielsweise benutzerbasierte Quoten aktivieren /dev/vg00/vol_backups und gruppenbasierte Quoten auf /dev/vg00/vol_projects.

Notiere dass der Uuid wird verwendet, um jedes Dateisystem zu identifizieren.

UUID = F6D1EBA2-9AED-40EA-99AC-75F4BE05C05A /HOME /PROJECTE EXT4-Standardeinstellungen, Grpquota 0 0 UUID 

Beide Dateisysteme unmontalen und remount:

# Umount /Home /Projects # Umount /Home /Backups # Mount -o Remount /Home /Projects # Mount -o Remount /Home /Backups 

Überprüfen Sie dann, ob die Optionen USRquota und Grpquota in der Ausgabe des Mount vorhanden sind (siehe unten hervorgehoben):

# Mount | Grep Vg00 
Überprüfen Sie die Linux -Benutzerquote und Gruppenkontingent

Führen Sie schließlich die folgenden Befehle aus, um Quoten zu initialisieren und zu aktivieren:

# quotacheck -avugc # quotaon -vu /home /backups # quotaon -vg /home /projects 

Lassen Sie uns jetzt dem Benutzernamen und der Gruppe, die wir zuvor erwähnt haben. Sie können später Quoten deaktivieren mit Quoten.

Festlegen von Linux -Festplatten -Quoten

Beginnen wir zunächst ein ACL an /Home/Backups Für Benutzer Gacanepa, Das wird ihm Lesen, Schreiben und Ausführen von Berechtigungen in diesem Verzeichnis geben:

# setfacl -m u: gacanepa: rwx/home/backups/ 

Dann mit,

# edquota -u gacanepa 

Wir werden das weich machen Limit = 900 und das hart Limit = 1000 Blöcke (1024 Bytes/Block * 1000 Blöcke = 1024000 Bytes = 1 MB) der Speicherplatznutzung.

Wir können auch eine Grenze von platzieren 20 Und 25 als weich und hart beschränkt die Anzahl der Dateien, die dieser Benutzer erstellen kann.

Der obige Befehl startet den Texteditor ($ Editor) Mit einer temporären Datei, in der wir die zuvor genannten Grenzen festlegen können:

Linux -Festplattenkontingent für den Benutzer

Diese Einstellungen führen zu einer Warnung, die dem Benutzer angezeigt wird Gacanepa Als er entweder das erreicht hat 900-Block oder 20-Inode Grenzen für eine Standard -Gnade -Periode von 7 Tagen.

Wenn der Über Quote Die Situation wurde bis dahin nicht beseitigt (zum Beispiel durch Entfernen von Dateien), die Soft -Grenze wird zum harten Grenzwert und dieser Benutzer wird daran hindert, mehr Speicherplatz zu verwenden oder mehr Dateien zu erstellen.

Lassen Sie uns den Benutzer Gacanepa zum Testen versuchen, ein leeres zu erstellen 2 MB Datei benannt Test1 innen /Home/Backups:

# dd if =/dev/null von =/home/backups/test1 bs = 2m count = 1 # ls -lh/home/backups/test1 
Überprüfen Sie die Linux -Benutzerquote auf der Festplatte

Wie Sie sehen können, schlägt die Schreibvorgangsdatei aufgrund der überschrittenen Festplattenquote fehl. Da nur der erste 1000 kb werden auf die Festplatte geschrieben, das Ergebnis in diesem Fall wird höchstwahrscheinlich eine korrupte Datei sein.

In ähnlicher Weise können Sie eine ACL für die Entwicklergruppen erstellen, um Mitgliedern dieser Gruppe RWX Zugriff zu gewähren /Home/Projekte:

# setfacl -m G: Entwickler: rwx/home/projects/ 

Und setzen Sie die Quotengrenzen mit:

# EDQUOTA -G -Entwickler 

Genau wie mit dem Benutzer Gacanepa früher.

Die Gnadesperiode kann für eine beliebige Anzahl von Sekunden, Minuten, Stunden, Tagen, Wochen oder Monaten durch Ausführung angegeben werden.

# Edquota -t 

und aktualisieren die Werte unter Blockieren Sie die Gnadenzeit und Inode -Gnade Periode.

Im Gegensatz zur Block- oder Inode-Nutzung (die auf einem Benutzer oder einer Gruppenbase festgelegt sind) wird die Gnadezeit systemweit festgelegt.

Um Quoten zu melden, können Sie Kontingent verwenden -u [Benutzer] oder Quota -g [Gruppe] für eine schnelle Liste oder Repquota -v [/path/to/fileSystem] Für einen detaillierteren (ausführlicheren) und gut formatierten Bericht.

Natürlich möchten Sie ersetzen [Benutzer], [Gruppe], Und [/path/to/Dateisystem] mit bestimmten Benutzer- / Gruppennamen und Dateisystem, die Sie überprüfen möchten.

Zusammenfassung

In diesem Artikel haben wir erklärt, wie man festgelegt wird Zugriffskontrolllisten und Festplattenquoten für Benutzer und Gruppen. Verwenden Sie beides, können Sie die Berechtigungen und die Festplattennutzung effektiver verwalten.

Wenn Sie mehr über Quotas erfahren möchten, können Sie sich im Quota Mini-Howto im Linux-Dokumentationsprojekt beziehen.

Unnötig zu erwähnen, dass Sie sich auch darauf verlassen können, dass wir Fragen beantworten. Senden Sie sie einfach mit dem folgenden Kommentarformular ein und wir werden uns mehr als froh freuen, einen Blick darauf zu werfen.

Werden Sie ein Linux -zertifizierter Systemadministrator