Правильное использование www-данных для безопасного добавления / редактирования / удаления

После создания стека LAMP, я понимаю, что Apache создает www-data пользователь. Но вы не можете войти как www-data (причины безопасности). Вместо этого, если вы хотите сделать что-то как www-data тогда вы должны запустить это:

su -s /bin/bash www-data

Я могу жить с этим. Но у меня есть 2 вопроса:

  1. Что вы делаете, когда хотите загрузить файлы через FTP? В настоящее время я должен FTP как пользователь root, а затем chown файлы обратно www-data после загрузки. Я запускаю Magento, и эта установка требует, чтобы я owner разрешения на write, В противном случае, я бы просто дал write доступ к group,
  2. Что вы делаете, когда хотите разрешить некорневому пользователю su как www-data? Потому что если вы запустите su -s /bin/bash www-data как обычный пользователь, то они видят This account is currently not available,

1 ответ

Решение

я понимаю, что Apache создает пользователя www-data

Нет. Большинство систем управления пакетами создают пользователя при развертывании программного обеспечения.

Вы не можете напрямую войти как [этот пользователь]

Да, как вы говорите, это обычно делается из соображений безопасности.

Вы должны... su -s /bin/bash www-data

Если система настроена таким образом, чтобы это разрешать - иногда даже это отключается.

Что вы делаете, когда хотите загрузить файлы через FTP?

Вы разрабатываете модель разрешений, которая позволяет соответствующим пользователям развертывать и изменять файлы и пользовательский веб-сервер для чтения этих файлов. В очень редких и контролируемых случаях вы конфигурируете местоположения вне корневого каталога документа, в который может записывать uid веб-сервера.

На каждом настроенном мной веб-сервере uid веб-сервера является наименее привилегированной учетной записью, поэтому я предоставил ему доступ для чтения через "другой" слот разрешений, например

  colin@animal /var/www/html $ ls -l
  total 28
  -rw-rw-r-- 1 colin webdev  11321 Dec 27  2016 index.html
  drwxrwsr-x 2 colin webdev   4096 Jan 10  2017 session
  -rw-rw-r-- 1 colin webdev    148 Feb 18  2018 login.php
  drwxrwsr-- 1 colin grafx    4096 Jan  9  2017 images
  -rw-rw-r-- 1 colin grafx    8334 Jul  4 21:59 logo.png

Разрешения - это средство, которым вы делитесь доступом, а не запрещаете доступ.

разрешить некорневому пользователю su как www-данные

Я не. Это никогда не должно быть необходимым.

Другие вопросы по тегам