Linux-Rechte (chown, chmod, SUID, GUID, Sticky Bit, ACL, umask)

Hallo an alle. Dies ist eine Übersetzung eines Artikels von RedHat RHCSA RHCE 7 RedHat Enterprise Linux 7 EX200 und EX300.

Von mir selbst: Ich hoffe, dass der Artikel nicht nur für Anfänger nützlich ist, sondern auch erfahreneren Administratoren hilft, ihr Wissen zu organisieren.

Also lass uns gehen.

Bild

Für den Zugriff auf Dateien unter Linux werden Berechtigungen verwendet. Diese Berechtigungen werden drei Objekten zugewiesen: einer Datei, einer Gruppe und einem anderen Objekt (dh allen anderen). In diesem Artikel erfahren Sie, wie Sie Berechtigungen anwenden.

Der Artikel beginnt mit einer Überprüfung der Grundkonzepte. Anschließend werden spezielle Berechtigungen und Zugriffssteuerungslisten (ACLs) erläutert. Am Ende dieses Artikels erfahren Sie, wie Sie Standardberechtigungen über umask konfigurieren und erweiterte Benutzerattribute verwalten.

Dateibesitzungsverwaltung


Bevor Sie über Berechtigungen sprechen, sollten Sie sich der Rolle des Eigentümers der Datei und des Verzeichnisses bewusst sein. Der Besitz von Dateien und Verzeichnissen ist für die Arbeit mit Berechtigungen von entscheidender Bedeutung. In diesem Abschnitt erfahren Sie zunächst, wie Sie den Eigentümer sehen können. Anschließend erfahren Sie, wie Sie den Gruppenbesitzer und -benutzer für Dateien und Verzeichnisse ändern.

Eigentümer einer Datei oder eines Verzeichnisses anzeigen


Unter Linux hat jede Datei und jedes Verzeichnis zwei Eigentümer: einen Benutzer und eine Gruppe.

Diese Eigentümer werden festgelegt, wenn die Datei oder das Verzeichnis erstellt wird. Der Benutzer, der die Datei erstellt, wird Eigentümer dieser Datei, und die primäre Gruppe, zu der derselbe Benutzer gehört, wird auch Eigentümer dieser Datei. Um festzustellen, ob Sie als Benutzer Zugriffsrechte auf eine Datei oder ein Verzeichnis haben, überprüft die Shell deren Besitz.

Dies geschieht in der folgenden Reihenfolge:

  1. Die Shell prüft, ob Sie die Datei besitzen, auf die Sie zugreifen möchten. Wenn Sie dieser Eigentümer sind, erhalten Sie Berechtigungen und die Shell hört auf zu prüfen.
  2. Wenn Sie die Datei nicht besitzen, prüft die Shell, ob Sie Mitglied einer Gruppe sind, die über Berechtigungen für diese Datei verfügt. Wenn Sie Mitglied dieser Gruppe sind, erhalten Sie Zugriff auf die Datei mit den für die Gruppe festgelegten Berechtigungen, und die Shell beendet die Überprüfung.
  3. Wenn Sie weder Benutzer noch Eigentümer der Gruppe sind, erhalten Sie die Rechte anderer Benutzer (Andere).

Um die aktuellen Eigentümerzuweisungen anzuzeigen, können Sie den Befehl ls -l verwenden . Dieser Befehl zeigt die Benutzer- und Eigentümergruppe an. Unten sehen Sie die Eigentümereinstellungen für Verzeichnisse im Verzeichnis / home.

[root@server1 home]# ls -l total 8 drwx------. 3 bob bob 74 Feb 6 10:13 bob drwx------. 3 caroline caroline 74 Feb 6 10:13 caroline drwx------. 3 fozia fozia 74 Feb 6 10:13 fozia drwx------. 3 lara lara 74 Feb 6 10:13 lara drwx------. 5 lisa lisa 4096 Feb 6 10:12 lisa drwx------. 14 user user 4096 Feb 5 10:35 user 

