Es gibt zwei spezielle Berechtigungen, die für ausführbare Dateien festgelegt werden können:Benutzer-ID festlegen (setuid) und Gruppen-ID festlegen (sgid). Diese Berechtigungen ermöglichen, dass die ausgeführte Datei mit den Rechten des Besitzers oder der Gruppe ausgeführt wird. Ebenso gibt es zwei spezielle Berechtigungen für Verzeichnisse:das Sticky-Bit und das Setgid-Bit. Nachfolgend finden Sie einige der am häufigsten gestellten Fragen in Linux-Interviews zu speziellen Berechtigungen wie SUID, SGID und Sticky Bit.
Was ist Benutzer-ID setzen (setuid)?
SUID ist eine spezielle Berechtigung, die einer Datei zugewiesen wird. Diese Berechtigungen ermöglichen, dass die ausgeführte Datei mit den Rechten des Besitzers ausgeführt wird. Wenn zum Beispiel eine Datei dem Root-Benutzer gehört und das setuid-Bit gesetzt ist, wird sie unabhängig davon, wer die Datei ausgeführt hat, immer mit Root-Benutzerrechten ausgeführt.
Wie setze ich das SUID-Bit für eine Datei?
Sie müssen der Eigentümer der Datei oder der Root-Benutzer sein, um das setuid-Bit zu setzen. Führen Sie den folgenden Befehl aus, um das setuid-Bit zu setzen:
# chmod u+s file1
Zeigen Sie die Berechtigungen mit dem Befehl ls -l an:
# ls -l file1 -rwSrw-r-- 1 user1 user1 0 2017-10-29 21:41 file1
Beachten Sie das große S . Dies bedeutet, dass keine Ausführungsberechtigungen vorhanden sind. Führen Sie den folgenden Befehl aus, um der Datei file1 Ausführungsberechtigungen hinzuzufügen, und achten Sie dabei auf das kleingeschriebene s .
# chmod u+x file1
# ls -l file1 -rwsrw-r-- 1 user1 user1 0 2017-10-29 21:41 file1
Beachten Sie den Kleinbuchstaben s. Das bedeutet, dass Ausführungsberechtigungen vorhanden sind.
Alternativ können Sie das setuid-Bit mit der numerischen Methode setzen, indem Sie dem Modus eine 4 voranstellen. Um beispielsweise das setuid-Bit sowie Lese-, Schreib- und Ausführungsberechtigungen für den Eigentümer der Datei file1 festzulegen, führen Sie den folgenden Befehl aus:
# chmod 4700 file1
Was ist Set Group ID (setgid) für Dateien?
Wenn das Set-Group-ID-Bit gesetzt ist, wird die ausführbare Datei mit der Autorität der Gruppe ausgeführt. Wenn beispielsweise eine Datei der Benutzergruppe gehört, wird sie immer mit der Berechtigung der Benutzergruppe ausgeführt, unabhängig davon, wer diese Datei ausgeführt hat.
Wie setze ich das SGID-Bit für Dateien?
Führen Sie den folgenden Befehl aus, um das setgid-Bit für die Datei file1 zu setzen:
# chmod g+sHinweis :Sowohl das Setuid- als auch das Setgid-Bit werden mit dem Symbol s gesetzt. Die setgid wird genauso dargestellt wie das setuid-Bit, außer im Gruppenabschnitt der Berechtigungen.
Führen Sie den folgenden Befehl als Root aus, um das setgid-Bit zu setzen und Berechtigungen für den Eigentümer der Datei file1 zu lesen, zu schreiben und auszuführen:
# chmod 2700 file1
Die setgid wird genauso dargestellt wie das setuid-Bit, außer im Gruppenabschnitt der Berechtigungen:
ls -l file1 -rwx--S--- 1 user1 user1 0 2017-10-30 21:40 file1
Verwenden Sie den Befehl chmod u+s, um das setuid-Bit zu setzen. Verwenden Sie den Befehl chmod g+s, um das setgid-Bit zu setzen.
Was ist das Festlegen von Gruppen-ID-Berechtigungen für Verzeichnisse
Wenn das setgid-Bit für ein Verzeichnis gesetzt ist, erben alle in diesem Verzeichnis erstellten Dateien den Gruppenbesitz dieses Verzeichnisses. Beispielsweise gehört der Ordner folder1 dem Benutzer user1 und der Gruppe group1:
# ls -ld folder1 drwxrwxr-x 2 user1 group1 4096 2017-10-30 22:25 folder1
Im Ordner folder1 erstellte Dateien erben die Gruppenmitgliedschaft group1:
# touch folder1/file1 # ls -l folder1/file1 -rw-rw-r-- 1 user1 group1 0 2017-10-30 22:29 folder1/file1
Wie setze ich das SGID-Bit für Verzeichnisse?
Um das setgid-Bit für ein Verzeichnis zu setzen, verwenden Sie den Befehl chmod g+s:
# chmod g+s folder1
Zeigen Sie die Berechtigungen mit dem Befehl ls -ld an und notieren Sie sich das s in den Gruppenberechtigungen:
# ls -ld folder1 drwxrwsr-x 2 user1 group1 4096 2017-10-30 22:32 folder1
Alternativ können Sie dem Verzeichnismodus eine 2 voranstellen:
# chmod 2770 folder1
Was ist Sticky Bit in einem Verzeichnis
Wenn das Sticky-Bit für ein Verzeichnis gesetzt ist, können nur der Root-Benutzer, der Eigentümer des Verzeichnisses und der Eigentümer einer Datei Dateien in diesem Verzeichnis entfernen.
So setzen Sie das Sticky-Bit
Ein Beispiel für das Sticky-Bit ist das /tmp-Verzeichnis. Verwenden Sie den Befehl ls -ld /tmp, um die Berechtigungen anzuzeigen:
# ls -ld /tmp drwxrwxrwt 24 root root 4096 2017-10-30 22:00 tmp
Das t am Ende symbolisiert, dass das Sticky-Bit gesetzt ist. Eine im /tmp-Verzeichnis erstellte Datei kann nur von ihrem Eigentümer oder dem Root-Benutzer entfernt werden. Führen Sie beispielsweise den folgenden Befehl aus, um das Sticky-Bit für den Ordner folder1 festzulegen:
# chmod a+t folder1
Alternativ können Sie dem Modus eines Verzeichnisses eine 1 voranstellen, um das Sticky-Bit zu setzen:
# chmod 1777 folder1
Die Berechtigungen sollten für den Eigentümer, die Gruppe und alle anderen in Verzeichnissen mit gesetztem Sticky-Bit gelesen, geschrieben und ausgeführt werden. Dadurch kann jeder in das Verzeichnis cd und Dateien erstellen.
Wie finde ich Dateien mit SUID/SGID, aber gesetzt
1. Um alle Dateien mit SUID aber gesetzt zu finden, verwenden Sie den folgenden Befehl:
# find / -perm +4000
2. Verwenden Sie den folgenden Befehl, um alle Dateien mit gesetztem SGID-Bit zu finden:
# find / -perm +2000
Sie können auch beide Befehle kombinieren, um sowohl SGID- als auch SUID-, aber Set-Dateien zu finden.
# find / -type f \\( -perm -4000 -o -perm -2000 \\) -exec ls -l {} \\;Was ist SUID, SGID und Sticky Bit?
Linux / UNIX :So finden Sie Dateien, für die SUID/SGID festgelegt ist
Linux / UNIX :Beispiele für den Suchbefehl, um Dateien mit bestimmten Berechtigungen zu findenDas ultimative Linux-Interview Fragen:tauschen