www-data и сервер пользователя

У меня есть установка WordPress на моем первом VPS, и проблема владения с пользователем www-data и пользователем, которого я создал (назовем его user1), чтобы использовать для входа (я отключил root-вход).

Я использую user1 для FTP, но я не могу перезаписать файлы, принадлежащие www-данным, и если я перебиваю все файлы для user1, я могу перезаписать, но WordPress не может установить что-либо с панели управления или удалить, пока я не верну право собственности к www-данным.

Как я могу иметь оба? Пользователь FTP, который способен писать, перезаписывать файлы и иметь возможность добавлять, удалять и обновлять плагины с панели инструментов?

Заранее спасибо!

1 ответ

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

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

Чтобы сделать каталог доступным для записи для www-данных, оставаясь при этом владельцем user1, у вас есть несколько вариантов:

  1. Добавьте www-данные в группу, которой принадлежат веб-файлы, и сделайте группу файлов доступной для записи, например:

    adduser www-data webdev
    chgrp -R webdev $plugindir
    chmod -R g+w $plugindir
    
  2. Добавьте ACL, чтобы разрешить это:

    setfacl -R -m u:www-data:rwX $plugindir
    
Другие вопросы по тегам