Работают ли возможности Linux с binfmt_misc?
Я потенциально заинтересован в использовании возможностей Linux для программы (в частности, cap_net_bind_service
разрешить привязку программы к порту TCP менее 1024).
Тем не менее, я хотел бы сделать это для программы на C#, работающей под Mono. Обычно, я думаю, это означало бы, что самому интерпретатору Mono нужно было бы установить возможности, а не whatever.exe
Программа, которую он запускает.
Тем не менее, Linux также может иметь поддержку двоичного ядра Mono через механизм ядра binfmt_misc.
Итак, работает ли механизм ядра binfmt_misc с возможностями? То есть, чтобы конкретный исполняемый файл с поддержкой binfmt_misc мог работать с определенным набором возможностей.
1 ответ
Обычно, я думаю, это означало бы, что самому интерпретатору 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