Im letzten Artikel (RHCSA-Serie Teil 6) haben wir damit begonnen zu erklären, wie man lokale Systemspeicher einrichtet und konfiguriert, indem man parted und ssm verwendet.

Wir haben auch besprochen, wie man verschlüsselte Volumes mit einem Passwort während des Systemstarts erstellt und einbindet. Darüber hinaus haben wir Sie davor gewarnt, kritische Speicherverwaltungsvorgänge auf eingebundenen Dateisystemen durchzuführen. Mit diesem Gedanken werden wir nun die am häufigsten verwendeten Dateisystemformate in Red Hat Enterprise Linux 7 überprüfen und dann die Themen Einbinden, Verwenden und Aushängen von Netzdateisystemen (CIFS und NFS) manuell und automatisch behandeln, zusammen mit der Implementierung von Zugriffssteuerungslisten für Ihr System.
Voraussetzungen
Bevor Sie weitermachen, stellen Sie bitte sicher, dass Sie einen Samba-Server und einen NFS-Server zur Verfügung haben (beachten Sie, dass NFSv2 in RHEL 7 nicht mehr unterstützt wird).
Während dieses Leitfadens verwenden wir eine Maschine mit der IP 192.168.0.10, auf der beide Dienste als Server ausgeführt werden, und eine RHEL 7-Box als Client mit der IP-Adresse 192.168.0.18. Später im Artikel werden wir Ihnen mitteilen, welche Pakete Sie auf dem Client installieren müssen.
Dateisystemformate in RHEL 7
Beginnend mit RHEL 7 wurde XFS als das Standarddateisystem für alle Architekturen aufgrund seiner hohen Leistungsfähigkeit und Skalierbarkeit eingeführt. Es unterstützt derzeit eine maximale Dateisystemgröße von 500 TB gemäß den neuesten Tests, die von Red Hat und seinen Partnern für Mainstream-Hardware durchgeführt wurden.
Außerdem ermöglicht XFS standardmäßig die Verwendung von user_xattr (erweiterte Benutzerattribute) und acl (POSIX-Zugriffskontrolllisten), im Gegensatz zu ext3 oder ext4 (ext2 wird ab RHEL 7 als veraltet betrachtet), was bedeutet, dass Sie diese Optionen nicht explizit angeben müssen, weder auf der Befehlszeile noch in /etc/fstab, wenn Sie ein XFS-Dateisystem mounten (wenn Sie in diesem letzten Fall solche Optionen deaktivieren möchten, müssen Sie explizit no_acl und no_user_xattr verwenden).
Beachten Sie, dass erweiterte Benutzerattribute Dateien und Verzeichnissen zugewiesen werden können, um beliebige zusätzliche Informationen wie den MIME-Typ, den Zeichensatz oder die Codierung einer Datei zu speichern, während die Zugriffsberechtigungen für Benutzerattribute durch die regulären Dateiberechtigungsbits definiert sind.
Zugriffskontrolllisten
Als jeder Systemadministrator, ob Anfänger oder Experte, ist mit den regulären Zugriffsberechtigungen auf Dateien und Verzeichnisse vertraut, die bestimmte Rechte (lesen, schreiben und ausführen) für den Besitzer, die Gruppe und „die Welt“ (alle anderen) festlegen. Wenn Sie jedoch Ihr Gedächtnis ein wenig auffrischen müssen, können Sie sich gerne auf Teil 3 der RHCSA-Serie beziehen.
Da der Standard-ugo/rwx-Satz es nicht erlaubt, unterschiedliche Berechtigungen für verschiedene Benutzer zu konfigurieren, wurden ACLs eingeführt, um detailliertere Zugriffsrechte für Dateien und Verzeichnisse festzulegen als die durch reguläre Berechtigungen festgelegten.
Tatsächlich sind die durch ACLs definierten Berechtigungen eine Obermenge der durch die Dateiberechtigungsbits festgelegten Berechtigungen. Schauen wir uns an, wie sich all dies in der realen Welt umsetzen lässt.
1. Es gibt zwei Arten von ACLs: Zugriffs-ACLs, die auf eine bestimmte Datei oder ein Verzeichnis angewendet werden können, und Standard-ACLs, die nur auf ein Verzeichnis angewendet werden können. Wenn darin enthaltene Dateien keine ACL haben, erben sie die Standard-ACL ihres übergeordneten Verzeichnisses.
2. Zunächst können ACLs pro Benutzer, pro Gruppe oder pro Benutzer konfiguriert werden, der nicht zur Besitzergruppe einer Datei gehört.
3. ACLs werden mit setfacl festgelegt (und entfernt), jeweils mit den Optionen -m oder -x.
Zum Beispiel, lassen Sie uns eine Gruppe namens tecmint erstellen und die Benutzer johndoe und davenull hinzufügen:
# groupadd tecmint # useradd johndoe # useradd davenull # usermod -a -G tecmint johndoe # usermod -a -G tecmint davenull
Und lassen Sie uns überprüfen, dass beide Benutzer zur zusätzlichen Gruppe tecmint gehören:
# id johndoe # id davenull

