Да, вам нужно сделать полноценный исполняемый файл веб-сервера службой. Предпочтительно использовать для службы учетную запись не root - я бы даже сказал, что это обязательно - для ограничения ущерба в случае взлома веб-сервера. Я думаю1 systemd
достаточно хорошо документирован, чтобы провести вас через все необходимые шаги.
1 Я не запускаю systemd
, если вдруг возникнет вопрос...
Основная причина, по которой нужно установить способ, проста: простота. Проще обрабатывать бит setuid в каталогах единообразно с другими битами, чем было бы сделать исключение и отклонить попытки установить его.
Другая причина заключается в том, что вы можете смонтировать файловую систему в Linux, установить бит setuid в каталоге, а затем смонтировать эту файловую систему в другой операционной системе, которая действительно обрабатывает бит setuid значимым образом.
Что касается того, почему бит setuid не влияет на каталоги в Linux, то это потому, что никто не нашел для него убедительного значения. Он не может работать так же, как бит setgid, потому что Linux не позволяет пользователю передавать файл другому пользователю .