許可されていない端末がsudoを介して他のユーザーによって開始されたプロセスに割り込み信号をどのように発行できますか?

許可されていない端末がsudoを介して他のユーザーによって開始されたプロセスに割り込み信号をどのように発行できますか?

自分で見てください:

% sudo sleep 100 &
[1] 23272
% pkill sleep
pkill: killing pid 23275 failed: Operation not permitted
% fg
[1]  + running    sudo sleep 100
^C
%

ここで端末はどのようにsleep特権プロセスを終了できますか?

私は2つのことを確認して確認しました。

  • 他のユーザーに属するプロセスにシグナルを送信しますnobody

    % sudo -u nobody sleep 100 &
    [1] 24321
    % pkill sleep
    pkill: killing pid 24324 failed: Operation not permitted
    

    試してみましたが、SIGTERMどちらも配達されませんでしたSIGKILLSIGINT

  • Ctrl+C は SIGINT を送信します。

    % cat script.sh
    #!/bin/sh
    
    trap 'echo "SIGINT caught!"' SIGINT
    
    while true
    do
        sleep 1
    done
    % ./script.sh
    ^CSIGINT caught!
    

だからここに矛盾があるようです。

関連情報