Mit dem Befehl ls können Sie den Eigentümer der Dateien in diesem Verzeichnis anzeigen. Manchmal kann es nützlich sein, eine Liste aller Dateien im System abzurufen, in denen der Benutzer oder die Gruppe als Eigentümer angegeben ist. Sie können find dafür verwenden . Zu diesem Zweck kann das Argument find -user verwendet werden. Der folgende Befehl zeigt beispielsweise alle Dateien an, für die der Benutzer linda als Eigentümer angegeben wurde:

 find / -user linda 

Sie können find auch verwenden, um nach Dateien zu suchen, in denen sie einer bestimmten Gruppe gehören.

Der folgende Befehl sucht beispielsweise nach allen Dateien, die zur Benutzergruppe gehören :

 find / -group users 

Eigentümerwechsel


Um Berechtigungen anzuwenden, müssen Sie zunächst das Eigentum berücksichtigen. Hierfür gibt es einen Chown-Befehl . Die Syntax dieses Befehls ist leicht zu verstehen:

 chown   

Mit dem folgenden Befehl wird beispielsweise der Eigentümer des Verzeichnisses / home / account in Benutzer linda geändert:

 chown linda /home/account 

Der Befehl chown verfügt über mehrere Optionen, von denen eine besonders nützlich ist: -R . Sie können sich vorstellen, was es tut, da diese Option auch für viele andere Teams verfügbar ist. Auf diese Weise können Sie den Eigentümer rekursiv festlegen, wodurch Sie den Eigentümer des aktuellen Verzeichnisses und alles darunter festlegen können. Der folgende Befehl ändert den Eigentümer für das Verzeichnis / home und alles darunter in lisa:

Jetzt sehen die Besitzer so aus:

 [root@localhost ~]# ls -l /home total 0 drwx------. 2 account account 62 Sep 25 21:41 account drwx------. 2 lisa lisa 62 Sep 25 21:42 lisa 

Ausführen:

 [root@localhost ~]# chown -R lisa /home/account [root@localhost ~]# 

Jetzt ist Lisa die Besitzerin des Kontoverzeichnisses geworden:

 [root@localhost ~]# ls -l /home total 0 drwx------. 2 lisa account 62 Sep 25 21:41 account drwx------. 2 lisa lisa 62 Sep 25 21:42 lisa 

Gruppeninhaberwechsel


Es gibt zwei Möglichkeiten, den Gruppenbesitz zu ändern. Sie können dies mit chown tun, aber es gibt einen speziellen Befehl namens chgrp , der die Arbeit erledigt. Wenn Sie den Befehl chown verwenden möchten, verwenden Sie . oder : vor dem Namen der Gruppe.

Der folgende Befehl ändert jeden Eigentümer der Gruppe / home / account in die Account-Gruppe:

 chown .account /home/account 

Sie können chown verwenden , um den Eigentümer eines Benutzers und / oder einer Gruppe auf verschiedene Arten zu ändern. Hier einige Beispiele:

  • chown lisa myfile1 setzt lisa auf myfile1.
  • chown lisa.sales myfile setzt den lisa-Benutzer auf den Eigentümer der myfile-Datei und die Verkaufsgruppe auf den Eigentümer derselben Datei.
  • chown lisa: sales myfile ist das gleiche wie der vorherige Befehl.
  • chown .sales myfile legt die Verkaufsgruppe als Eigentümer von myfile fest, ohne den Eigentümer des Benutzers zu ändern.
  • chown: sales myfile ist das gleiche wie der vorherige Befehl.

Mit dem Befehl chgrp können Sie den Gruppeneigentümer ändern. Betrachten Sie das folgende Beispiel, in dem Sie mit chgrp die Verkaufsgruppe als Eigentümer des Kontoverzeichnisses festlegen können:

 chgrp .sales /home/account 

Wie bei chown können Sie die Option -R mit chgrp verwenden und den Gruppenbesitzer auch rekursiv ändern.

Grundlegendes zum Standardeigentümer


