Я хотел бы создать API с использованием Nginx (на сервере Ubuntu), который может запускать процессы (выполнять команды), но www-data не является пользователем, имеющим доступ к данным, над которыми эти процессы будут работать. Каков обычный способ сделать это без ущерба для безопасности. Другими словами, как я могу заставить API выполнять команды от имени другого пользователя?

2 ответа2

1

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

Должен начать!

С уважением

0

Поддержание списка заданий на исполняющем сервере и локальное выполнение заданий (команд), например, cron, звучало как хороший способ сделать это. Полностью разделяющий API, который создает команды и данные для работы. Нет необходимости маскировать и массивные chmods и т.д. Все время ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .