Сделать владельцем вновь создаваемых файлов и папок www-data вместо superuser / admin

Я до сих пор боролся с разрешениями и опубликовал еще один вопрос, но определил, в чем проблема, но пока никак не мог ее исправить.

Мои настройки:

  • Ubuntu Desktop со стеком LAMP
  • 5 «пользователей» Я создал пользователей, которых создал на сервере ubuntu с помощью sudo useradd -r -s /bin/false USERNAME и которые используются для получить доступ к общим папкам локальной сети, т. е. к компьютерам в моей сети, чтобы подключиться к папке / var / www, доступ к которой осуществляется с помощью Samba.
  • РЕДАКТИРОВАТЬ: Цель состоит в том, чтобы создать своего рода «главный локальный хост», где все компьютеры в моей локальной сети могут работать на одном веб-сайте локально (у меня нет статического IP-адреса, поэтому к серверу нельзя получить доступ из другого места).

Моя проблема:

В настоящее время, когда я создаю новую папку на /var/www/html (например: Создание папки / var / www / html / testsite1), используя любой компьютер в сети, эта папка автоматически принадлежит boris:www-data («boris», являющийся основным пользователем-администратором в моей настольной установке ubuntu, и он действительно показывает boris: www-data при запуске ls -l во вновь созданной папке), что вызывает проблемы с моим текущим настройка (в основном используется плагин Duplicator для WordPress от LifeInTheGrid). Тем не менее, и мой /var/www, и мой /var/www/html принадлежат www-data:www-data

Следовательно, я хотел бы знать, как я могу:

  • Изменить владельца на www-data: www-данные всех файлов И каталогов ниже / var / www и / var / www / html

  • Убедитесь, что любой файл или папка, которую я создам с любым пользователей моей сети автоматически будут принадлежать www-data: www-data (это включает в себя файлы, автоматически создаваемые скриптами php, поскольку это то, что делает плагин Duplicator, если я не ошибаюсь).

Есть ли способ сделать это?

Примечание: я супер новичок в вещах, связанных с Linux и командной строкой, но я быстро догоняю.

Примечание 2: umask уже установлен как 0002

РЕДАКТИРОВАТЬ:

Попробовал это:

sudo chown -R www-data:www-data /var/www/

И затем установить биты setuid и setgid, выполнив это:

sudo chmod u+s /var/www/html
sudo chmod g+s /var/www/html

Затем вышли из системы, перезапустили apache и попытались создать новую папку, используя Mac, подключенный к моему серверу через сетевой IP (локальный IP, а не статический).

Я побежал

ls -l on /var/www/html

Вывод по-прежнему:

drwxr-sr-x 2 boris   www-data  testsite1

Примечание:

Я уже проверял свою конфигурацию apache до и envvars, он уже установлен в :

export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data

РЕДАКТИРОВАТЬ: я попытался сделать это задом наперед, например, настроить все, что будет принадлежать boris: www-data и установить конфигурацию apache для envvars на boris: www-data. ЭТО СРАБОТАЛО!

Вот что я сделал:

Изменил envvars на

export APACHE_RUN_USER=boris
export APACHE_RUN_GROUP=www-data

Ran

sudo chown -R boris:www-data /var/www/

Перезапустил Apachem, создал новую папку, добавил мой файлы, запустил плагин, теперь говорит, что это хорошо !!!

12
задан 2 June 2015 в 17:25

4 ответа

Ответ на вопрос № 1: рекурсивный chown

Рекурсивное chown позволит Вам установить владение и группу к тому, для чего Вы хотите /var/www/.... Это - команда, которую необходимо использовать:

sudo chown -R www-data:www-data /var/www/

С этим каждый файл и папка будут установлены как таковые внутри там с теми полномочиями владения.


Полуответ на вопрос № 2: setgid бит

Если Вы хотите владение группы по умолчанию на файлах, устанавливаете setgid обдумал /var/www/html папка. Новые файлы должны затем быть созданы с той группой, как указано на папке.

sudo chmod g+s /var/www/html

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

Вы заканчиваете с полномочиями тем, чтобы быть $USER:www-data; для изменения владельца, Вы затем используете a chown как обозначено в методе № 1 (который сказал в надлежащей установке, необходимо полагаться на полномочия группы, не пользовательского владельца полномочия, для доступа к веб-файлам).


PHP проблема дубликатора Wordpress

Проблемой с полномочиями является пользователь/группа выполнения PHP, как потребности пишут и читают и вероятно +x на каталоге для редактирования структуры dir и такого.

PHP работает как www-data по умолчанию в установках Ubuntu, которые используют конфигурации по умолчанию. Идеально, Ваши шаги выше сделали бы проблему зафиксированной, поскольку Вы застреваете с Плагином Дубликатора, являющимся плагином PHP.

Идеально необходимо также проверить документацию на Плагин Дубликатора для проверки, какие полномочия это должно выполнить и работать.

10
ответ дан 2 June 2015 в 17:25

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

Сначала установите его с:

$ sudo apt-get install incron

Позвольте корню использовать incron путем открытия /etc/incron.allow с:

$ sudo vim /etc/incron.allow

и добавьте root в файл затем сохраните и выйдите.

Отредактируйте свой incrontab с:

$ sudo incrontab -u root -e

и добавьте следующую строку к нему:

/var/www/html IN_CREATE /bin/chown -R www-data:www-data /var/www/html/

сохраните и выйдите.

Теперь, как только файл создается в /var/www/html direcotry это автоматически установит onwership на www-data:www-data.

Объяснение строки в incrontab:

/var/www/html каталог, который будет контролироваться.

IN_CREATE будет наблюдать за созданными файлами. Это - маска изменения файла.

/bin/chown -R www-data:www-data /var/www/html/ команда/действие должна выполниться.

6
ответ дан 2 June 2015 в 17:25

владение Изменения к www-data:www-data всех файлов И каталогов ниже/var/www и/var/www/html

cd /var/www/
chown -R  www-data:www-data /var/www/
  • ./html подразумевается здесь (как являющийся частью/var/www/)
  • -R, делает его рекурсивным (таким образом, это пересечет все каталоги в /var/www/).

Удостоверяются какой-либо файл или папка, которую я создам с каким-либо из пользователей моей сети, будет автоматически принадлежать www-data:www-data

  • Внутри/var/www/html/, я принял бы?

Набор Ваша апачская конфигурация к www-данным. См. /etc/apache2/envvars

# envvars - default environment variables for apache2ctl

export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data

, необходимо перезапустить апача после редактирования этого (sudo service apache restart).

, Который включает файлы, автоматически созданные сценариями PHP, поскольку это - то, что делает плагин Дубликатора, если я не ошибаюсь).

проблемой здесь, вероятно, не является плагин, но php. Пользователь должен быть тем же процессом это выполнения PHP под. Таким образом, вероятно, необходимо установить это на www-данные также, если это - пользователь и группа (/etc/php5/apache2/php.ini).

0
ответ дан 2 June 2015 в 17:25

Я решил его! Я все еще думаю, что это был Apache envvars проблема, но не уверенный, если это - конкретная вещь, которая решила проблему... Так или иначе вот то, что я сделал:

Измененный envvars к

export APACHE_RUN_USER=boris
export APACHE_RUN_GROUP=www-data

Работал

sudo chown -R boris:www-data /var/www/

Теперь, он работает до сих пор. Протестирует далее...

0
ответ дан 2 June 2015 в 17:25

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

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