logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

p_candebug — determine debuggability of a process

Description

       This function can be used to determine if a given process p is debuggable by the thread td.

Errors

       [EACCESS]          The MAC subsystem denied debuggability.

       [EAGAIN]           Process p is in the process of being exec()'ed.

       [EPERM]            Thread td lacks super-user credentials and process p is  executing  a  set-user-ID  or
                          set-group-ID executable.

       [EPERM]            Thread  td  lacks  super-user credentials and process p's group set is not a subset of
                          td's effective group set.

       [EPERM]            Thread td lacks super-user credentials and process p's user IDs do  not  match  thread
                          td's effective user ID.

       [EPERM]            Process   p  denotes  the  initial  process  initproc()  and  the  sysctl(8)  variable
                          kern.securelevel is greater than zero.

       [ESRCH]            Process p is  not  visible  to  thread  td  as  determined  by  cr_seeotheruids(9)  or
                          cr_seeothergids(9).

       [ESRCH]            Thread td has been jailed and process p does not belong to the same jail as td.

       [ESRCH]            The MAC subsystem denied debuggability.

Name

       p_candebug — determine debuggability of a process

Return Values

       The p_candebug() function returns 0 if the process denoted by p is debuggable by thread td, or a non-zero
       error return value otherwise.

See Also

jail(2), sysctl(8), cr_seeothergids(9), cr_seeotheruids(9), mac(9), p_cansee(9), prison_check(9)

Debian                                          November 19, 2006                                  P_CANDEBUG(9)

Synopsis

#include<sys/param.h>#include<sys/proc.h>intp_candebug(structthread*td, structproc*p);

Sysctl Variables

       The following sysctl(8) variables directly influence the behaviour of p_candebug():

       kern.securelevel
               Debugging of the init process is not allowed if this variable is 1 or greater.

       security.bsd.unprivileged_proc_debug
               Must  be  set  to  a  non-zero value to allow unprivileged processes access to the kernel's debug
               facilities.

See Also