setuid und Coredumps

Post Reply
Message
Author
User avatar
hjb
Pro-Linux
Posts: 3264
Joined: 15. Aug 1999 16:59
Location: Bruchsal
Contact:

setuid und Coredumps

#1 Post by hjb »

Hi!

Aus der setuid-Manpage:

If uid is different from the old effective uid, the process will be forbidden
from leaving core dumps.

Wie kann man das umgehen und Coredumps dennoch ermöglichen? Das Verhalten von setreuid scheint identisch zu sein.

Danke,
hjb
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?

Marco Gerber

#2 Post by Marco Gerber »

guten Tag

Ich habe hier gerade den Source des Kernels 2.6.11 vor mir.
In der Datei arch/i386/kernel/ptrace.c steht folgendes:

Code: Select all

ab Zeile 680:
680 asmlinkage long sys_setuid(uid_t uid)
681 {
682         int old_euid = current->euid;
....

701         if (old_euid != uid)
702         {
703                 current->mm->dumpable = 0;
704                 wmb();
705         }
Deinem Vorhaben wird also in Zeile 703 ein Riegel geschoben.

Ich kenne das Ausmass deines Vorhabens nicht, aber zu Testzwecken koenntest du die Zeile dort enstprechend anpassen auf:

Code: Select all

703                 current->mm->dumpable = 1;
(nicht getestet !)

Ansonsten musst du mehr Informationen geben, in welchem Umfang dies geschehen soll...


hth

Marco

User avatar
hjb
Pro-Linux
Posts: 3264
Joined: 15. Aug 1999 16:59
Location: Bruchsal
Contact:

#3 Post by hjb »

Hi!

Danke, das ist schon mal ein Hinweis. Nun möchte ich nicht unbedingt den Kernel patchen. Es wäre zwar möglich, aber wenn das Programm durch einen bestimmten Aufruf die Option selbst wieder einschalten könnte, wäre mir das lieber.

Das Programm ist ein Daemon, der als Root (aus init.d heraus) gestartet wird und dann als anderer User laufen soll. Wie Apache usw.

Danke,
hjb
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?

Post Reply