Ну, я не знаю о SELinux, но тут на ум приходят несколько «традиционных» решений:
Сначала chown root /usr/bin/PROG_X
, а затем установите бит setuid с помощью chmod +s /usr/bin/PROG_X
. Бит setuid заставляет программу работать не как текущий пользователь, а как владелец файла (в данном случае root). Это означает, что вам необходимо убедиться, что ваша программа максимально безопасна. Так что используйте с осторожностью.
Альтернативой setuid может быть добавление соответствующей записи в /etc/sudoers
для программы и вызов ее через sudo
. Но это имеет те же последствия для безопасности, что и программа, запускаемая от имени пользователя root, но, по крайней мере, вы можете получить более детальный доступ (например, вы можете разрешить пользователю «www» запускать программу от имени root).
Другим решением может быть chown root:wwwrun all_of_the_files_that_PROG_X_need_to_modify
. Но это сработает, только если вы точно знаете, какие файлы, а также если этот набор файлов не изменится.