GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux – Was sind die verschiedenen Möglichkeiten zum Festlegen von Dateiberechtigungen usw. unter Gnu/Linux?

Unter Unix habe ich vor langer Zeit etwas über chmod gelernt :die traditionelle Art, unter Unix Berechtigungen zu setzen (und Programmen zu erlauben, Privilegien zu erhalten, indem sie setuid, setgid verwenden).

Ich habe kürzlich einige neuere Befehle unter GNU/Linux entdeckt:

  • setfacl erweitert das traditionelle ugo:rwx Bits und das t Bit von chmod .
  • setcap gibt mehr feinkörnige Kontrolle als ug:s Bits von chmod .
  • chattr Ermöglicht einige andere Steuerungen (ein bisschen wie eine Mischung) der Datei.

Gibt es noch andere?

Akzeptierte Antwort:

chmod :Dateimodus-Bits ändern

Verwendung (oktaler Modus):

    chmod <octal-mode> files...

Verwendung (symbolischer Modus):

    chmod <references><operator><modes> files..

references ist eine Kombination aus den Buchstaben ugoa , die angeben, welcher Benutzer Zugriff auf die files hat wird geändert:

  • u der Benutzer, dem es gehört
  • g andere Benutzer in der file Gruppe
  • o andere Benutzer, die nicht in der Gruppe der Datei sind
  • a alle Benutzer

    Wenn das weggelassen wird, werden standardmäßig alle Benutzer verwendet, aber nur Berechtigungen, die von umask zugelassen werden geändert werden.

    operator ist eines der Zeichen +-= :

    • + fügt die angegebenen Dateimodus-Bits zu den vorhandenen Dateimodus-Bits jeder file hinzu
    • - entfernt die angegebenen Dateimodus-Bits zu den vorhandenen Dateimodus-Bits jeder file
    • = fügt die angegebenen Bits hinzu und entfernt nicht angegebene Bits, mit Ausnahme der setuid und setgid Bits für Verzeichnisse gesetzt, sofern nicht ausdrücklich angegeben.

    mode besteht aus einer Kombination der Buchstaben rwxXst , die angeben, welches Berechtigungsbit geändert werden soll:

    • r lesen
    • w schreiben
    • x ausführen (oder nach Verzeichnissen suchen)
    • X Ausführen/Suchen nur, wenn die Datei ein Verzeichnis ist oder für einen Benutzer bereits ein Ausführungsbit gesetzt ist
    • s setuid oder setgid (abhängig von den angegebenen references )
    • t eingeschränktes Lösch-Flag oder Sticky Bit

    Alternativ der mode kann aus einem der Buchstaben ugo bestehen , in diesem Fall entspricht der Modus den Berechtigungen, die dem Eigentümer derzeit gewährt werden (u ), Mitglieder der file ’s-Gruppe (g ) oder Berechtigungen von Benutzern in keiner der vorangegangenen Kategorien (o ).

