Zum Inhalt springen

Linux/Zugriffskontrollliste: Unterschied zwischen den Versionen

Aus Foxwiki
K Textersetzung - „http://“ durch „https://“
 
(26 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''Zugriffskontrollliste''' - ACL (Access Control List)
'''Linux/Zugriffskontrollliste''' - [[ACL]] ([[Access Control List]]) unter [[Linux]]


== Beschreibung ==
== Beschreibung ==
Zeile 12: Zeile 12:
* Wird die ACL eines übergeordneten Verzeichnisses geändert, hat dies keinen Einfluss auf die darunterliegende Struktur
* Wird die ACL eines übergeordneten Verzeichnisses geändert, hat dies keinen Einfluss auf die darunterliegende Struktur


=== Vorteile von ACLs ===
=== Vorteile ===
; Traditionell sind für jedes Dateiobjekt unter Linux drei Berechtigungsgruppen definiert
; Traditionell sind für jedes Dateiobjekt unter Linux drei Berechtigungsgruppen definiert
* Diese Gruppen ent­halten die Berechtigungen zum Lesen (<tt>r</tt>), Schreiben (<tt>w</tt>) und Ausführen (<tt>x</tt>) für den Eigentümer der Datei, die Gruppe und andere Benutzer
* Diese Gruppen ent­halten die Berechtigungen zum Lesen (<tt>r</tt>), Schreiben (<tt>w</tt>) und Ausführen (<tt>x</tt>) für den Eigentümer der Datei, die Gruppe und andere Benutzer
Zeile 25: Zeile 25:
* Einige der angeschlossenen Arbeitsstationen können auch nach der Migration weiter unter Win­dows betrieben werden
* Einige der angeschlossenen Arbeitsstationen können auch nach der Migration weiter unter Win­dows betrieben werden
* Das Linux-System stellt den Windows-Clients Datei- und Druckdienste über Sam­ba zur Verfügung
* Das Linux-System stellt den Windows-Clients Datei- und Druckdienste über Sam­ba zur Verfügung
* Da Samba ACLs unterstützt, können Benutzerberechtigungen sowohl auf dem Linux-Server als auch über eine grafische Benutzeroberfläche unter Windows (nur Windows NT und höher) kon­figuriert werden
* Da Samba ACLs unterstützt, können Benutzerberechtigungen sowohl auf dem Linux-Server als auch über eine grafische Benutzeroberfläche unter Windows (nur Windows und höher) kon­figuriert werden
* Über '''winbindd''', einem Teil der Samba-Suite, ist es sogar möglich, Benutzern, die nur in der Windows-Domäne existieren und über kein Konto auf dem Linux-Server verfügen, Berechtigungen zu gewähren
* Über '''winbindd''', einem Teil der Samba-Suite, ist es sogar möglich, Benutzern, die nur in der Windows-Domäne existieren und über kein Konto auf dem Linux-Server verfügen, Berechtigungen zu gewähren


=== Definitionen ===
=== Definitionen ===
{| class="wikitable sortable"
{| class="wikitable big"
|-
|-
| | '''Benutzerklasse'''
| | '''Benutzerklasse'''
Zeile 50: Zeile 50:


== Installation ==
== Installation ==
== Syntax ==
sudo apt install acl
<syntaxhighlight lang="bash" highlight="1" line>


</syntaxhighlight>
=== Optionen ===
=== Parameter ===
=== Umgebungsvariablen ===
=== Exit-Status ===
== Anwendung ==
=== Problembehebung ===
== Konfiguration ==
== Konfiguration ==
=== Dateien ===
=== Dateien ===
<noinclude>
; /etc/fstab
== Anhang ==
=== Siehe auch ===
{{Special:PrefixIndex/{{BASEPAGENAME}}}}
==== Dokumentation ====


===== Man-Pages =====
===== Info-Pages =====
==== Links ====
===== Projekt =====
===== Weblinks =====
</noinclude>
= TMP =
== Vererbung von Gruppenrechten ==
Wie können Dateien oder Unterverzeichnisse unterhalb eines bestimmten ext3- oder ext4-Verzeichnisses auf einem Linux-System immer mit der gleichen Gruppe und (!) immer mit den gleichen Gruppen-Rechten erzeugt werden


=== Problemstellung ===
Das Problem der Vererbung von GIDs und Gruppenrechten tritt z.&nbsp;B.&nbsp;immer dann auf, wenn mehrere Entwickler einer Gruppe auf einem Verzeichnis arbeiten und neu erzeugte Dateien auch allen anderen Benutzern der Entwicklergruppe mit gleichen Rechten zugänglich gemacht werden sollen
* Und das, ohne dass man beim Erzeugen der neuen Dateien und Verzeichnisse spezielle Rechteänderungen über das "chmod"-Kommando vornehmen müsste


Offenbar ist das Thema weniger trivial, als man meinen möchte
<noinclude>
* Denn manchmal liest man in Tutorials, dass es genügen würde, das SetGID-Bit für das betroffene Directory zu setzen
* Das stimmt so leider nicht - und so mancher beginnt dann mit \1


zu experimentieren
== Anhang ==
* Was auch nicht hilft, weil das nur einmalige - wenn auch rekursive - Änderungen im betroffenen Zweig des Dateibaums herbeiführt
=== Siehe auch ===
* Das eigentliche Ziel ist aber, die richtige Gruppenzugehörigkeit und die notwendigen Rechte (meist Schreibrechte) schon beim Erzeugen einer Datei zu erhalten
{{Special:PrefixIndex/{{BASEPAGENAME}}/}}
 
=== Dokumentation ===
Liegen die Dateien auf einem Fremdrechner, so kann man eine Lösung über Samba erreichen
* Wir wollen hier aber eine native Lösung für beschreiben
 
Die richtige Antwort auf dieses Problem ist eine Kombination aus ACLs und dem SetGID-Bit
 
=== Vorgehen ===
Wir nehmen zwei User eines Systems - "alpha" (uid 1001; dieser User wird der Entwicklunsgleiter) und "beta" (uid 1002)
* Beide seine Mitglieder der Gruppe "users" (gid 100)
* umask habe den Standardwert
umask 022
 
; Was ist nun zu tun?
'''Schritt 1: Anlegen einer gemeinsamen Usergruppe '''Als root: Anlegen einer neuen Gruppe "entwickler" (gid: 101) und Zuordnen der beiden User zu dieser Gruppe. (Unter Opensuse z.&nbsp;B.&nbsp;mit Hilfe von Yast; ansonsten mit "groupadd" und "usermod -A" - siehe die man-Seiten)
 
'''Schritt 2: Check, ob ACLs für das Filesystem aktiviert sind'''Als root: Prüfe, ob das Filesystems, in dem das Verzeichnis für die Gruppenarbeit angelegt wird, mit der option "acl" gemounted wird
* In der Datei "/etc/fstab" sollte sich dafür ein Eintrag der Form
 
/dev/myFileSystem /myMountPoint ext4 acl,user_xattr 1 2
 
finden. "myFileSystem" steht hier für das betroffene Filesystem. "/myMountPoint" steht dagegegen für das Verzeichnis, auf dem das Filesystem gemounted wird
* Entscheidend ist die Option "acl"
 
'''Schritt 3: Anlegen des Verzeichnisses für die gemeinsame Entwicklungsarbeit'''Als root oder Entwicklungsleiter "alpha": Anlegen des Arbeitsverzeichnisses, unter dem die gemeinsame Projektarbeit vor sich gehen soll
mkdir /myMountPoint/Entwicklung
 
Danach Ändern der Gruppe und der Rechte
chgrp entwicklung /myMountPoint/Entwicklung
chmod 775 /myMountPoint/Entwicklung


'''Schritt 4: Setzen des SetGID-Bit'''Als Entwicklungsleiter "alpha":
; Man-Page
chmod g+s /myMountPoint/Entwicklung
# [[getfacl]](1)
# [[acl]](5)
# [[setfacl]](1)


Von nun an erben alle Verzeichnisse und Dateien, die unterhalb des Verzeichnisses "/myMountPoint/Entwicklung" angelegt werden, die die Gruppenzugehörigkeit zur Gruppe "entwicklung"
;Info-Page
 
=== Links ===
'''Schritt 5: Setzen der ACL-Maske'''Als Entwicklungsleiter "alpha":
==== Projekt ====
cd /myMountPoint4
==== Weblinks ====
setfacl -m m::rwx Entwicklung
 
Diese Maske setzt die maximal möglichen Rechte für das Verzeichnis "Entwicklung"
 
'''Schritt 6: Setzen der Default-Rechte für künftige Dateien und Unterverzeichnisse'''Als Entwicklungsleiter "alpha":
 
cd /myMountPoint
setfacl -dm g:entwicklung:rwx Entwicklung
 
'''Schritt 7: Prüfen der Rechte für neue Dateien und Unterverzeichnisse'''Als Gruppenmitglied "beta":
cd /myMountPoint/Entwicklung
touch test
ls -l
-rw-rw-r--+ 1 beta entwicklung 0 20. Jul 20:18 test
 
mkdir testdir
ls -l
drwxrwsr-x+ 2 beta entwicklung 4096 20. Jul 21:20 testdir
 
touch testdir/test2
ls -l testdir
-rw-rw-r--+ 1 beta entwicklung 0 20. Jul 21:22 test2
 
== Links ==
=== Intern ===
=== Weblinks ===
# https://wiki.ubuntuusers.de/ACL/
# https://wiki.ubuntuusers.de/ACL/
# http://wiki.ubuntuusers.de/chmod
# https://wiki.ubuntuusers.de/chmod
# http://wiki.ubuntuusers.de/ACL
# https://wiki.ubuntuusers.de/ACL
# http://acl.bestbits.at
# https://acl.bestbits.at
# Manualpages für '''getfacl(1)''', '''acl(5)''' und '''setfacl(1)'''


[[Kategorie:Linux/Zugriffsrechte]]
[[Kategorie:Linux/Zugriffsrechte]]
</noinclude>

Aktuelle Version vom 7. April 2025, 14:41 Uhr

Linux/Zugriffskontrollliste - ACL (Access Control List) unter Linux

Beschreibung

Erweiterung der UNIX-Zugriffssteuerung

Bei Access Control Lists lassen sich Zugriffsrechte spezifisch für einzelne Benutzer zuteilen oder verbieten

  • Als erstes Unix unterstützte HP-UX dieses Modell der erweiterten Zugriffssteuerung
  • Mittlerweile bieten auch Linux, FreeBSD (TrustedBSD) und Solaris (TrustedSolaris) native Unterstützung für ACLs
  • Unter Linux unterstützen dabei die Dateisysteme ext2, ext3, JFS, XFS und ReiserFS ACLs vollständig
  • Mit der KDE-Version 3.5 steht auch der Dateimanager Konqueror mit nativer ACL-Unterstützung zur Verfü­gung
  • Für den GNOME-Desktop beherrscht der Dateimanager Nautilus seit Version 2.16 nativ ACLs
  • ACLs werden in Linux statisch vererbt, d. h. die Berechtigungen pflanzen sich in neu angelegte Unterverzeichnis­se und Dateien je nach Bedarf fort
  • Wird die ACL eines übergeordneten Verzeichnisses geändert, hat dies keinen Einfluss auf die darunterliegende Struktur

Vorteile

Traditionell sind für jedes Dateiobjekt unter Linux drei Berechtigungsgruppen definiert
  • Diese Gruppen ent­halten die Berechtigungen zum Lesen (r), Schreiben (w) und Ausführen (x) für den Eigentümer der Datei, die Gruppe und andere Benutzer
  • Zusätzlich können noch die bit für set user id, set group id und das sticky-Bit gesetzt werden
  • Dieses schlanke Konzept ist für die meisten in der Praxis auftretenden Fälle völ­lig ausreichend
  • Für komplexere Szenarien oder erweiterte Anwendungen mussten Systemadministratoren früher eine Reihe von Tricks anwenden, um die Einschränkungen des traditionellen Berechtigungskonzepts zu umgehen
  • ACLs können als Erweiterung des traditionellen Berechtigungskonzepts verwendet werden
  • Sie ermögli­chen es, einzelnen Benutzern oder Gruppen, bei denen es sich nicht um den ursprünglichen Eigentümer oder die ursprüngliche Eigentümergruppe handelt, Berechtigungen zuzuweisen
  • ACLs sind eine Funktion des Linux-Kernels und werden derzeit von ReiserFS, Ext2, Ext3, JFS und XFS unterstützt
  • Mithilfe von ACLs können komplexe Szenarien umgesetzt werden, ohne dass auf Anwendungsebene komplexe Berechti­gungsmodelle implementiert werden müssen
  • Die Vorzüge von ACLs zeigen sich, wenn Sie einen Windows-Server durch einen Linux-Server ersetzen möchten
  • Einige der angeschlossenen Arbeitsstationen können auch nach der Migration weiter unter Win­dows betrieben werden
  • Das Linux-System stellt den Windows-Clients Datei- und Druckdienste über Sam­ba zur Verfügung
  • Da Samba ACLs unterstützt, können Benutzerberechtigungen sowohl auf dem Linux-Server als auch über eine grafische Benutzeroberfläche unter Windows (nur Windows und höher) kon­figuriert werden
  • Über winbindd, einem Teil der Samba-Suite, ist es sogar möglich, Benutzern, die nur in der Windows-Domäne existieren und über kein Konto auf dem Linux-Server verfügen, Berechtigungen zu gewähren

Definitionen

Benutzerklasse Das traditionelle POSIX-Berechtigungskonzept verwendet drei Klassen von Benutzern für das Zu­weisen von Berechtigungen im Dateisystem: den Eigentümer (owner), die Eigentümergruppe (owning group) und andere Benutzer (other)
  • Pro Benutzerklasse können jeweils die drei Berech­tigungsbit zum Lesen (r), Schreiben (w) und Ausführen (x) gesetzt werden
Zugriffs-ACL Die Zugriffsberechtigungen für Benutzer und Gruppen auf beliebige Dateisystemobjekte (Dateien und Verzeichnisse) werden über Access ACLs (Zugriffs-ACLs) festgelegt
Standard-ACL Standard-ACLs können nur auf Verzeichnisse angewandt werden
  • Diese legen fest, welche Be­rechtigungen ein Dateisystemobjekt übernimmt, wenn das Objekt von seinem übergeordneten Verzeichnis erstellt wird
ACL-Eintrag Jede ACL besteht aus mehreren ACL-Einträgen
  • Ein ACL-Eintrag enthält einen Typ, einen Be­zeichner für den Benutzer oder die Gruppe, auf den bzw. die sich der Eintrag bezieht, und Be­rechtigungen
  • Für einige Eintragstypen ist der Bezeichner für die Gruppe oder die Benutzer nicht definiert

Installation

sudo apt install acl

Konfiguration

Dateien

/etc/fstab



Anhang

Siehe auch

Dokumentation

Man-Page
  1. getfacl(1)
  2. acl(5)
  3. setfacl(1)
Info-Page

Links

Projekt

Weblinks

  1. https://wiki.ubuntuusers.de/ACL/
  2. https://wiki.ubuntuusers.de/chmod
  3. https://wiki.ubuntuusers.de/ACL
  4. https://acl.bestbits.at