Tôi đang tự hỏi về tính bảo mật của tín hiệu UNIX.
SIGKILL
sẽ giết quá trình. Vậy, điều gì xảy ra khi một quá trình người dùng root không gửi tín hiệu đến tiến trình của người dùng root? Liệu quá trình vẫn thực hiện xử lý tín hiệu?
Tôi làm theo câu trả lời được chấp nhận (gollum's) và tôi gõ man capabilites
và tôi tìm thấy rất nhiều điều về nhân Linux. Từ 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
và SIGSTOP
...
SIGKILL
. Ban đầu SIGINT
, SIGKILL
và SIGTERM
sẽ có cùng hiệu ứng, sự khác biệt duy nhất là quá trình nhận có thể thay đổi mặc định này đối với một số trong số chúng.
SIGKILL
, đó là trường hợp đặc biệt và được quản lý hoàn toàn bởi kernel, tín hiệu chỉ là một yêu cầu. Quá trình tiếp nhận có thể làm bất cứ điều gì họ muốn với họ.