Hallo beisammen, eine Frage, die mehr Linux betrifft, als speziell SuSE: Ist es möglich, den Eigentümer eines Prozesses zu wechseln? Falls dem so sein sollte -- vielleicht hat ja jemand noch nähere Informationen dazu, würde mich freuen. Bis dann Martin
On Thu, Sep 18, 2003 at 10:52:55PM -0400, Martin Röhricht wrote:
eine Frage, die mehr Linux betrifft, als speziell SuSE: Ist es möglich, den Eigentümer eines Prozesses zu wechseln? Falls dem so sein sollte -- vielleicht hat ja jemand noch nähere Informationen dazu, würde mich freuen.
Der Eigentümer eines Prozesses wird einem Prozeß bei der Erzeugung von seinem Elternprozeß vererbt. Oder anders gesagt, jeder Prozeß, den Du startest, gehört hinterher Dir. Technisch: fork() kopiert die UID des Parent-Prozesses in den neuen Kindprozeß. Der Eigentümer eines Prozesses kann sich während der Laufzeit auf zwei Weisen ändern: 1. Der Prozeß führt einen exec*(2)-Systemaufruf aus auf ein Binary, das SUID oder SGID ist. In diesem Fall wird die EUID oder EGID des Prozesses mit der UID bzw. GID des Binaries überschrieben. 2. Der Prozeß ist privilegiert (hat CAP_SETUID, auf Deinem System wahrscheinlich: hat die UID 0) und führt einen der Systemaufrufe aus der setuid(2)/setgid(2)-Familie aus. Kristian
On 19.09.2003 01:13 Kristian Koehntopp wrote:
On Thu, Sep 18, 2003 at 10:52:55PM -0400, Martin Röhricht wrote:
eine Frage, die mehr Linux betrifft, als speziell SuSE: Ist es möglich, den Eigentümer eines Prozesses zu wechseln? Falls dem so sein sollte -- vielleicht hat ja jemand noch nähere Informationen dazu, würde mich freuen.
Der Eigentümer eines Prozesses wird einem Prozeß bei der Erzeugung von seinem Elternprozeß vererbt. Oder anders gesagt, jeder Prozeß, den Du startest, gehört hinterher Dir. Technisch: fork() kopiert die UID des Parent-Prozesses in den neuen Kindprozeß.
Der Eigentümer eines Prozesses kann sich während der Laufzeit auf zwei Weisen ändern:
1. Der Prozeß führt einen exec*(2)-Systemaufruf aus auf ein Binary, das SUID oder SGID ist. In diesem Fall wird die EUID oder EGID des Prozesses mit der UID bzw. GID des Binaries überschrieben.
2. Der Prozeß ist privilegiert (hat CAP_SETUID, auf Deinem System wahrscheinlich: hat die UID 0) und führt einen der Systemaufrufe aus der setuid(2)/setgid(2)-Familie aus.
Vielen Dank, Christian, das war schon eine große Hilfe. Ich werde zum tieferen Verständnis dessen noch ein bißchen mehr nachlesen müssen um dem ganzen problemlos folgen zu können. Schönes Wochenende, Martin
participants (2)
-
Kristian Koehntopp
-
Martin Röhricht