Назад | Перейти на главную страницу

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

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

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

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

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

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

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

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

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

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

    setfacl -R -m u:www-data:rwX $plugindir