Unter Unix habe ich vor langer Zeit gelernt chmod
, wie man unter Unix traditionell Berechtigungen setzt (und wie man Programmen mit setuid und setgid erlaubt, Berechtigungen zu erlangen).
Ich habe kürzlich einige neuere Befehle unter GNU / Linux entdeckt:
setfacl
erweitert die traditionellenugo:rwx
Bits und dast
Bit vonchmod
.setcap
gibt mehr Kontrolle überug:s
Flossenkörner als Bits vonchmod
.chattr
Ermöglicht einige andere Steuerelemente (ein bisschen gemischt) der Datei.
Gibt es noch andere?
linux
permissions
filesystems
gnu
Strg-Alt-Delor
quelle
quelle
chmod
Antworten:
chmod
: Dateimodus-Bits ändernVerwendung (oktaler Modus):
Verwendung (symbolischer Modus):
references
ist eine Kombination der Buchstabenugoa
, die angeben, welcher Benutzerzugriff auf denfiles
geändert wird:u
der Benutzer, dem es gehörtg
andere Benutzer in derfile
Gruppe vono
andere Benutzer nicht in der Gruppe der Dateia
Alle NutzerWenn das weggelassen wird, werden standardmäßig alle Benutzer, aber nur die von der zulässigen Berechtigungen
umask
geändert.operator
ist einer der Charaktere+-=
:+
Fügen Sie die angegebenen Dateimodusbits zu den jeweils vorhandenen Dateimodusbits hinzufile
-
Entfernt die angegebenen Dateimodusbits zu den jeweils vorhandenen Dateimodusbitsfile
=
fügt die angegebenen Bits und entfernt nicht spezifizierten Bits, mit Ausnahme dersetuid
undsetgid
Bits für Verzeichnisse, sofern dies nicht ausdrücklich angegeben ist .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 (je nach Angabereferences
)t
Restricted Deletion Flag oder Sticky BitAlternativ
mode
kann der aus einem der Buchstaben bestehenugo
. In diesem Fall entspricht der Modus den Berechtigungen, die derzeit dem Eigentümer (u
), Mitglied derfile
Gruppe (g
) oder den Berechtigungen von Benutzern in keiner der vorhergehenden Kategorien (o
) gewährt werden .Die verschiedenen Teile von
chmod
erklärt:setfacl
)rwx
- Lese (r) -, Schreib (w) - und Ausführungs- / Kreuz (x) -Berechtigungen.#!
) und andere ausführbare Dateien.s
undt
- Sticky Bit (t) und Setgid (s) in Verzeichnissens
- setuid, setgid für ausführbare Dateien.setcap
nach einem moderneren Weg, um dies zu tun.chown
chgrp
:chattr
: Dateiattribute ändernVerwendung:
operator
ist eines des Zeichens+-=
: *+
die ausgewählten Attribute an den bestehenden sein fügtattributes
derfiles
*-
die ausgewählten Entferntattributes
*=
überschreibt mit dem angegebenen dem aktuellen Satz von Attributen der Dateien habenattributes
.attribute
ist eine Kombination der BuchstabenacdeijstuADST
, die den Attributen entsprechen:a
nur anhängenc
komprimiertd
keine Müllkippee
Extent-Formati
unveränderlichj
Datenaufzeichnungs
sicheres Löschent
keine Schwanzverschmelzungu
nicht löschbarA
keineatime
UpdatesD
synchrone VerzeichnisaktualisierungenS
synchrone UpdatesT
Anfang der Verzeichnishierarchiesetfattr
: Erweiterte Dateiattribute ändernVerwendung (Attribut setzen):
Verwendung (entfernen):
name
ist der Name des erweiterten Attributs, das festgelegt oder entfernt werden sollvalue
ist der neue Wert des erweiterten Attributssetfacl
: Dateizugriffskontrolllisten ändernVerwendung:
option
muss eine der folgenden Angaben enthalten:--set
Legen Sie die Zugriffssteuerungsliste einer Datei oder eines Verzeichnisses fest und ersetzen Sie die vorherige Zugriffssteuerungsliste-m
|--modify
Ändern Sie die Zugriffssteuerungsliste einer Datei oder eines Verzeichnisses-x
|--remove
ACL-Einträge einer Datei oder eines Verzeichnisses entfernentarget
ist einer der Buchstabenugmo
(oder die längere Form, die unten gezeigt wird):u
Dieusers
Erlaubnis eines benannten Benutzers, der durch gekennzeichnet istparam
, ist standardmäßig der Dateieigentümer,uid
wenn sie weggelassen wirdg
,group
Erlaubnis einer benannten Gruppe, die durch gekennzeichnetparam
ist. Standardmäßig besitzt sie die Gruppe,uid
wenn sie weggelassen wirdm
,mask
effektive Rechte Maskeo
,other
Berechtigungen andererperms
ist eine Kombination der BuchstabenrwxX
, die den Berechtigungen entsprechen:r
lesenw
schreibenx
ausführenX
Nur ausführen, wenn die Datei ein Verzeichnis ist oder für einen Benutzer bereits Ausführungsberechtigungen besitztAlternativ
perms
kann es sich auch um eine Oktalziffer (0
-7
) handeln, die den Berechtigungssatz angibt.setcap
: Dateifunktionen ändernVerwendung:
A
capability-clause
besteht aus einer durch Kommas getrennten Liste von Funktionsnamen , gefolgt von einer Liste von Operator-Flag-Paaren.Die verfügbaren Operatoren sind
=
,+
und-
. Die verfügbaren Flags sinde
,i
undp
die entsprechen dem Effective , Inheritable und Zulässige Fähigkeit Sets.Der
=
Bediener erhöht die angegebenen Fähigkeitssätze und setzt die anderen zurück. Wenn in Verbindung mit dem=
Bediener keine Flags vergeben werden, werden alle Fähigkeitssätze zurückgesetzt. Die+
und die-
Betreiber erhöhen oder die niedrigere oder mehr bestimmte Fähigkeit Sätze sind.chcon
: Datei SELinux Sicherheitskontext ändernVerwendung:
user ist der SELinux-Benutzer wie
user_u
,system_u
oderroot
.role ist die SELinux-Rolle (immer
object_r
für Dateien)Typ ist der SELinux-Subjekttyp
chsmack
: Erweiterte SMACK- Attribute ändernVerwendung:
value
ist die SMACK-Bezeichnung, die für dasSMACK64
erweiterte Dateiattribut festgelegt werden sollsetrichacl : Ändert die Rich Access Control-Liste.
richacl s sind eine Funktion, die erweiterte ACLs hinzufügt.
Derzeit ist eine Arbeit in Arbeit, daher kann ich Ihnen nicht viel über sie erzählen. Ich habe sie nicht benutzt.
Siehe auch diese Frage Gibt es erweiterte Dateisystem-ACLs, die über die herkömmlichen 'rwx'- und POSIX-ACLs hinausgehen? und Manpage
quelle
von einem hohen Niveau:
-rwxrwxrwx
durch behandeltchmod
, zusammen mit dem Besitzer und Gruppenkennungen für jede Datei oder einen Ordner auf dem Dateisystem behandelt gebunden durchchown
undchgrp
; Jeder kennt dieses Stück im Grunde.andere wichtige Punkte:
user_xattr
und ich konnte festlegen, dass xattr bei der Installation nicht im Root-Dateisystem verfügbar ist. Ich denke jetzt mit RHEL / CentOS 7, dass xattr standardmäßig da ist und man es nicht haben kann.ls
sehen-rwxrwxrwx+
,+
bedeutet dies, dass ein erweitertes Dateiattribut für dieses Objekt vorhanden ist .tar
auf Material mit xattr, wenn es kein Problem auf diesem System bleibt , aber wenn es an anderer Stelle geht , kann problematisch sein , wenn die xattr der wichtig sind (dh Samba und Kopieren zwischen win10 ntfs und Linux ext3 / 4, Btrfs, XFS oder zurück zwischen netzwerkgekoppelten Speichergeräten hin und her)xattr
s erzwingt ,xattr
kann s theoretisch nichts bedeuten und fallen gelassen oder abgestreift werden, da es sich an diesem Punkt nur um zusätzliches Gepäck handelt.Einfache Samba-Freigabe funktioniert in RHEL / CentOS 7 nicht ... da Selinux standardmäßig auf Erzwingen eingestellt ist. selinux hat alles abgelehnt, bis Sie es zugelassen haben. Deaktivieren Sie daher entweder selinux (bad) oder setzen Sie es auf permissive. Wenn Sie selinux als erzwingend belassen, müssen Sie den Ordner, den Sie mit Samba freigeben möchten, mit einem erweiterten Attribut kennzeichnen, damit selinux die Freigabe erkennt und zulässt. Wenn Sie also selinux erzwingen lassen, dann mit allen selinux-Befehlen (die dann die notwendigen
xattr
s setzen):Sie verwenden weiterhin selinux auf dem Linux-System mit dieser Samba-Freigabe, um Einschränkungen für Dateien / Ordner unter dieser Samba-Freigabe zu erzwingen (unter Verwendung eines beliebigen erweiterten Attributs). Da diese Dateien / Ordner freigegeben sind, kopiert ein Benutzer einige legitimerweise auf seinen win10-PC und kopiert sie dann zurück, wobei das erweiterte Attribut verloren geht. Jetzt, nach dieser hin und her Kopie, wird Selinux auf diesem Linux-System den Zugriff auf diese Dateien einschränken, da das notwendige xattr nicht mehr vorhanden ist und Benutzer / Administratoren sich fragen, warum die Dinge gerade jetzt funktionierten ... Selinux nicht einstellen um das Problem von verlorenen
xattr
s zuzulassen und zu erkennen, das in den Überwachungsprotokollen angezeigt wird, aber es wird nicht direkt angezeigt, dass es ein Ergebnis des Hin- und Her-Kopierens war, das das xattr verloren hat. Berücksichtigen Sie auch die Datensicherung und -wiederherstellung sowie die potenzielle Arbeit, die Sie sich merken müssenxattr
s zusätzlich zu uid / gid, wenn Sie die Sicherheit basierend auf den korrektenxattr
s erzwingen möchten .quelle