Möglicherweise stellen Sie fest, dass beim Erstellen der Datei der Standardbesitz angewendet wird.
Der Benutzer, der die Datei erstellt, wird automatisch Eigentümer dieser Datei, und die Hauptgruppe dieses Benutzers wird automatisch Eigentümer dieser Datei. Dies ist normalerweise eine Gruppe, die in der Datei / etc / passwd als Hauptgruppe des Benutzers angegeben ist. Wenn der Benutzer jedoch Mitglied mehrerer Gruppen ist, kann er die effektive Kerngruppe ändern.

Um die aktuell effektive Primärgruppe anzuzeigen, kann der Benutzer den Befehl groups verwenden :

 [root@server1 ~]# groups lisa lisa : lisa account sales 

Wenn der aktuelle Benutzer Linda die effektive Primärgruppe ändern möchte, verwendet er den Befehl newgrp, gefolgt vom Namen der Gruppe, die er als neue effektive Primärgruppe festlegen möchte. Nach Verwendung des Befehls newgrp ist die primäre Gruppe aktiv, bis der Benutzer den Befehl exit ausgibt oder sich abmeldet.

Das Folgende zeigt, wie Lisa diesen Befehl verwendet, damit die Verkaufsgruppe zur primären Gruppe wird:

 lisa@server1 ~]$ groups lisa account sales [lisa@server1 ~]$ newgrp sales [lisa@server1 ~]$ groups sales lisa account [lisa@server1 ~]$ touch file1 [lisa@server1 ~]$ ls -l total 0 -rw-r--r--. 1 lisa sales 0 Feb 6 10:06 file1 

Nach dem Ändern der aktuellen Hauptgruppe erhalten alle vom Benutzer erstellten neuen Dateien diese Gruppe als Eigentümergruppe. Um zur ursprünglichen Einstellung der primären Gruppe zurückzukehren, verwenden Sie exit .

Um den Befehl newgrp verwenden zu können, muss der Benutzer Mitglied der Gruppe sein, die er als primär verwenden möchte. Darüber hinaus kann das Gruppenkennwort mit dem Befehl gpasswd für die Gruppe verwendet werden. Wenn der Benutzer den Befehl newgrp verwendet, aber kein Mitglied der Zielgruppe ist, fordert die Shell das Gruppenkennwort an. Nachdem Sie das richtige Gruppenkennwort eingegeben haben, wird eine neue effektive Primärgruppe festgelegt.

Grundrechtsmanagement


Das Linux-Berechtigungssystem wurde in den 1970er Jahren erfunden. Da die Computeranforderungen in diesen Jahren begrenzt waren, war das grundlegende Berechtigungssystem eher begrenzt. Dieses Berechtigungssystem verwendet drei Berechtigungen, die auf Dateien und Verzeichnisse angewendet werden können. In diesem Abschnitt erfahren Sie, wie Sie diese Berechtigungen verwenden und ändern.

Grundlegendes zu Lese-, Schreib- und Ausführungsrechten


Mit drei Grundberechtigungen können Sie Dateien lesen, schreiben und ausführen. Die Auswirkungen dieser Berechtigungen unterscheiden sich, wenn sie auf Dateien oder Verzeichnisse angewendet werden. Mit einer Leseberechtigung für eine Datei haben Sie das Recht, die Datei zum Lesen zu öffnen. Daher können Sie den Inhalt lesen, aber das bedeutet, dass Ihr Computer die Datei öffnen kann, um etwas damit zu tun.

Eine Programmdatei, die Zugriff auf eine Bibliothek benötigt, sollte beispielsweise Lesezugriff auf diese Bibliothek haben. Daraus folgt, dass die Leseberechtigung die grundlegendste Berechtigung ist, die Sie zum Arbeiten mit Dateien benötigen.

