Re: chown / chgrp als normaler user
Thomas Hertweck wrote:
Kyek, Andreas, VF-DE wrote:
[...] Wenn es gehen würde, könnte Linux, was die security angeht, dicht machen, oder? Überleg mal: Wenn Du als User ein Programm schreibst und kannst danach dieses Programm mittels chown einem anderen User "schenken", dann liefe dieses Programm auch mit den Rechten des anderen Users (die sich von Deinen durchaus unterscheiden können!)
Huch? (tm) Natuerlich ist es gut, dass nicht jeder einfach nach Belieben einem User gewisse Dateien "unterschieben" kann, das koennte zu grossen Problemen fuehren (mag sich jetzt jeder selbst ausdenken, welche Dateien man einem User unterschieben koennte, um zumindest dessen Ruf zu ruinieren oder noch schlimmeres anzuzetteln). Aber Deine Schlussfolgerung ist falsch. Damit ein Programm als der User ausgefuehrt wird, dem das Programm gehoert, muss es das SUID-Bit (set user id on execution) tragen. Ansonsten wird es "im Namen" des aufrufenden Users gestartet, sofern er ueberhaupt die Rechte dazu hat.
Ich weiss das mit dem S-Bit, die Erwähnung dessen fehlte nur in meiner _kurzen_ Erklärung. Hier ein Beispiel (teilweise als root natürlich, weil ansonsten der chmod nicht geht!) Hier (SuSE 9.0, Kernel 2.6.7): --- cut here --- akyek@linux:~> sux Password: linux:~ # echo 'rm -rf * 2>/dev/null' > rm linux:~ # chmod 4755 rm linux:~ # ls -al rm -rwsr-xr-x 1 root root 21 Jul 28 11:23 rm linux:~ # chown akyek rm linux:~ # ls -al rm -rwsr-xr-x 1 akyek root 21 Jul 28 11:23 rm linux:~ # exit akyek@linux:~ # chgrp trusted rm akyek@linux:~ # ls -al rm -rwsr-xr-x 1 akyek trusted 21 Jul 28 11:23 rm akyek@linux:~ # sux Password: linux:~ # chown root rm linux:~ # ls -al rm -rwsr-xr-x 1 root trusted 21 Jul 28 11:23 rm --- cut here --- d.h. auch jetzt schon bleiben (zumnindest hier) sowohl beim chmod als auch beim chgrp das S-Bit erhalten. Wenn nun noch jeder user chown darf, wechsel ich zu Windows. Andreas
Am Mittwoch, 28. Juli 2004 11:40 schrieb Kyek, Andreas, VF-DE:
Hier ein Beispiel (teilweise als root natürlich, weil ansonsten der chmod nicht geht!)
Kurz: you have a problem!
Hier (SuSE 9.0, Kernel 2.6.7):
relativ unwichtig, die Version der coreutils ist wichtiger
--- cut here --- linux:~ # chown akyek rm linux:~ # ls -al rm -rwsr-xr-x 1 akyek root 21 Jul 28 11:23 rm
autsch hier Debian(testing/unstable) Linux einstein 2.6.7-1-686 #1 Thu Jul 8 05:36:53 EDT 2004 i686 GNU/Linux einstein:/tmp/blubb# chown --version chown (coreutils) 5.2.1 Geschrieben von David MacKenzie und Jim Meyering. Copyright (C) 2004 Free Software Foundation, Inc. Dies ist freie Software; die Kopierbedingungen stehen in den Quelltexten. Es gibt keine Garantie; auch nicht für VERKAUFBARKEIT oder FÜR SPEZIELLE ZWECKE. -- cut here -- andreas@einstein:/tmp/blubb$ su Password: einstein:/tmp/blubb# echo 'rm -rf * 2>/dev/null' > rm einstein:/tmp/blubb# chmod 4755 rm einstein:/tmp/blubb# ls -al rm -rwsr-xr-x 1 root root 21 2004-07-28 12:05 rm einstein:/tmp/blubb# chown andreas rm einstein:/tmp/blubb# ls -al rm -rwxr-xr-x 1 andreas root 21 2004-07-28 12:05 rm --end cut --- Andreas
Am Mittwoch, 28. Juli 2004 11:40 schrieb Kyek, Andreas, VF-DE:
Wenn nun noch jeder user chown darf, wechsel ich zu Windows.
Nachtrag: wenn sich ein _wichtiges_ systemnahes Programm nicht wie in der Manpage beschrieben verhält, würde ich eher nach der Ursache suchen, als zu Windows zu wechseln, evtl. hat Dir ja jemand eine unkoshere Version von chown untergeschoben... Andreas
Am Mittwoch, 28. Juli 2004 12:12 schrieb Andreas Loesch:
Nachtrag: wenn sich ein _wichtiges_ systemnahes Programm nicht wie in der Manpage beschrieben verhält, würde ich eher nach der Ursache suchen, als zu Windows zu wechseln, evtl. hat Dir ja jemand eine unkoshere Version von chown untergeschoben...
jetzt muss ich schon mit mir selber reden :) steht nicht im man sondern unter info coreutils chown... Andreas PS: Suse 9.1 Pro mit corutils 5.2.1 liefert auch die erwarte Reaktion.
Kyek, Andreas, VF-DE wrote:
[...] Ich weiss das mit dem S-Bit, die Erwähnung dessen fehlte nur in meiner _kurzen_ Erklärung.
Du schriebst "Wenn Du als User ein Programm schreibst und kannst danach dieses Programm mittels chown einem anderen User "schenken", dann liefe dieses Programm auch mit den Rechten des anderen Users (die sich von Deinen durchaus unterscheiden können!)". Diese Aussage ist schlicht - so wie sie dargestellt wurde - falsch, ob Du nun eine kurze oder lange Erklaerung dazu abgibst :-) Solange ich als User ein Programm aufrufe und dieses Programm nicht das SUID-Bit hat, laeuft es unter meinem Namen, nicht unter dem Namen des Users, dem das Programm gehoert.
Hier ein Beispiel (teilweise als root natürlich, weil ansonsten der chmod nicht geht!) [...] Wenn nun noch jeder user chown darf, wechsel ich zu Windows.
Ich verstehe die ganze Aufregung nicht. Die UID kann nur root aendern. Die GID einer Datei kann ein User aendern, sofern er der neuen GID angehoert. Das ist doch alles OK so. Uebrigens wirst Du mit einem SUID-Bit bei einem Shell-Skript, wie in Deinem Beispiel gegeben, nicht weit kommen, es wirkt naemlich nicht. Gruesse, Th.
participants (3)
-
Andreas Loesch
-
Kyek, Andreas, VF-DE
-
Thomas Hertweck