我以非特权用户身份启动一个 Java 程序,并使用 sudo 进入该程序,然后退出 shell。再次以 root 身份尝试 kill -9 java 进程。这会导致“权限被拒绝”错误。然后我再次 sudo 到拥有该权限的用户。Kill 工作正常。此行为可重现环境是 VMWare 上的虚拟机,SLES 15.2,采用 JDK 17(尽管这应该无关紧要,或者根本不是 Java)。
这是如何工作的?作为 root,我应该能够杀死任何未卡在内核模式的东西。谁应该为这种意外行为负责?(Poettering 以什么为借口引入了这一变化 - 开玩笑而已 ;)
答案1
检查您是否启用了 Apparmor,它可以阻止您以非所有者身份终止该进程的尝试。