Разрабатываете и разворачиваете приложение, которое будет запускаться от имени 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 для загрузки или добавление пакета в доступный из Интернета репозиторий.