我可能对将Linux功能用于程序(特别是cap_net_bind_service
以允许程序绑定到小于1024的TCP端口)感兴趣。
但是,我想为在Mono下运行的C#程序执行此操作。通常情况下,我认为这意味着Mono解释器本身需要设置其功能,而不是它运行的whatever.exe
程序。
但是,Linux也可以通过内核Mono binary kernel support机制获得binfmt_misc。
那么,内核binfmt_misc机制是否具有功能?也就是说,特定于启用binfmt_misc的可执行文件可以使用特定功能集运行。
答案 0 :(得分: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