Beim Lesen eines Verzeichnisses können Sie den Inhalt dieses Verzeichnisses anzeigen. Sie sollten wissen, dass Sie mit dieser Berechtigung keine Dateien in einem Verzeichnis lesen können. Linux-Berechtigungen kennen die Vererbung nicht. Die einzige Möglichkeit, eine Datei zu lesen, besteht darin, Leseberechtigungen für diese Datei zu verwenden.

Wie Sie wahrscheinlich erraten können, können Sie mit der Schreibberechtigung, wenn sie auf die Datei angewendet wird, in die Datei schreiben. Mit anderen Worten, Sie können den Inhalt vorhandener Dateien ändern. Es ist jedoch nicht möglich, neue Dateien zu erstellen oder zu löschen oder Dateiberechtigungen zu ändern. Dazu müssen Sie dem Verzeichnis, in dem Sie die Datei erstellen möchten, eine Schreibberechtigung erteilen. In Verzeichnissen können Sie mit dieser Berechtigung auch neue Unterverzeichnisse erstellen und löschen.

Die Ausführungsberechtigung ist das, was Sie benötigen, um die Datei auszuführen. Es wird niemals standardmäßig installiert, wodurch Linux fast vollständig gegen Viren immun ist. Nur jemand mit Schreibberechtigungen für das Verzeichnis kann die Ausführungsberechtigung anwenden.

Im Folgenden wird die Verwendung grundlegender Berechtigungen zusammengefasst:



Mit chmod


Verwenden Sie den Befehl chmod, um Rechte zu verwalten. Bei Verwendung von chmod können Sie Berechtigungen für den Benutzer (Benutzer), die Gruppe (Gruppe) und andere (andere) festlegen. Sie können diesen Befehl in zwei Modi verwenden: im relativen Modus und im absoluten Modus. Im absoluten Modus werden drei Ziffern verwendet, um die Grundberechtigungen festzulegen.



Berechnen Sie beim Festlegen von Berechtigungen den gewünschten Wert. Wenn Sie für den Benutzer Lesen, Schreiben und Ausführen festlegen, für die Gruppe lesen und ausführen und für andere in der Datei / somefile lesen und ausführen möchten, verwenden Sie den folgenden Befehl chmod :

 chmod 755 /somefile 

Wenn Sie chmod auf diese Weise verwenden, werden alle aktuellen Berechtigungen durch die von Ihnen festgelegten Berechtigungen ersetzt.

Wenn Sie Berechtigungen relativ zu aktuellen Berechtigungen ändern möchten, können Sie chmod im relativen Modus verwenden. Wenn Sie chmod im relativen Modus verwenden, arbeiten Sie mit drei Indikatoren, um anzugeben, was Sie tun möchten:

  1. Zuerst geben Sie an, für wen Sie die Berechtigungen ändern möchten. Dazu können Sie zwischen Benutzer ( u ), Gruppe ( g ) und anderen ( o ) wählen.
  2. Anschließend verwenden Sie den Operator, um Berechtigungen zum aktuellen Modus hinzuzufügen oder daraus zu entfernen oder sie vollständig festzulegen.
  3. Am Ende verwenden Sie r , w und x, um anzugeben, welche Berechtigungen Sie festlegen möchten.

Wenn Sie die Berechtigungen im relativen Modus ändern, können Sie den Teil "an" überspringen, um Berechtigungen für alle Objekte hinzuzufügen oder zu entfernen. Mit diesem Befehl wird beispielsweise die Ausführungsberechtigung für alle Benutzer hinzugefügt:

 chmod +x somefile 

Wenn Sie im relativen Modus arbeiten, können Sie auch komplexere Befehle verwenden. Mit diesem Befehl wird beispielsweise einer Gruppe eine Schreibberechtigung hinzugefügt und Lesevorgänge für andere entfernt:

 chmod g+w,or somefile 

Bei Verwendung von chmod -R o + rx / data legen Sie die Ausführungsberechtigung für alle Verzeichnisse sowie für Dateien im Verzeichnis / data fest. Verwenden Sie chmod -R o + rX / data , um die Berechtigung zum Ausführen nur für Verzeichnisse und nicht für Dateien festzulegen .

