Benutzer-Werkzeuge

Webseiten-Werkzeuge


linux:linux_setuid_getgid_stickybit

Besondere Berechtigungen auf Dateien und Verzeichnissen unter Linux - File Permissions (setuid, setgid and Sticky Bit)

Es gibt drei Spezial Berechtigungen für Verzeichnisse und ausführbare Dateien:

  • setuid
  • setgid
  • sticky bit

setuid Permission

Wenn die „set-user identification“ (setuid) Berechtigung auf einer ausführbaren Datei gesetzt ist, kann ein anderer Anwender dieses „Programm“ starten und der Prozess hinter dem Programm wird mit dem Rechten des ursprünglichen Users aufgerufen und kann auf das Filesystem zugreifen, als ob es der ursprüngliche User aufgerufen hätte.

Auch wird als Eigentümerin der Prozess Liste der ursprüngliche User angezeigt.

Beispiel (Auf die Position des „s“ achten!):

#als root
ls -la /usr/bin/passwd
-rwsr-xr-x. 1 root root 30768 Feb 22  2012 /usr/bin/passwd
 
#als oracle anmelden
su - oracle
 
/usr/bin/passw
 
 
#Parallele Session als root starten und prüfen unter was das jetzt läuft
#Prozess auswerten
ps uafx  |  head -1 && ps uafx | grep -v grep | grep passwd
 
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root     11293  0.0  0.0 162032  1764 pts/1    S+   17:19   0:00  |           \_ /usr/bin/passwd
Setzen und entfernen mit
#setzen
chmod u+s /opt/oracle/myprogramm
 
#Oktal Notation mit führender 4
chmod 4764 /opt/oracle/myprogramm
 
#entfernen
chmod u-s /opt/oracle/myprogramm
 
#Oktal Notation mit führender 0
chmod 0764 /opt/oracle/myprogramm
Danach suchen - suid = 4000
find /opt/oracle -type f -perm /4000 -exec stat -c "%A %a %n" {} \;

setgid Permission

Die „set-group identification“ (setgid) Berechtigung ist ähnlich zur setuid, nur das hier die Gruppen ID für die Berechtigung verwendet wird.

Setzen und entfernen mit
#setzen
chmod g+s /opt/oracle/myprogramm
 
#Oktal Notation mit führender 2
chmod 2764 /opt/oracle/myprogramm
 
#entfernen
chmod g-s /opt/oracle/myprogramm
 
#Oktal Notation mit führender 0
chmod 0764 /opt/oracle/myprogramm
Danach suchen - setgid = 2000
find /opt/oracle -type f -perm /2000 -exec stat -c "%A %a %n" {} \;

Nach beiden Suchen = 6000

find /opt/oracle -type f -perm /6000 -exec stat -c "%A %a %n" {} \;

Sticky Bit

Mit dem „sticky bit“ kann eine Datei in einen Verzeichnis davor geschützt werden, von jemand anderem als den Eigentümer der Datei oder des Verzeichnisses (oder root) gelöscht zu werden.

Das kann nützlich sein, um zum Beispiel eine Datei unter /var/log zu schützen.

Wird zum Beispiel auf /tmp gesetzt (man achte auf das „t“):

ls -la /tmp
 
drwxrwxrwt.  6 root root     4096 Apr  2 17:06 .

Ist an der letzen Stelle ein „x“ wird daraus ein „t“, ist dort ein „-“ wird ein großes „T“ dargestellt!

Setzen und entfernen mit
#setzen
chmod +t /opt/oracle/logs
 
#Oktal Notation mit führender 1
chmod 1777 /opt/oracle/logs
 
#Oktal Notation mit führender 0
chmod 0764 /opt/oracle/logs
Danach suchen - Sticky Bit = 1000
find /opt/oracle -type d -perm /1000 -exec stat -c "%A %a %n" {} \;

Mehr dazu - Quellen

Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
"Autor: Gunther Pipperr"
linux/linux_setuid_getgid_stickybit.txt · Zuletzt geändert: 2016/09/20 14:58 von Gunther Pippèrr