Исправить право собственности на каталог на сервере Ubuntu 20

Веб-сайт WordPress моего клиента размещен в Digital Ocean. Я установил разрешения, рекомендованные на этой странице , но столкнулся с проблемами доступа к каталогу example.com на сервере с использованием SSH. Когда я пытаюсь получить доступ к каталогу с помощью cd example.com , отображается следующее сообщение: -bash: cd: example.com: Permission denied .

Я выполнил команду stat в каталоге example.com, и результат приведен ниже.

File: example.com
Size: 4096          Blocks: 8          IO Block: 4096   directory
Device: fc01h/64513d    Inode: 258961      Links: 5
Access: (0750/drwxr-x---)  Uid: (   33/www-data)   Gid: (   33/www-data)

Я также не могу подключиться через SFTP, используя пользователя SSH, которого я создал при настройке капли. На моем MacBook Pro программа Transmit отображает следующее сообщение: Убедитесь, что у вас есть разрешение на изменение этого файла.

Если я изменю права доступа к каталогу на sudo chown -R example: example /var/www/example.com SFTP подключается, но установка WordPress работает некорректно.

Что мне нужно изменить, чтобы WordPress, SSH и SFTP работали правильно с соответствующими разрешениями?

0
задан 7 April 2021 в 19:54

1 ответ

Общие разрешения для файлов веб-сайтов:

chown apache:apache -R * # change to the user and owner set for apache
find . -type d -exec chmod 755 {} \;  # directory permissions: rwxr-xr-x
find . -type f -exec chmod 644 {} \;  # file permissions: rw-r--r--

На странице усиления WP указано:

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

  • / Корневой каталог WordPress: все файлы должны быть доступны для записи только вашей учетной записи, кроме .htaccess, если вы хотите, чтобы WordPress автоматически генерировал правила перезаписи для вас.
  • / wp-admin / Область администрирования WordPress: все файлы должны быть доступны для записи только вашей учетной записи.
  • / wp-includes / Основная часть логики приложения WordPress: все файлы должны быть доступны для записи только вашей учетной записи.
  • / wp-content / Пользовательский контент: предназначен для записи вашей учетной записью и процессом веб-сервера.

В / wp-content / вы найдете:

  • / wp-content / themes / Файлы тем. Если вы хотите использовать встроенный редактор тем, все файлы должны быть доступны для записи процессу веб-сервера. Если вы не хотите использовать встроенный редактор тем, все файлы могут быть доступны для записи только вашей учетной записи.

  • / wp-content / plugins / Файлы подключаемых модулей: все файлы должны быть доступны для записи только вашей учетной записи.

  • Другие каталоги, которые могут присутствовать в / wp-content / , должны быть задокументированы тем плагином или темой, который их требует. Разрешения могут отличаться.

Итак, cd в каталог Wordpress и выполните:

chown $USER:$USER  -R * # Let your useraccount be owner
chown www-data:www-data wp-content # Let apache be owner of wp-content
  • последний вариант субъективен, так как он зависит от того, как вы хотите его использовать.

Теперь все файлы WP можно обновлять напрямую через ssh и ftp, используя свое имя пользователя.

Это, вероятно, сработает (я использовал свой облачный экземпляр, но у меня нет WP)


Мое личное мнение:

НИКОГДА не обновляйте файлы веб-сервера напрямую, а делайте это косвенно, и пусть система сама выполняет обновление. Если вы загружаете файл в определенный каталог, вы можете загружать все файлы, которые хотите, как ваш пользователь, без необходимости просмотра разрешений.

  • дублируйте свой веб-сайт, например, / home / $ USER / website /

  • Используйте эти файлы для edit

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

  • Две команды для этого выглядят следующим образом (адаптируйтесь к вашей ситуации; я использовал широкий выбор (т.е. весь веб-сайт)):

     tar cvfz / u / backups / "$ (date +"% Y_% m_% d_% I_% M_% p "). tar.gz" / var / www / 
    sudo cp -rp / home / $ USER / website / / var / www / 
     
0
ответ дан 23 April 2021 в 23:25

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

Похожие вопросы: