Heim > Artikel > Betrieb und Instandhaltung > Spezielle Berechtigungen für Dateien unter dem Linux-System
Haben Sie das Gefühl, dass Linux-Dateiberechtigungen zu kompliziert sind? Benutzer, Gruppen, Dateiberechtigungen, Standardberechtigungen, versteckte Attribute, ACL, warum gibt es jetzt eine spezielle Berechtigung? Drei Sekunden lang tun mir meine Haare leid~.
Schauen wir uns eine Datei an
ls /usr/bin/passwd -l -rwsr-xr-x. 1 root root 27832 Jun 10 2014 /usr/bin/passwd
Nein, warum ist etwas Seltsames aufgetaucht? Dieses s erscheint über dem x des Dateieigentümers und wird Set UID oder kurz SUID genannt. Wenn es über dem x der Gruppe erscheint, zu der es gehört, bedeutet es SGID. Wenn es über dem x einer anderen Person liegt, bedeutet es Sticky.
Die Folge ist eine Tabelle, um die Verwendung jeder Sondergenehmigung zu erläutern:
File | Directory | |
suid | Dieser Benutzer wird die Eigentümerberechtigungen dieses Programms erben | No Bedeutung |
SGID | Dieser Benutzer erbt die Gruppenberechtigungen dieses Programms | Alle neuen Dateien, die von Benutzern in diesem Verzeichnis erstellt werden, erben automatisch die Benutzergruppe dieses Verzeichnisses |
Sticky | Keine Bedeutung | Jeder Benutzer in Das Verzeichnis kann nur Ihre eigenen Dateien oder Verzeichnisse löschen, verschieben oder umbenennen |
Als nächstes verwenden wir die Datei /usr/bin/passwd, um den Zweck von SUID zu erklären.
Wir wissen, dass unter Linux jeder Benutzer sein eigenes Passwort ändern kann und Root die Passwörter aller Benutzer ändern kann. Haben Sie schon einmal darüber nachgedacht, warum auch normale Benutzer ihre Passwörter ändern können? Ist das Passwort nicht in der Datei /etc/shadow gespeichert? Diese Datei hat für normale Benutzer keine Schreibberechtigung.
# ls -l /etc/shadow ---------- 1 root root 969 Sep 10 09:37 /etc/shadow
Dies ist der Zweck von SUID. Normale Benutzer können ihre Passwörter über den Befehl passwd ändern. Während der Ausführung verfügt der Benutzer vorübergehend über die Berechtigungen des Dateieigentümers Root, sodass normale Benutzer ihre Passwörter ändern können. Wenn die Sonderberechtigungen der Datei SGID lauten, sind während der Ausführung die Berechtigungen der Gruppe vorhanden, zu der die Datei gehört.
Neben Dateien kann SGID auch für Verzeichnisse verwendet werden. Beachten Sie, dass seine Funktionen für Dateien und Verzeichnisse völlig unterschiedlich sind. Anhand eines Szenarios erläutern wir die Rolle der SGID für Verzeichnisse.
Nachfolgend simulieren wir ein Szenario: Das Unternehmen muss nun ein Projekt entwickeln, die Prototypenzeichnung liegt vor und muss zur Konstruktion an die Designabteilung übergeben werden. Erstellen Sie nun ein Verzeichnis project1_ps. Alle Mitarbeiter in der Designabteilung verfügen über RWX-Berechtigungen für Dateien in diesem Verzeichnis.
Wir wissen, dass unter Linux beim Erstellen einer neuen Datei oder eines neuen Verzeichnisses Sie selbst der Eigentümer sind und die Gruppe, zu der sie gehört, die Gruppe ist, zu der Sie gehören. Wenn Designer eine neue Datei erstellt, verfügen andere Benutzer auf diese Weise über die Berechtigungen anderer Personen für diese Datei, was unseren Anforderungen nicht entspricht. Daher benötigen wir SGID, um die Anforderungen zu erfüllen.
# groupadd design #创建design用户组 # useradd -G design --no-create-home dgn1 # 创建用户 # useradd -G design --no-create-home dgn2 # 创建用户 # id dgn1 uid=1003(dgn1) gid=1004(dgn1) 组=1004(dgn1),1003(design) # id dgn2 uid=1004(dgn2) gid=1005(dgn2) 组=1005(dgn2),1003(design) # mkdir design # 工作目录 # chgrp design design/ # chmod 2770 design/ <== 如果是SUID则是4770 # ll -d design/ drwxrws--- 2 root design 4096 5月 5 19:06 design/ # su dgn1 $ umask 0022 $ umask 0002 $ touch design/1.ps $ ls design -l 总用量 0 -rw-rw-r-- 1 dgn1 design 0 5月 5 19:31 1.ps <=== 新创建的文件默认组为design了
Endlich kommen wir zu Sticky. Dies ist sehr einfach zu verstehen. Jeder Benutzer im Verzeichnis kann nur seine eigenen Dateien oder Verzeichnisse löschen, verschieben oder umbenennen. Tatsächlich verwendet das Verzeichnis /tmp diese spezielle Berechtigung.
# ll /tmp -d drwxrwxrwt. 9 root root 868352 Sep 13 08:24 /tmp
Das obige ist der detaillierte Inhalt vonSpezielle Berechtigungen für Dateien unter dem Linux-System. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!