ptrace: allow to ptrace /sbin/init
PATCH 1/1 ptrace: allow to ptrace /sbin/init
Afaics, currently there are no kernel problems with ptracing init, it can't lose SIGNAL_UNKILLABLE flag and be killed/stopped by accident.
The ability to strace/debug init can be very useful if you try to figure out why it does not work as expected.
However, admin should know what he does, "gdb /sbin/init 1" stops init, it can't reap orphaned zombies or take care of /etc/inittab until continued. It is even possible to crash init (and thus the whole system) if you wish, ptracer has full control.
See also the long discussion: http://marc.info/?t=120628018600001
kernel/ptrace.c renamed from kernel/ptrace.c~INIT_PTRACEABLE +0 -8
@@ -168,8 +168,6 @@ int ptrace_attach(struct task_struct *taaudit_ptrace (task); retval = -EPERM ; -if (task->pid <=1 ) - goto out;if (same_thread_group (task, current)) goto out;
@@ -517,12 +515,6 @@ struct task_struct *ptrace_get_task_stru {struct task_struct *child; -/* -* Tracing init is not allowed. -*/ -if (pid ==1 ) -return ERR_PTR (-EPERM ); -read_lock (&tasklist_lock); child =find_task_by_vpid (pid);if (child)
Quoted 6 lines · Oleg Nesterov
Afaics, currently there are no kernel problems with ptracing init, it can't lose
SIGNAL_UNKILLABLEflag and be killed/stopped by accident.The ability to strace/debug init can be very useful if you try to figure out why it does not work as expected.
Quoted 8 lines
However, admin should know what he does, "gdb
/sbin/init1" stops init, it can't reap orphaned zombies or take care of/etc/inittabuntil continued. It is even possible to crash init (and thus the whole system) if you wish, ptracer has full control.See also the long discussion: http://marc.info/?t=120628018600001
Signed-off-by Oleg Nesterov <[email protected]>