Разрабатываете и разворачиваете приложение, которое будет запускаться от имени root с помощью setuid?

У меня есть приложение, которое должно работать с правами root.

Использование бита setuid в файле приложения кажется логичным выбором. Насколько я понимаю, setuid состоит в том, что файлы должны принадлежать пользователю root и быть доступными для записи только пользователю root, в противном случае недоверенный пользователь с разрешениями на запись может редактировать файл и выполнять что-либо в контексте root.

Однако это усложняет развертывание приложения, так как мне нужно установить владельца файла как root после его развертывания (удаленного из удаленного репозитория Git), что-то вроде:

 sudo chown root:root /app/rootprog
 sudo chmod 6711 /app/rootprog

Есть ли способ избежать этого или лучший способ разработки и развертывания приложения, которое должно запускаться от имени пользователя root?

1 ответ

Решение

Приложение, которое должно работать от имени пользователя root, должно быть установлено администратором с правами доступа root. Это можно сделать с помощью повышения привилегий (например, через sudoили эквивалент).

Лучший способ развертывания приложения зависит от нескольких факторов, но, вероятно, лучше всего это сделать с помощью основного менеджера пакетов дистрибутива. Это может означать предоставление файла RPM для загрузки или добавление пакета в доступный из Интернета репозиторий.

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