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

Совет по настройке надлежащих разрешений на сервере Ubuntu 10.04

Я запускаю серверную Ubuntu 10.04 LTS. программный стек, который я использую, состоит из

Чтобы такие вещи, как wordpress, работали правильно. я сделал chown www-данные: www-данные в моей папке public_html. Это все файлы, которые легко изменить с помощью nginx, и такие вещи, как автоматическое обновление wordpress, работают должным образом.

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

Response:   220 (vsFTPd 2.2.2)
Command:    USER gaurish
Response:   331 Please specify the password.
Command:    PASS ************
Response:   230 Login successful.
Command:    OPTS UTF8 ON
Response:   200 Always in UTF8 mode.
Status: Connected
Status: Starting upload of /tmp/cachegrind.out.5513
Command:    CWD /home/gaurish
Response:   250 Directory successfully changed.
Command:    PWD
Response:   257 "/home/gaurish"
Command:    TYPE I
Response:   200 Switching to Binary mode.
Command:    PORT 192,168,1,6,214,6
Response:   200 PORT command successful. Consider using PASV.
Command:    STOR cachegrind.out.5513
Response:   553 Could not create file.
Error:  Critical error
Status: Disconnected from server

Мне нужен способ, с помощью которого я (gaurish) и nginx (www-data) могут изменять файлы. Есть идеи, как это сделать?

Вам нужно сделать несколько вещей, чтобы получить полное решение:

  • Добавьте своего пользователя в www-data группа (согласно ответу @fbh).
  • Настроить Umask FTP-сервера к 007 так что файлы загружаются с правами записи группы.
  • Установите флаг setgid (g+s) в ваших каталогах, так что новые файлы принадлежат группе, принадлежащей группе каталога, а не основной группе создателя файла.

Общая группа - это один из способов, как ранее ответили другие.

Более сложной альтернативой было бы использование системы контроля версий исходного кода, такой как CVS, Subversion, GIT и т. Д. Тогда одна административная cgi-страница, работающая как веб-сервер, может обновлять все измененные файлы на сервере. Это также гарантирует, что у вас есть резервная копия предыдущего файла перед его перезаписью, учитывая, что контроль версий включен.

Что бы вы ни делали, изучите и используйте SSH и SCP, а не FTP. Если это абсолютно необходимо, FTP следует использовать для удобства пользователей, а не для системного администрирования.

Добавьте своего пользователя в группу веб-серверов

usermod -a -G www-data gaurish