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 traditionelleugo:rwx
Bits und dast
Bit vonchmod
.setcap
gibt mehr feinkörnige Kontrolle alsug:s
Bits vonchmod
.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örtg
andere Benutzer in derfile
Gruppeo
andere Benutzer, die nicht in der Gruppe der Datei sind-
a
alle BenutzerWenn 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 jederfile
hinzu-
entfernt die angegebenen Dateimodus-Bits zu den vorhandenen Dateimodus-Bits jederfile
=
fügt die angegebenen Bits hinzu und entfernt nicht angegebene Bits, mit Ausnahme dersetuid
undsetgid
Bits für Verzeichnisse gesetzt, sofern nicht ausdrücklich angegeben.
mode
besteht aus einer Kombination der BuchstabenrwxXst
, die angeben, welches Berechtigungsbit geändert werden soll:r
lesenw
schreibenx
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 ists
setuid oder setgid (abhängig von den angegebenenreferences
)t
eingeschränktes Lösch-Flag oder Sticky Bit
Alternativ der
mode
kann aus einem der Buchstabenugo
bestehen , in diesem Fall entspricht der Modus den Berechtigungen, die dem Eigentümer derzeit gewährt werden (u
), Mitglieder derfile
’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
undt
— 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ängenc
komprimiertd
kein Dumpe
Extent-Formati
unveränderlichj
Datenprotokollierungs
Sicheres Löschent
kein Tail-Mergingu
nicht löschbarA
keineatime
AktualisierungenD
synchrone VerzeichnisaktualisierungenS
synchrone UpdatesT
oben in der Verzeichnishierarchie
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 entfernentarget
ist einer der Buchstabenugmo
(oder die unten gezeigte längere Form): -
u
,users
Erlaubnis eines benannten Benutzers, der durchparam
identifiziert wird , ist standardmäßig der Dateieigentümeruid
falls weggelassen g
,group
Erlaubnis einer benannten Gruppe, die durchparam
identifiziert wird , standardmäßig Besitzer der Gruppeuid
falls weggelassenm
,mask
wirksame Rechtemaske-
o
,other
Berechtigungen andererperms
ist eine Kombination aus den BuchstabenrwxX
, die den Berechtigungen entsprechen: -
r
lesen w
schreibenx
ausführen-
X
nur ausführen, wenn die Datei ein Verzeichnis ist oder bereits Ausführungsrechte für einen Benutzer hatAlternativ
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.