Großbuchstaben X stellt sicher, dass die Dateien keine Ausführungsberechtigung erhalten, wenn die Datei für einige Objekte noch keine Ausführungsberechtigung festgelegt hat. Dies macht X zu einer intelligenteren Methode, um mit Ausführungsberechtigungen zu arbeiten. Dadurch wird vermieden, dass diese Berechtigung für Dateien installiert wird, für die sie nicht erforderlich ist.

Erweiterte Rechte


Zusätzlich zu den grundlegenden Berechtigungen, über die Sie gerade gelesen haben, verfügt Linux auch über eine Reihe erweiterter Berechtigungen. Dies sind nicht die von Ihnen festgelegten Standardberechtigungen, aber manchmal bieten sie eine nützliche Ergänzung. In diesem Abschnitt erfahren Sie, was sie sind und wie Sie sie konfigurieren.

Grundlegendes zu erweiterten SUID-, GUID- und Sticky-Bit-Berechtigungen


Es gibt drei erweiterte Berechtigungen. Die erste davon ist die Berechtigung zum Festlegen einer Benutzer-ID (SUID). In einigen besonderen Fällen können Sie diese Berechtigung auf ausführbare Dateien anwenden. Standardmäßig führt der Benutzer, der die ausführbare Datei ausführt, die Datei mit eigenen Berechtigungen aus.

Für normale Benutzer bedeutet dies normalerweise, dass die Verwendung des Programms begrenzt ist. In einigen Fällen benötigt der Benutzer jedoch spezielle Berechtigungen, um nur eine bestimmte Aufgabe auszuführen.

Stellen Sie sich zum Beispiel eine Situation vor, in der der Benutzer das Kennwort ändern muss. Dazu muss der Benutzer sein neues Passwort in die Datei / etc / shadow schreiben. Diese Datei kann jedoch nicht von Nicht-Root-Benutzern geschrieben werden:

 root@hnl ~]# ls -l /etc/shadow ----------. 1 root root 1184 Apr 30 16:54 /etc/shadow 

Auflösung SUID bietet eine Lösung für dieses Problem. Im Dienstprogramm / usr / bin / passwd wird diese Berechtigung standardmäßig verwendet. Dies bedeutet, dass der Benutzer beim Ändern des Kennworts vorübergehend Root-Berechtigungen erhält, mit denen er in die Datei / etc / shadow schreiben kann. Sie können die SUID-Auflösung mit ls -l als s an der Position anzeigen, an der Sie normalerweise x für Benutzerberechtigungen erwarten:

 [root@hnl ~]# ls -l /usr/bin/passwd -rwsr-xr-x. 1 root root 32680 Jan 28 2010 /usr/bin/passwd 

SUID-Berechtigungen mögen nützlich aussehen (und in einigen Fällen auch), sind aber gleichzeitig potenziell gefährlich. Bei falscher Verwendung können Sie versehentlich Root-Zugriffsberechtigungen erteilen. Daher empfehle ich, es nur mit äußerster Vorsicht zu verwenden.

Die meisten Administratoren müssen es niemals verwenden. Sie werden es nur in einigen Dateien sehen, in denen das Betriebssystem es standardmäßig festlegen sollte.

Die zweite Sonderberechtigung ist die Gruppenkennung (SGID). Diese Auflösung hat zwei Auswirkungen. Bei Anwendung auf eine ausführbare Datei erhält der Benutzer, der die Datei ausführt, die Berechtigungen des Gruppeneigentümers dieser Datei. Somit kann die SGID mehr oder weniger dasselbe tun wie die SUID. SGID wird jedoch praktisch nicht für diesen Zweck verwendet.

Wie bei der SUID-Berechtigung wird SGID als Standardeinstellung auf einige Systemdateien angewendet.

