Unix功能如何工作?

时间:2011-09-28 18:53:16

标签: unix linux-kernel

似乎启动内核2.2,他们引入了功能的概念。根据关于功能的unix手册页,它说如果你不是root用户,你可以通过每个线程调用cap_set_proc来授予自己的功能。这是否意味着如果您正在为unix编写恶意软件,您是否只是授予自己一堆功能并破坏系统?如果没有,那么如何授予运行程序所需的功能?

似乎Unix的安全模型非常有缺陷的原语。我这样做了吗?

我会更具体:

您(作为非root用户运行时)如何向另一个在不同用户下运行的进程发送信号?在信号手册页上,它表示您需要CAP_KILL功能才能执行此操作。但是,阅读功能手册页,我不确定如何授予进程该功能。

2 个答案:

答案 0 :(得分:1)

来自man cap_set_proc

  

请注意,默认情况下,只有具有CAP_SETPCAP可用的进程才是作为内核线程启动的进程。 (通常这包括init(8),kflushd和kswapd)。您需要重新编译内核以修改此默认值。

相信我,如果这很容易,我相信现在有人会利用它。与其他操作系统相比,Unix的安全模型可能很简单,但并不意味着它“有缺陷”。

答案 1 :(得分:-1)

这是不可能的。请改用套接字或文件。