Я до сих пор боролся с разрешениями и опубликовал еще один вопрос, но определил, в чем проблема, но пока никак не мог ее исправить.
Мои настройки:
sudo useradd -r -s /bin/false USERNAME
и которые используются для получить доступ к общим папкам локальной сети, т. е. к компьютерам в моей сети, чтобы подключиться к папке / var / www, доступ к которой осуществляется с помощью Samba. Моя проблема:
В настоящее время, когда я создаю новую папку на /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, создал новую папку, добавил мой файлы, запустил плагин, теперь говорит, что это хорошо !!!
Ответ на вопрос № 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.
Идеально необходимо также проверить документацию на Плагин Дубликатора для проверки, какие полномочия это должно выполнить и работать.
Для проверки любого файла или папки, Вы создаете в /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/
команда/действие должна выполниться.
владение Изменения к 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
Набор Ваша апачская конфигурация к 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
).
Я решил его! Я все еще думаю, что это был Apache envvars проблема, но не уверенный, если это - конкретная вещь, которая решила проблему... Так или иначе вот то, что я сделал:
Измененный envvars к
export APACHE_RUN_USER=boris
export APACHE_RUN_GROUP=www-data
Работал
sudo chown -R boris:www-data /var/www/
Теперь, он работает до сих пор. Протестирует далее...