Установка флага SUID для файла?

У меня есть файл Python, на котором я хотел бы установить флаг SUID. Таким образом, если любой обычный пользователь выполняет его, он выполняется от имени пользователя root. Я знаю, что это проблема безопасности, но мне все еще нужно установить флаг SUID.

1 ответ

Решение

Вам нужен собственный образ, чтобы бит suid работал на современных Unixes. Если у вас действительно есть это требование, я написал бы программу на C/C++ со встроенным кодом Python, который очищает среду и затем выполняет сценарий.

Хороший способ сделать это - использовать boost::python для встраивания Python в программу C++, чтобы вы могли создать безопасное статически связанное изображение.

В зависимости от того, что вы действительно пытаетесь сделать, другой вариант - превратить ваш скрипт в процесс демона, запущенный из известного контекста (например, с помощью daemontools), и затем заставить пользователей общаться с ним, когда им нужно что-то сделать, например использование именованного канала с соответствующим контролем доступа.

Подходит ли второй вариант, зависит от того, что вам действительно нужно.

Другие вопросы по тегам