Как мне выполнить rsync для файлов в /var/www, если я хочу, чтобы они принадлежали www-data?

Как мне выполнить rsync для файлов в /var/www, если я хочу, чтобы они принадлежали www-data?

Я настроил новый ящик ec2 ubuntu и установил apache и php5. По умолчанию вы входите в ящик с ubuntuпользователем, у которого есть sudoпривилегии.

Я считаю, что Apache работает как, rootа PHP5 работает как www-data.

Я думаю, что мне нужно, чтобы все файлы /var/wwwбыли перенаправлены в chown www-data:www-data, папки были установлены как 755, а файлы как 644 - если только с этим нет проблем.

Все работает нормально, но проблема в том, что когда я rsyncзагружаю файлы со своего ноутбука на сервер, он меняет владельца на них (и добавляет новые файлы), какubuntu:admin

Я просмотрел rsyncруководство и поискал в Google и увидел такой синтаксис:

rsync -avzcO (source) (destination) --owner=www-data --group=www-data

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

Итак, я не нашел решения с помощью rsync, чтобы задать удаленного пользователя и группу файлов во время rsync.

Что я делаю не так?

Мысли:

  • Может быть, мои файлы в /var/www должны принадлежать только ubuntu:admin?
  • Возможно, я неправильно использую синтаксис rsync.
  • Думаю, я мог бы выполнить rsync как www-dataпользователь, но это не кажется хорошей идеей.
  • Я мог бы использовать suPHP, как я это делаю на общем хостинге, но это кажется довольно хлопотным.

решение1

Вы не хотите, чтобы они принадлежали www-data. Apache изначально работает как root, а затем снижает привилегии до www-data. Вы не хотите, чтобы ваш веб-контент был доступен для записи пользователю, владеющему процессами apache. Это создает уязвимость безопасности.

В случае взлома Apache, в идеале пользователь www-data не будет иметь доступа ни к одной из систем. Это самая безопасная конфигурация. Если веб-контент принадлежит www-data, если Apache взломан, то злоумышленник может перезаписать любой ваш веб-контент.

Ваш веб-контент должен принадлежать обычному пользователю (исключая nobody, www-dataи root). Только то, чтонуждатьсячтобы быть доступным для записи Apache, он должен принадлежать www-data.

Связанный контент