Когда я запускаю сервер Unicorn в Linux, я не могу понять, запускать ли сервис в системе или под обычным пользователем. Какой из них использовать и почему?
«Системный пользователь» - очень неоднозначное утверждение.
Тем не менее, общее практическое правило - предоставить каждой службе своего собственного конкретного пользователя, и этот пользователь должен иметь разрешения только на свое собственное пространство приложения (т.е. apache
пользователь не должен вмешиваться в ваши bind
пользовательские элементы управления и наоборот). Более того, у этих пользователей не должно быть никаких «системных» разрешений.
Причина здесь в том, что в случае, если служебное приложение каким-то образом будет скомпрометировано (или просто попытается сделать что-то нежелательное / глупое само по себе), вы не хотите, чтобы у него была возможность изменять что-либо, кроме самого себя. Вы хотите сохранить его как можно более изолированным от остальной системы.
Пользователь Flimzy на Суперпользователь объясняет это в немного подробнее.