View previous topic :: View next topic |
Author |
Message |
Battlestar Gentoo l33t
Joined: 23 Dec 2004 Posts: 708 Location: Wien
|
Posted: Thu Feb 22, 2007 10:11 pm Post subject: Warum kann ich als User X abschießen? |
|
|
Hallo,
irgendwie wundere ich mich, dass ich als normaler User den X-Server mit dem Kill-Befehl abschießen kann. Ich dachte nie so wirklich darüber nach, aber eigentlich dürfte das doch gar nicht gehen, oder?
Die Ausgabe von ps aux zu dem X-Server-Prozess lautet:
Code: | root 5223 12.3 2.3 33436 24312 tty7 SLs+ 23:07 0:19 X :0 -nolisten tcp -br -auth /home/markus/.serverauth.5203 -deferglyphs 16
|
Meine Gruppenzugehörigkeiten:
Code: | disk lp wheel floppy audio cdrom video games cdrw usb users ldap scanner
|
_________________ vorher: Gentoo Reptile |
|
Back to top |
|
|
amne Bodhisattva
Joined: 17 Nov 2002 Posts: 6378 Location: Graz / EU
|
Posted: Thu Feb 22, 2007 11:04 pm Post subject: |
|
|
Jeder User darf nur seinen eigenen XServer abschiessen. Logg dich einmal mit einem zweiten User ein und mach startx -- :1, dann als einer der beiden killall X. Ist also nichts, über das man sich Sorgen machen müsste. _________________ Dinosaur week! (Ok, this thread is so last week) |
|
Back to top |
|
|
mrsteven Veteran
Joined: 04 Jul 2003 Posts: 1938
|
Posted: Thu Feb 22, 2007 11:11 pm Post subject: |
|
|
Oh je, die Sache ist etwas komplizierter: Prinzipiell hat jeder Prozess zwei User IDs (effektive und reale), unter denen er läuft. Normalerweise sind beide auf die User ID des Benutzers gesetzt, der das Programm startet.
Der X-Server wird normalerweise mit gesetztem SetUID-Flag installiert:
Code: | $ ls -l /usr/bin/Xorg
-rws--x--x 1 root root 1599084 21. Feb 12:00 /usr/bin/Xorg |
Dadurch wird der X-Server immer mit der effektiven User ID des Systemverwalters root gestartet. Dadurch hat der X-Server die gleichen Rechte wie ein Prozess, der von root gestartet wurde, auch wenn X via startx von einem normalen User gestartet wurde. So kann der X-Server z.B. direkt auf die Grafikhardware zugreifen.
Die reale User ID des Servers ist jedoch immer noch die des aufrufenden Benutzers, in deinem Fall die von markus. Die Manpage von kill (2) sagt, dass du einem Prozess ein Signal schicken kannst, wenn eine der beiden User IDs des Prozesses mit deiner übereinstimmt, was genau hier der Fall ist.
Prinzipiell ist das ein Bug im X-Server, weil der seine reale User ID nicht auf seine effektive ID setzt.
Wenn du nicht willst, dass ein Benutzer das System unbrauchbar macht, indem er via startx X hochfährt um den Server dann gleich mit einem SIGKILL abzuschießen, dann löschst du am besten das SetUID-Bit vom X-Server und verwendest einen Display-Manager.
Ich hoffe das war einigermaßen verständlich... _________________ Unix philosophy: "Do one thing and do it well."
systemd: "Do everything and do it wrong." |
|
Back to top |
|
|
Battlestar Gentoo l33t
Joined: 23 Dec 2004 Posts: 708 Location: Wien
|
Posted: Fri Feb 23, 2007 3:46 pm Post subject: |
|
|
Danke für eure Erklärung. Ich dachte schon an eine Fehlkonfiguration in meinem System. _________________ vorher: Gentoo Reptile |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|