3

我可能对将 Linux 功能用于程序(特别cap_net_bind_service是允许程序绑定到小于 1024 的 TCP 端口)感兴趣。

但是,我想为在 Mono 下运行的 C# 程序执行此操作。通常,我认为这意味着 Mono 解释器本身需要设置功能,而不是whatever.exe它运行的程序。

但是,Linux 也可以通过内核binfmt_misc机制支持 Mono 二进制内核。

那么,内核 binfmt_misc 机制是否适用于功能?也就是说,启用 binfmt_misc 的特定可执行文件可以使用特定的功能集运行。

4

1 回答 1

0

通常,我认为这意味着 Mono 解释器本身需要在其上设置功能[...]

如果您在有问题的进程树上而不是在文件上设置功能,那么 binfmt_misc 就没有问题了。

请参阅cap_set_proc()和操作它的工具。例如,如果您使用的是 systemd:

[Service]
ExecStart=/usr/bin/mono /path/to/your/executable.exe
User=your_service_account
Capabilities=CAP_NET_BIND_SERVICE
于 2015-05-13T00:33:12.113 回答