GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So machen Sie ein Benutzerkonto in CentOS/RHEL 7 schreibgeschützt

Frage :Wie erstelle ich ein Benutzerkonto, das nicht in eine Datei auf dem System schreiben kann? Mit anderen Worten, wie erstellt man ein schreibgeschütztes Benutzerkonto in CentOS/RHEL 7?

Linux bietet keine Klassifizierung von Konten auf Rollenebene. Die Zugriffsberechtigung wird auf der I-Node-Ebene gesteuert, was Berechtigungen für jede einzelne Datei oder jedes einzelne Verzeichnis separat impliziert.

Wenn wir das Problem etwas wiederholen dürfen, gibt es mindestens zwei Techniken, die die gewünschte Operation ergeben können. Anstatt in Begriffen des Benutzerkontos zu denken, denken Sie in Begriffen von Dateien und Verzeichnissen. Dies ermöglicht uns einige alternative Methoden, um das gleiche Ergebnis zu erzielen. Jeder der folgenden Punkte zeigt eine alternative Implementierung, die einen etwas anderen Schutz bietet, der in einigen Anwendungsfällen nützlich sein kann.

Erstellen Sie ein nicht privilegiertes, anonymes Konto

Jede Datei oder jedes Verzeichnis in Linux hat drei Sätze von Lese-/Schreib-/Ausführungsberechtigungen, jeweils einen für den Dateieigentümer, andere Benutzer in derselben Gruppe wie der ursprüngliche Eigentümer und alle anderen. Ein neues Konto kann mit einer eindeutigen Benutzer-ID und Gruppen-ID erstellt und dieses neue Konto als schreibgeschütztes Konto verwendet werden. Da das Konto keine Dateien außerhalb seines Heimatverzeichnisses besitzen würde, wären die einzigen Zugriffsberechtigungen die „anderen“ Berechtigungen, die normalerweise den Schreibzugriff auslassen.

# useradd -c 'Mostly R/O Account' roaccount

Das Roaccount wird eine eindeutige Benutzer-ID und Gruppen-ID zugewiesen, wodurch jede Datei außerhalb ihres Home-Verzeichnisses gezwungen wird, von den „anderen“ Zugriffsberechtigungen kontrolliert zu werden. Das Betriebssystem hat bereits ein Konto mit den geringsten Rechten, aber dieses Konto wird vom System besonders behandelt. Für die R/O-Nutzung wird ein separates Konto empfohlen.

Der Fehler in diesem Schema besteht darin, dass es darauf angewiesen ist, dass jede Datei und jedes Verzeichnis auf dem Server und dem Speicher seine „anderen“ Berechtigungen korrekt festgelegt hat. Dies kann manuell erfolgen oder indem die umask des erstellenden Prozesses auf mindestens 0002 gesetzt wird (was das Setzen der „anderen“ Schreibrechte blockiert).

Benachrichtigung erhalten, wenn bestimmte Dateien geschrieben werden.

Wenn das Ziel darin besteht, alle Dateien zu ermitteln, die von einem bestimmten Benutzer geschrieben wurden, kann das Tool auditctl nützlich sein. Auf den Write-Systemaufruf kann eine Überwachung eingestellt werden, die ausgelöst wird, wenn sie von einem bestimmten Benutzer ausgeführt wird. Zum Beispiel eine Einstellung:

# auditctl -a always,exit -S write -F auid=1000

würde einen Audit-Trail-Eintrag auslösen, wenn die Benutzer-ID 1000 in eine beliebige Datei schreibt. Das Audit-Trail-Subsystem ist ziemlich ausdrucksstark in den Bedingungen, die ausgedrückt werden können.

Weitere Dokumentation finden Sie auf der Manpage audit.rules.

# man audit.rules

Verwenden Sie Zugriffskontrolllisten (ACLs), um Berechtigungen außer Kraft zu setzen.

Einige Dateisystem-Handler unterstützen Zugriffskontrolllisten (ACL), die feinkörnigere Berechtigungen sind, als die Eigentümer/Gruppe/andere Abteilungen zulassen. Einzelne Dateien oder Verzeichnisse können eine ACL verwenden, um eine bestimmte Gruppe von Benutzern auszuwählen, die sich nicht unbedingt in derselben Gruppe befinden, und nur diesen Benutzern die gewünschten Dateizugriffsberechtigungen zu erteilen.

Zum Beispiel möchten wir BenutzerA, BenutzerB und BenutzerC nur Lesezugriff auf das Verzeichnis /secret-files/ und darunter geben. Wir können das so machen:

# setfacl -Rd -m u:userA:rx -m u:userB:rx -m u:userC:rx /secret-files
# setfacl -R  -m u:userA:rx -m u:userB:rx -m u:userC:rx /secret-files

Die erste Zeile legt eine Standard-ACL fest, die für alle neuen Dateien oder Verzeichnisse gilt, die in Zukunft unter /secret-files erstellt werden. Die zweite Datei wendet die ACL auf alle vorhandenen Inhalte im /secret-files-Baum und darunter an.

Weitere Einzelheiten zu dieser Funktion finden Sie auf der aclman-Seite.

# man acl


Cent OS
  1. So verkleinern Sie das Root-Dateisystem unter CentOS / RHEL 6

  2. So führen Sie rsyslog als Nicht-Root-Benutzer in CentOS/RHEL 7 aus

  3. So machen Sie CentOS/RHEL 7 FIPS 140-2-konform

  4. CentOS / RHEL:So fügen Sie eine Auslagerungsdatei hinzu

  5. So fügen Sie ein Gebietsschema unter CentOS/RHEL 8 hinzu

So aktivieren Sie Kdump auf RHEL 7 und CentOS 7

So booten Sie RHEL 7 / CentOS 7 Server im Einzelbenutzermodus

So booten Sie CentOS 8 / RHEL 8 Server im Einzelbenutzermodus

So installieren und verwenden Sie Fail2ban unter RHEL 8 / CentOS 8

So erstellen Sie einen Sudo-Benutzer in RHEL, CentOS, Rocky und AlmaLinux

So installieren Sie Parallels Plesk Panel auf CentOS &RHEL 8