Я хотел бы создать API с использованием Nginx (на сервере Ubuntu), который может запускать процессы (выполнять команды), но www-data не является пользователем, имеющим доступ к данным, над которыми эти процессы будут работать. Каков обычный способ сделать это без ущерба для безопасности. Другими словами, как я могу заставить API выполнять команды от имени другого пользователя?
2 ответа
www-data - это просто пользователь, который запускает процесс NGINX по умолчанию, я предполагаю, что ваш API работает за NGINX, тогда ваш API будет работать как www-data. Чтобы решить, как я полагаю, проблему с разрешениями, которые возникают у вас при тестировании, вам нужно изменить права доступа к вашим данным (если они локальные), чтобы позволить пользователю и / или группе www-данных читать / писать или создавать нового пользователя для NGINX. бежать.
Несколько указателей при работе с NGINX:
Не предоставляйте root-права пользователю, работающему с вашим веб-сервером, потому что тогда ваше веб-приложение будет иметь root-доступ к вашей системе, открывая ненужные уязвимости.
Не делайте ваши данные общедоступными (открытые разрешения для всех пользователей), но ограничивайте их владельцем и конкретными пользователями, которые будут к ним обращаться, даже если вы считаете, что ваш сервер защищен.
Если это не то, что вы ищете, пожалуйста, уточните, чтобы получить лучшие и более точные ответы.
Изменить: понял, что я никогда не давал вам команды для переключения пользователя:
Чтобы изменить разрешения для файла, вы можете использовать chmod и chown, например, чтобы изменить права доступа к файлам для пользователя www-data:
chmod 500 file1 file2 file3
chmod -R 500 directory1/
chown www-data:www-data file1 file2 file3
chown -R www:data:www-data directory1
Должен начать!
С уважением
Поддержание списка заданий на исполняющем сервере и локальное выполнение заданий (команд), например, cron, звучало как хороший способ сделать это. Полностью разделяющий API, который создает команды и данные для работы. Нет необходимости маскировать и массивные chmods и т.д. Все время ...