UNIX 신호의 보안에 대해 궁금합니다.
SIGKILL
프로세스를 종료합니다. 루트가 아닌 사용자 프로세스가 루트 사용자의 프로세스에 신호를 보내면 어떻게됩니까? 프로세스가 여전히 신호 핸들러를 수행합니까?
나는 받아 들인 대답 (골룸)을 따르고 입력 man capabilites
하고 Linux 커널에 대해 많은 것을 발견합니다. 보낸 사람 man capabilities
:
NAME
capabilities - overview of Linux capabilities
DESCRIPTION
For the purpose of performing permission checks, traditional UNIX
implementations distinguish two categories of processes: privileged
processes (whose effective user ID is 0, referred to as superuser or
root), and unprivileged processes (whose effective UID is nonzero).
Privileged processes bypass all kernel permission checks, while
unprivileged processes are subject to full permission checking based
on the process's credentials (usually: effective UID, effective GID,
and supplementary group list).
Starting with kernel 2.2, Linux divides the privileges traditionally
associated with superuser into distinct units, known as capabilities,
which can be independently enabled and disabled. Capabilities are a
per-thread attribute.
SIGKILL
및 SIGSTOP
... 이외
SIGKILL
합니다. 처음에 SIGINT
, SIGKILL
그리고 SIGTERM
동일한 영향을 미칠 것입니다, 유일한 차이점은 수신 프로세스가 그들 중 일부에 대한이 기본값을 변경할 수 있다는 것입니다.
SIGKILL
특별한 경우이며 커널이 완전히 관리하는 이외의 신호는 단지 요청 일뿐입니다. 수신 프로세스는 원하는대로 무엇이든 할 수 있습니다.