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

673
Allyl Isocyanate

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

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

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

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

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

1

1 ответ на вопрос

1
RedGrittyBrick

An application that has to run as root must be installed by an administrator with root access. This can be done using privilege escalation (e.g. via sudoor equivalent).

The best way to deploy the application depends on several factors but is probably best done by means of the distribution's primary package manager. This might mean providing an RPM file for download or it might mean adding a package to an Internet-accessible repository.

Похожие вопросы