Die verschiedenen Bits von chmod erklärt:

  • Zugriffskontrolle (siehe auch setfacl )
    • rwx — Lese- (r), Schreib- (w) und Ausführungs-/Kreuz- (x) Berechtigungen.
      • Read (r) beeinflusst, ob eine Datei gelesen oder ein Verzeichnis aufgelistet werden kann.
      • Write (w) beeinflusst, ob eine Datei geschrieben oder ein Verzeichnis bearbeitet werden kann (Dateien hinzugefügt, gelöscht, umbenannt).
      • Execute (x) beeinflusst, ob eine Datei ausgeführt werden kann, verwenden Sie für Skripte (siehe #! ) und andere ausführbare Dateien.
      • Kreuz (x) beeinflusst, ob ein Verzeichnis durchlaufen werden kann.
    • s und t — sticky bit (t) und setgid (s) auf Verzeichnissen
      • Das Sticky-Bit betrifft nur Verzeichnisse. Verhindert, dass jemand außer Dateieigentümer und Root Dateien im Verzeichnis löscht.
      • das setgid-Bit auf Verzeichnissen bewirkt, dass bei neuen Dateien und Verzeichnissen die Gruppe auf dieselbe Gruppe gesetzt wird und bei neuen Verzeichnissen das setgid-Bit gesetzt wird (siehe auch Voreinstellungen in setfacl).
    • s — setuid, setgid, bei ausführbaren Dateien.
      • Dies kann die Sicherheit beeinträchtigen, wenn Sie nicht wissen, was Sie tun.
      • Wenn eine ausführbare Datei ausgeführt wird und eines dieser Bits gesetzt ist, wird der effektive Benutzer/die effektive Gruppe der ausführbaren Datei zu dem der Datei. Somit läuft das Programm als dieser Benutzer. siehe setcap für einen moderneren Weg, dies zu tun.

chown chgrp :

chattr :Dateiattribute ändern

Verwendung:

    chattr <operator><attribute> files...

operator ist eines der Zeichen +-= :
* + fügt die ausgewählten Attribute zu den bestehenden attributes hinzu der files * - entfernt die ausgewählten attributes * = überschreibt den aktuellen Satz von Attributen, die die Dateien haben, mit den angegebenen attributes .

attribute ist eine Kombination aus den Buchstaben acdeijstuADST , die den Attributen entsprechen:

  • a nur anhängen
  • c komprimiert
  • d kein Dump
  • e Extent-Format
  • i unveränderlich
  • j Datenprotokollierung
  • s Sicheres Löschen
  • t kein Tail-Merging
  • u nicht löschbar
  • A keine atime Aktualisierungen
  • D synchrone Verzeichnisaktualisierungen
  • S synchrone Updates
  • T oben in der Verzeichnishierarchie
Siehe auch:Ssh – Warum schlägt der X11-Weiterleitungsversuch mit „connect /tmp/.X11-unix/X0:No such file or directory“ fehl?

setfattr :Erweiterte Dateiattribute ändern

Verwendung (Set-Attribut):

    setfattr -n <name> -v <value> files...

Verwendung (entfernen):

    setfattr -x <name> files...

name ist der Name des erweiterten Attributs, das gesetzt oder entfernt werden soll

value ist der neue Wert des erweiterten Attributs

setfacl :Dateizugriffskontrolllisten ändern

Verwendung:

    setfacl <option> [default:][<target>:][<param>][:<perms>] files...

option muss eines der folgenden enthalten:

  • --set setzt die ACL einer Datei oder eines Verzeichnisses und ersetzt die vorherige ACL
  • -m |--modify die ACL einer Datei oder eines Verzeichnisses ändern
  • -x |--remove ACL-Einträge einer Datei oder eines Verzeichnisses entfernen

    target ist einer der Buchstaben ugmo (oder die unten gezeigte längere Form):

  • u , users Erlaubnis eines benannten Benutzers, der durch param identifiziert wird , ist standardmäßig der Dateieigentümer uid falls weggelassen

  • g , group Erlaubnis einer benannten Gruppe, die durch param identifiziert wird , standardmäßig Besitzer der Gruppe uid falls weggelassen
  • m , mask wirksame Rechtemaske
  • o , other Berechtigungen anderer

    perms ist eine Kombination aus den Buchstaben rwxX , die den Berechtigungen entsprechen:

  • r lesen

  • w schreiben
  • x ausführen
  • X nur ausführen, wenn die Datei ein Verzeichnis ist oder bereits Ausführungsrechte für einen Benutzer hat

    Alternativ perms kann eine Oktalziffer sein (7 ), die den Satz von Berechtigungen angibt.

setcap :Dateifähigkeiten ändern

Verwendung:

    setcap <capability-clause> file 

Eine capability-clause besteht aus einer durch Kommas getrennten Liste von Capability-Namen, gefolgt von einer Liste von Operator-Flag-Paaren.

Die verfügbaren Operatoren sind = , + und - . Die verfügbaren Flags sind e , i und p die dem Gültig entsprechen , Vererbbar und Erlaubt Fähigkeitsgruppen.

Der = Der Bediener erhöht die angegebenen Fähigkeitssätze und setzt die anderen zurück. Wenn keine Flags in Verbindung mit = angegeben werden Operator werden alle Capability Sets zurückgesetzt. Das + und - Operatoren erhöhen bzw. verringern die eine oder mehrere angegebene Fähigkeitsgruppen.

chcon :SELinux-Sicherheitskontext der Datei ändern

Verwendung:

    chcon [-u <user>] [-r <role>] [-t <type>] files...

Benutzer ist der SELinux-Benutzer, z. B. user_u , system_u oder root .

Rolle ist die SELinux-Rolle (immer object_r für Dateien)

tippen ist der Subjekttyp von SELinux

chsmack :Erweiterte SMACK-Attribute ändern

Verwendung:

    chsmack -a <value> file

value ist das SMACK-Label, das für SMACK64 gesetzt werden soll erweitertes Dateiattribut

setrichacl:Rich Access Control List ändern.

Richacls sind eine Funktion, die erweiterte ACLs hinzufügt.

Derzeit in Arbeit, daher kann ich Ihnen nicht viel darüber sagen. Ich habe sie nicht verwendet.


Linux
  1. Eine Einführung in die Linux-Datei /etc/fstab

  2. Linux – Welche Dateisysteme unter Linux speichern die Erstellungszeit?

  3. Linux – Was bedeutet ein Punkt nach den Dateiberechtigungsbits?

  4. Linux – Wie überprüft man die Verzeichnisstrukturinformationen einer Unix/Linux-Datei?

  5. Linux – Sind verschiedene Linux/Unix-Kernel austauschbar?

Die 6 besten Möglichkeiten zum Anzeigen von Dateien unter Linux

Was ist Fstab unter Linux | Eine Einführung in die Linux-Datei /etc/fstab

Was sind die Hauptunterschiede zwischen Bsd und Gnu/Linux Userland?

Was sind Inodes unter Linux?

Was ist die Datei /etc/passwd unter Linux?

Verstehen der /etc/fstab-Datei unter Linux