Erstellen wir nun ein Verzeichnis namens playground innerhalb von /mnt und eine Datei namens testfile.txt darin. Wir werden den Gruppenbesitzer auf tecmint setzen und die Standardberechtigungen ugo/rwx auf 770 ändern (Lese-, Schreib- und Ausführungsberechtigungen für sowohl den Besitzer als auch den Gruppenbesitzer der Datei):
# mkdir /mnt/playground # touch /mnt/playground/testfile.txt # chmod 770 /mnt/playground/testfile.txt
Dann wechseln Sie zu Benutzer johndoe und davenull, in dieser Reihenfolge, und schreiben in die Datei:
echo "My name is John Doe" > /mnt/playground/testfile.txt echo "My name is Dave Null" >> /mnt/playground/testfile.txt
Bisher so gut. Lassen Sie uns nun Benutzer gacanepa in die Datei schreiben lassen – und die Schreiboperation wird fehlschlagen, was zu erwarten war.
Aber was ist, wenn wir tatsächlich möchten, dass Benutzer gacanepa (der kein Mitglied der Gruppe tecmint ist) Schreibberechtigungen auf /mnt/playground/testfile.txt hat? Das Erste, was Ihnen in den Sinn kommen könnte, ist dieses Benutzerkonto zur Gruppe tecmint hinzuzufügen. Aber das würde ihm Schreibberechtigungen für ALLE Dateien geben, bei denen das Schreibbit für die Gruppe gesetzt ist, und das wollen wir nicht. Wir möchten nur, dass er in der Lage ist, in /mnt/playground/testfile.txt zu schreiben.
# touch /mnt/playground/testfile.txt # chown :tecmint /mnt/playground/testfile.txt # chmod 777 /mnt/playground/testfile.txt # su johndoe $ echo "My name is John Doe" > /mnt/playground/testfile.txt $ su davenull $ echo "My name is Dave Null" >> /mnt/playground/testfile.txt $ su gacanepa $ echo "My name is Gabriel Canepa" >> /mnt/playground/testfile.txt

Geben Sie dem Benutzer gacanepa Lese- und Schreibzugriff auf /mnt/playground/testfile.txt.
Führen Sie als Root aus,
# setfacl -R -m u:gacanepa:rwx /mnt/playground
und Sie haben erfolgreich eine ACL hinzugefügt, die es gacanepa ermöglicht, in die Testdatei zu schreiben. Wechseln Sie dann zum Benutzer gacanepa und versuchen Sie erneut, in die Datei zu schreiben:
$ echo "My name is Gabriel Canepa" >> /mnt/playground/testfile.txt
Um die ACLs für eine bestimmte Datei oder Verzeichnis anzuzeigen, verwenden Sie getfacl:
# getfacl /mnt/playground/testfile.txt

Um einer Verzeichnis eine Standard-ACL zuzuweisen (die von dessen Inhalt übernommen wird, es sei denn, sie wird anderweitig überschrieben), fügen Sie vor der Regel ein d: hinzu und geben Sie anstelle eines Dateinamens ein Verzeichnis an:
# setfacl -m d:o:r /mnt/playground
Die oben genannte ACL ermöglicht es Benutzern, die nicht zur Besitzergruppe gehören, Lesezugriff auf die zukünftigen Inhalte des Verzeichnisses /mnt/playground zu haben. Beachten Sie den Unterschied in der Ausgabe von getfacl /mnt/playground vor und nach der Änderung:

Kapitel 20 im offiziellen RHEL 7 Storage Administration Guide bietet weitere ACL-Beispiele, und ich empfehle Ihnen dringend, einen Blick darauf zu werfen und ihn als Referenz griffbereit zu haben.
Source:
https://www.tecmint.com/rhcsa-exam-configure-acls-and-mount-nfs-samba-shares/