system () и наследуют возможности lxc

В системе Linux пользователь без полномочий root создает программу / процесс на C ++. Этот процесс имеет возможности CAP_DAC_OVERRIDE, CAP_SYS_ADMIN а также CAP_SYS_RAWIO с режимом effective, permitted, inheritable, Эти возможности прикреплены к файлу, который может быть прочитан lxc.

Этот процесс вызывает system("dumpe2fs -h /dev/sda1...") прочитать информацию о разделе на жестком диске.

Когда это вызывает system("...")Дочерний процесс dumpe2fs создано. Но dumpe2fs похоже, не наследует три возможности, как ожидалось.

Как я могу заставить дочерний процесс наследовать возможности?

0

Решение

«Когда он вызывает system (» … «), создается дочерний процесс dumpe2fs.»

Я считаю, что system () вызывает оболочку по умолчанию и запускает dumpe2fs Команда в этом. Таким образом, это не будет дочерний процесс, работающий непосредственно под текущим процессом, как в fork() вызов.

Вам нужно что-то вроде execve Функция для этого.

Возможно, вы захотите взглянуть на другие функции этого семейства, чтобы выполнить ваши конкретные требования:
http://man7.org/linux/man-pages/man3/exec.3.html

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]