Benutzer-Werkzeuge

Webseiten-Werkzeuge


linux:linux_setuid_getgid_stickybit

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
linux:linux_setuid_getgid_stickybit [2016/09/20 14:58] – [Sticky Bit] gpipperrlinux:linux_setuid_getgid_stickybit [2016/09/20 14:58] (aktuell) gpipperr
Zeile 1: Zeile 1:
 +===== 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!):
 +
 +<code bash>
 +
 +#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
 +
 +</code>
 +
 +==Setzen und entfernen mit==
 +<code bash>
 +#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
 +
 +</code>
 +
 +==Danach suchen - suid = 4000==
 +
 +<code bash>
 +find /opt/oracle -type f -perm /4000 -exec stat -c "%A %a %n" {} \;
 +</code>
 +
 +
 +----
 +
 +
 +===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 ==
 +<code bash>
 +#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
 +
 +</code>
 +
 +
 +==Danach suchen - setgid = 2000==
 +<code bash>
 +find /opt/oracle -type f -perm /2000 -exec stat -c "%A %a %n" {} \;
 +</code>
 +
 +**Nach beiden Suchen = 6000**
 +<code bash>
 +find /opt/oracle -type f -perm /6000 -exec stat -c "%A %a %n" {} \;
 +</code>
 +
 +
 +
 +----
 +
 +===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**"):
 +<code bash>
 +ls -la /tmp
 +
 +drwxrwxrwt.  6 root root     4096 Apr  2 17:06 .
 +
 +</code>
 +
 +Ist an der letzen Stelle ein "x" wird daraus ein "**t**", ist dort ein "-" wird ein großes "**T**" dargestellt!
 +
 +
 +==Setzen und entfernen mit ==
 +<code bash>
 +
 +#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
 +
 +</code>
 +
 +==Danach suchen - Sticky Bit = 1000==
 +<code bash>
 +find /opt/oracle -type d -perm /1000 -exec stat -c "%A %a %n" {} \;
 +</code>
 +
 +
 +----
 +
 +==== Mehr dazu - Quellen ====
 +
 +  * Oracle System Administration Guide: Security Services => http://docs.oracle.com/cd/E19683-01/816-4883/secfile-69/index.html
 +  * http://linuxg.net/how-to-set-the-setuid-and-setgid-bit-for-files-in-linux-and-unix/
 +  * http://de.wikipedia.org/wiki/Sticky_Bit
  
linux/linux_setuid_getgid_stickybit.txt · Zuletzt geändert: 2016/09/20 14:58 von gpipperr