Bei Anwendung auf ein Verzeichnis kann SGID hilfreich sein, da Sie damit den Standardgruppeneigentümer für die in diesem Verzeichnis erstellten Dateien und Unterverzeichnisse festlegen können. Wenn ein Benutzer eine Datei erstellt, wird standardmäßig seine effektive Primärgruppe als Gruppeneigentümer für diese Datei festgelegt.

Dies ist nicht immer sehr nützlich, insbesondere weil Red Hat / CentOS-Benutzer eine Gruppe mit demselben Namen wie der Benutzer haben und deren einziges Mitglied der Benutzer ist. Daher werden die vom Benutzer erstellten Dateien standardmäßig freigegeben.

Stellen Sie sich eine Situation vor, in der Benutzer von Linda und Lori in der Buchhaltung arbeiten und Mitglieder der Kontogruppe sind. Standardmäßig sind diese Benutzer Mitglieder der privaten Gruppe, deren einziges Mitglied sie sind. Beide Benutzer sind jedoch Mitglieder der Kontogruppe, aber auch als Parameter der sekundären Gruppe.

Die Standardsituation ist, dass beim Erstellen einer Datei durch einen dieser Benutzer die Hauptgruppe zum Eigentümer wird. Daher kann Linda standardmäßig nicht auf die von Lori erstellten Dateien zugreifen und umgekehrt. Wenn Sie jedoch das freigegebene Verzeichnis einer Gruppe (z. B. / groups / account) erstellen und sicherstellen, dass die SGID-Berechtigung auf dieses Verzeichnis angewendet wird und die Gruppenabrechnung als Gruppeneigentümer für dieses Verzeichnis festgelegt ist, werden alle Dateien in diesem Verzeichnis und in allen Unterverzeichnissen erstellt Erhalten Sie auch Kontogruppen als Standardgruppeneigentümer.

Aus diesem Grund ist die SGID-Berechtigung eine sehr nützliche Berechtigung zum Installieren in freigegebenen Gruppenverzeichnissen.

Die SGID-Berechtigung wird in der Ausgabe ls -ld als s an der Position angezeigt, an der Sie normalerweise die Berechtigung zum Ausführen der Gruppe finden:

 [root@hnl data]# ls -ld account drwxr-sr-x. 2 root account 4096 Apr 30 21:28 account 

Die dritte der Sonderberechtigungen ist klebrig. Diese Berechtigung ist nützlich, um Dateien vor versehentlichem Löschen in einer Umgebung zu schützen, in der mehrere Benutzer Schreibberechtigungen für dasselbe Verzeichnis haben. Wenn ein Sticky-Bit verwendet wird, kann ein Benutzer eine Datei nur löschen, wenn er Eigentümer der Datei oder des Verzeichnisses ist, in dem sich die Datei befindet. Aus diesem Grund wird es als Standardberechtigung für das Verzeichnis / tmp verwendet und kann auch für freigegebene Gruppenverzeichnisse nützlich sein.

Wenn ein Benutzer ohne Sticky Bit Dateien in einem Verzeichnis erstellen kann, kann er auch Dateien aus diesem Verzeichnis löschen. In einer öffentlichen Gruppenumgebung kann dies ärgerlich sein. Stellen Sie sich die Benutzer Linda und Lori vor, die beide Schreibberechtigungen für das Verzeichnis / data / account haben und diese Berechtigungen durch Mitgliedschaft in der Kontogruppe erhalten. Daher kann Linda von Lori erstellte Dateien löschen und umgekehrt.

Wenn Sie ein Sticky-Bit verwenden, kann der Benutzer Dateien nur löschen, wenn eine der folgenden Bedingungen erfüllt ist:

  • Der Benutzer ist der Eigentümer der Datei.
  • Der Benutzer ist der Eigentümer des Verzeichnisses, in dem sich die Datei befindet.

Wenn Sie ls -ld verwenden , sehen Sie ein klebriges Bit als t an der Position, an der Sie normalerweise die Ausführungsberechtigung für andere sehen:

 [root@hnl data]# ls -ld account/ drwxr-sr-t. 2 root account 4096 Apr 30 21:28 account/ 

Erweiterte Rechte


Um SUID, SGID und Sticky Bit anzuwenden, können Sie auch chmod verwenden . SUID hat einen numerischen Wert von 4, SGID hat einen numerischen Wert von 2 und Sticky Bit hat einen numerischen Wert von 1.

Wenn Sie diese Berechtigungen anwenden möchten, müssen Sie chmod ein vierstelliges Argument hinzufügen, dessen erste Ziffer sich auf spezielle Berechtigungen bezieht. In der folgenden Zeile wird beispielsweise die SGID-Berechtigung zum Verzeichnis hinzugefügt und rwx für den Benutzer und rx für die Gruppe und andere festgelegt:

 chmod 2755 /somedir 

Dies ist ziemlich unpraktisch, wenn Sie sich die aktuellen Berechtigungen ansehen müssen, die festgelegt wurden, bevor Sie mit chmod im absoluten Modus arbeiten. (Sie laufen Gefahr, Berechtigungen zu überschreiben, wenn Sie dies nicht tun.) Daher empfehle ich, im relativen Modus zu arbeiten, wenn Sie eine der speziellen Berechtigungen anwenden müssen:

  1. Verwenden Sie für SUID chmod u + s .
  2. Verwenden Sie für SGID chmod g + s .
  3. Verwenden Sie für Sticky Bit chmod + t und dann den Namen der Datei oder des Verzeichnisses, für die Sie Berechtigungen festlegen möchten.

In der Tabelle sind alle wichtigen Informationen zum Verwalten von Sonderberechtigungen zusammengefasst.



Beispiel für die Arbeit mit Sonderrechten


In diesem Beispiel verwenden Sie spezielle Berechtigungen, um Teammitgliedern das Freigeben von Dateien in einem freigegebenen Gruppenverzeichnis zu erleichtern. Sie weisen das ID-Bit der gesetzten Gruppenkennung sowie das Sticky-Bit zu und sehen, dass nach der Installation Funktionen hinzugefügt werden, die die gemeinsame Arbeit der Gruppenmitglieder erleichtern.

  1. Öffnen Sie das Terminal, in dem Sie ein Linda-Benutzer sind. Sie können einen Benutzer mit useradd linda erstellen und das Kennwort passwd linda hinzufügen.
  2. Erstellen Sie mit dem Befehl mkdir -p / data / sales ein Verzeichnis / data und ein Unterverzeichnis / data / sales im Stammverzeichnis. Führen Sie cd / data / sales aus , um zum Verkaufsverzeichnis zu gelangen. Führen Sie touch linda1 und touch linda2 aus , um zwei leere Dateien zu erstellen, die linda gehören.
  3. Führen Sie su - lisa aus , um den aktuellen Benutzer zu lisa zu wechseln, die auch Mitglied der Verkaufsgruppe ist.
  4. Führen Sie cd / data / sales aus und führen Sie in diesem Verzeichnis ls -l aus . Sie sehen zwei Dateien, die von Linda erstellt wurden und zur Linda-Gruppe gehören. Führen Sie rm -f linda * aus . Dadurch werden beide Dateien gelöscht.
  5. Führen Sie touch lisa1 und touch lisa2 aus , um zwei Dateien zu erstellen, die dem Benutzer lisa gehören.
  6. Führen Sie su aus , um Ihre Berechtigungen auf Root-Ebene zu erhöhen.
  7. Führen Sie chmod g + s, o + t / data / sales aus , um das Gruppenidentifikationsbit (GUID) sowie das Sticky-Bit im freigegebenen Gruppenverzeichnis festzulegen.
  8. Führen Sie su - linda . Berühren Sie dann Linda3 und Linda4 . Jetzt sollten Sie sehen, dass die beiden von Ihnen erstellten Dateien zur Verkaufsgruppe gehören, die der Eigentümer der Verzeichnisgruppe / data / sales ist.
  9. Führen Sie rm -rf lisa * aus . Sticky Bit verhindert, dass diese Dateien im Auftrag von Linda gelöscht werden, da Sie diese Dateien nicht besitzen. Bitte beachten Sie, dass Linda, wenn sie Eigentümerin des Verzeichnisses / data / sales ist, diese Dateien trotzdem löschen kann!

Verwalten von ACLs (setfacl, getfacl) unter Linux


, , , Linux , .

. , , .

ACL


ACL , : . , ACL , ACL.

tar ACL. , ACL , star tar. star , tar; ACL.

ACL getfacl , setfacl. , getfacl -R /directory > file.acls . , setfacl --restore=file.acl .

. ACL , .
, , . , ACL, , , .

ACL


ACL ACL. , ACL . ACL «operation not supported», , ACL.

, acl mount /etc/fstab, ACL .

ACL setfacl getfacl


ACL, setfacl . ACL, getfacl . ls -l ACL; + , , ACL .

ACL ACL getfacl . , ls -ld , getfacl . , , .

 [root@server1 /]# ls -ld /dir drwxr-xr-x. 2 root root 6 Feb 6 11:28 /dir [root@server1 /]# getfacl /dir getfacl: Removing leading '/' from absolute path names # file: dir # owner: root # group: root user::rwx group::rx other::rx 

getfacl , : , . ACL, sales. setfacl -mg:sales:rx /dir . -m , ACL . g:sales:rx ACL ( rx ) ( g ) sales. , , getfacl ACL.

 [root@server1 /]# setfacl -mg:sales:rx /dir [root@server1 /]# getfacl /dir getfacl: Removing leading '/' from absolute path names # file: dir # owner: root # group: root user::rwx group::rx group:sales:rx mask::rx other::rx 

, , ACL, ACL . , setfacl -mu:linda:rwx /data linda /data, .

setfacl . , -R . , ACL , , ACL. ACL .

ACL


ACL , . , , ACL .

ACL , , , . , ACL . , ACL!

. ACL , ACL . setfacl -R -m , ACL . setfacl -md: , , .

ACL , d -m ( !). setfacl -md:g:sales:rx /data , , sales , - /data.

ACL ACL . , , chmod . , chmod , , , - . , -, /data, , setfacl -md:o::- /data .

ACL . , ACL , , . , , ACL. , , ACL ( ).

ACL


/data/account /data/sales, . , sales /data/sales, account /data/account.

, account /data/sales, sales /data/account.

ACL , , .

  1. .
  2. setfacl -mg:account:rx /data/sales setfacl -mg:sales:rx /data/account .
  3. getfacl , , , .
  4. setfacl -md:g:account:rwx,g:sales:rx /data/sales , ACL sales.
  5. ACL /data/account, setfacl -md:g:sales:rwx,g:account:rx /data/account .
  6. , ACL , /data/sales. touch /data/sales/newfile getfacl /data/sales/newfile .

umask


, ACL . ACL, , , : umask ( ). , umask .

, , , . umask . . umask , , ; — 666, — 777.

. umask .

, umask , chmod , , , , . umask 022 644 755 , .

umask .



, umask, : , 666, umask, . 777.

umask: . umask , , umask , /etc/profile. — umask.sh /etc/profile.d umask, . umask, .

umask /etc/profile , , , umask .profile, .

, , ; , , . , umask root 027, umask 022.


Linux.

, . Linux — .
, .

ACL, mount .

user_xattr . «operation not supported» , mount /etc/fstab.

. , . ; .

, :

A , .
, , . ; , , A .

a , .

c , , , .

D , , . , , .

d , , .

I , . , Ext3, B-tree .

i . , , , .

j , ext3 , — .

s , , 0 . , , .

u . , .

, chattr . , chattr +s somefile , somefile. ? chattr -s somefile , . , , lsattr .

Zusammenfassung


, . , , ACL- . , umask . , .

, . .

. .

« - .» « - .», .

berez .

:
, , , .

:
, , , . , , , .

CryptoPirate

Source: https://habr.com/ru/post/de469667/


All Articles