Я знаю, что до сих пор были разрешены права доступа к файлам, но я пытаюсь разобраться с концепцией моего сценария.
Я создал файлы на старой установке ubuntu. Ive скопировал файлы в мою новую установку ubuntu и поместил их в мой webroot. Когда я пытаюсь запустить файлы (theyre PHP-файлы), я получаю ошибку, связанную с разрешениями, пытаясь исправить это, я предположил, что они все еще должны принадлежать предыдущему владельцу, поэтому я запустил chown -R в каталоге, с моим именем пользователя в качестве аргумента, чтобы взять на себя все файлы в каталоге. Следует отметить, что имена пользователей между новыми и старыми установками ubuntu были одинаковыми.
Когда я пытаюсь снова запустить файлы, такая же проблема: ошибка 500 из-за проблем с разрешениями. Может ли кто-нибудь сказать мне, какие еще шаги я должен предпринять?
Веб-сайт для моей установки apache находится внутри моей домашней папки. Если я создаю новые файлы в своем веб-корте, они также работают так, как ожидалось, только старые файлы, которые вызывают проблему.
Помимо файлов chmoding и редактирования файлов apache .conf, я хочу сказать, что для меня ничего не работало, потому что мои файлы были на разделе, который я смонтировал автоматически через nautilus. Это ограничивает раздел только для вашего пользователя.
Чтобы проверить, видимы ли ваши файлы с помощью www-root
или любого другого пользователя, запускающего apache (run ps -aux | grep apache2
для проверки), запустите следующую команду:
sudo su -l www-data -s / bin / bash
и попробуйте прочитайте файл из вашего корня документа.
Если файл не читается, проверьте, что:
1) вы установили все другие разрешения на файл
2) вы использовали FollowSymlinks
в ваших .conf
файлах, если это необходимо
3) вы установили DocumentRoot
3) смонтируйте свой раздел для всех пользователей. Мне пришлось отредактировать / etc / fstab
и указать мой раздел через UUID:
UUID = afdee1d3-5bb8-4652-892f-e83a9b5ff72e / mnt / 4tb ext4 rw , nosuid, nodev, errors = remount-ro
Затем размонтируйте свой раздел с помощью nautilus и выполните sudo mount -a
. Если все идет хорошо, ваши файлы теперь находятся под / mnt
. Обновите свои символические ссылки, и вам будет хорошо.
Если ваши серверные документы находятся в каталоге / home / $ USER / public_html
, вам необходимо запустить
sudo chown -R www-data: www-data / home / $ USER / public_html
, чтобы передать владение папкой DocumentRoot пользователю www-data
и группе www-data
.
Затем вы можете добавить себя в группу www-data
sudo adduser $ USER www-data
Наконец, вам необходимо сделать папку DocumentRoot доступной для записи владельцем (пользователем www-data) и вашим (как часть группы www-data
):
sudo chmod -R 775 / home / $ USER / public_html
Для удобства вы можете создать скрипт с именем public_html_fix.sh
с контентом:
#! / bin / bash sudo adduser $ USER www-data sudo chown -R www-data: www-data / home / $ USER / public_html sudo chmod -R 775 / home / $ USER / public_html [ ! d9]
Сохраните его внутри / home / $ USER / bin
и сделайте его выполнимым, используя:
sudo chmod + x / home / $ USER /bin/public_html_fix.sh
Затем вы вызываете его всякий раз, когда вам нужно, откуда бы вы ни находились в файловой системе:
public_html_fix .sh
Лучшим способом, который я нашел для этого, является то, как это делает VirtualMin.
создать пользователя и группу «myhome»
Сделать apache пользователем членом группы " мой дом". Не так, как некоторые из объяснений здесь описывают
Итак, теперь apache прочитал и выполнил доступ к / home / myhome в дополнение к / home / myhome / www
"myhome «пользователь имеет доступ на запись
Помимо файлов chmoding и редактирования файлов apache .conf, я хочу сказать, что для меня ничего не работало, потому что мои файлы были на разделе, который я смонтировал автоматически через nautilus. Это ограничивает раздел только для вашего пользователя.
Чтобы проверить, видимы ли ваши файлы с помощью www-root
или любого другого пользователя, запускающего apache (run ps -aux | grep apache2
для проверки), запустите следующую команду:
sudo su -l www-data -s / bin / bash
и попробуйте прочитайте файл из вашего корня документа.
Если файл не читается, проверьте, что:
1) вы установили все другие разрешения на файл
2) вы использовали FollowSymlinks
в ваших .conf
файлах, если это необходимо
3) вы установили DocumentRoot
3) смонтируйте свой раздел для всех пользователей. Мне пришлось отредактировать / etc / fstab
и указать мой раздел через UUID:
UUID = afdee1d3-5bb8-4652-892f-e83a9b5ff72e / mnt / 4tb ext4 rw , nosuid, nodev, errors = remount-ro
Затем размонтируйте свой раздел с помощью nautilus и выполните sudo mount -a
. Если все идет хорошо, ваши файлы теперь находятся под / mnt
. Обновите свои символические ссылки, и вам будет хорошо.
Если ваши серверные документы находятся в каталоге / home / $ USER / public_html
, вам необходимо запустить
sudo chown -R www-data: www-data / home / $ USER / public_html
, чтобы передать владение папкой DocumentRoot пользователю www-data
и группе www-data
.
Затем вы можете добавить себя в группу www-data
sudo adduser $ USER www-data
Наконец, вам необходимо сделать папку DocumentRoot доступной для записи владельцем (пользователем www-data) и вашим (как часть группы www-data
):
sudo chmod -R 775 / home / $ USER / public_html
Для удобства вы можете создать скрипт с именем public_html_fix.sh
с контентом:
#! / bin / bash sudo adduser $ USER www-data sudo chown -R www-data: www-data / home / $ USER / public_html sudo chmod -R 775 / home / $ USER / public_html [ ! d9]
Сохраните его внутри / home / $ USER / bin
и сделайте его выполнимым, используя:
sudo chmod + x / home / $ USER /bin/public_html_fix.sh
Затем вы вызываете его всякий раз, когда вам нужно, откуда бы вы ни находились в файловой системе:
public_html_fix .sh
Лучшим способом, который я нашел для этого, является то, как это делает VirtualMin.
создать пользователя и группу «myhome»
Сделать apache пользователем членом группы " мой дом". Не так, как некоторые из объяснений здесь описывают
Итак, теперь apache прочитал и выполнил доступ к / home / myhome в дополнение к / home / myhome / www
"myhome «пользователь имеет доступ на запись
Помимо файлов chmoding и редактирования файлов apache .conf, я хочу сказать, что для меня ничего не работало, потому что мои файлы были на разделе, который я смонтировал автоматически через nautilus. Это ограничивает раздел только для вашего пользователя.
Чтобы проверить, видимы ли ваши файлы с помощью www-root
или любого другого пользователя, запускающего apache (run ps -aux | grep apache2
для проверки), запустите следующую команду:
sudo su -l www-data -s / bin / bash
и попробуйте прочитайте файл из вашего корня документа.
Если файл не читается, проверьте, что:
1) вы установили все другие разрешения на файл
2) вы использовали FollowSymlinks
в ваших .conf
файлах, если это необходимо
3) вы установили DocumentRoot
3) смонтируйте свой раздел для всех пользователей. Мне пришлось отредактировать / etc / fstab
и указать мой раздел через UUID:
UUID = afdee1d3-5bb8-4652-892f-e83a9b5ff72e / mnt / 4tb ext4 rw , nosuid, nodev, errors = remount-ro
Затем размонтируйте свой раздел с помощью nautilus и выполните sudo mount -a
. Если все идет хорошо, ваши файлы теперь находятся под / mnt
. Обновите свои символические ссылки, и вам будет хорошо.
Если ваши серверные документы находятся в каталоге / home / $ USER / public_html
, вам необходимо запустить
sudo chown -R www-data: www-data / home / $ USER / public_html
, чтобы передать владение папкой DocumentRoot пользователю www-data
и группе www-data
.
Затем вы можете добавить себя в группу www-data
sudo adduser $ USER www-data
Наконец, вам необходимо сделать папку DocumentRoot доступной для записи владельцем (пользователем www-data) и вашим (как часть группы www-data
):
sudo chmod -R 775 / home / $ USER / public_html
Для удобства вы можете создать скрипт с именем public_html_fix.sh
с контентом:
#! / bin / bash sudo adduser $ USER www-data sudo chown -R www-data: www-data / home / $ USER / public_html sudo chmod -R 775 / home / $ USER / public_html [ ! d9]
Сохраните его внутри / home / $ USER / bin
и сделайте его выполнимым, используя:
sudo chmod + x / home / $ USER /bin/public_html_fix.sh
Затем вы вызываете его всякий раз, когда вам нужно, откуда бы вы ни находились в файловой системе:
public_html_fix .sh
www-data
, читающей ваши файлы, или напишите на это?
– jozxyqk
14 May 2015 в 16:25
chmod -R 775 / home / $ USER / public_html
действительно ужасно. find / home / $ USER / public_html -type d -exec chmod 775 {} \;
и find / home / $ USER / public_html -type f -exec chmod 664 {} \; [ ! d2] намного лучше
– iharob
28 May 2016 в 23:32
Лучшим способом, который я нашел для этого, является то, как это делает VirtualMin.
создать пользователя и группу «myhome»
Сделать apache пользователем членом группы " мой дом". Не так, как некоторые из объяснений здесь описывают
Итак, теперь apache прочитал и выполнил доступ к / home / myhome в дополнение к / home / myhome / www
"myhome «пользователь имеет доступ на запись
www-data
принадлежит к группе myhome
. Все файлы и каталоги имеют права доступа к группе и принадлежат myhome: myhome
. Я перезапустил apache. Apache все еще не может писать новые файлы и папки. (PHP-скрипт с использованием www-data: www-data user / group)
– squarecandy
6 August 2017 в 02:00
Помимо файлов chmoding и редактирования файлов apache .conf, я хочу сказать, что для меня ничего не работало, потому что мои файлы были на разделе, который я смонтировал автоматически через nautilus. Это ограничивает раздел только для вашего пользователя.
Чтобы проверить, видимы ли ваши файлы с помощью www-root
или любого другого пользователя, запускающего apache (run ps -aux | grep apache2
для проверки), запустите следующую команду:
sudo su -l www-data -s / bin / bash
и попробуйте прочитайте файл из вашего корня документа.
Если файл не читается, проверьте, что:
1) вы установили все другие разрешения на файл
2) вы использовали FollowSymlinks
в ваших .conf
файлах, если это необходимо
3) вы установили DocumentRoot
3) смонтируйте свой раздел для всех пользователей. Мне пришлось отредактировать / etc / fstab
и указать мой раздел через UUID:
UUID = afdee1d3-5bb8-4652-892f-e83a9b5ff72e / mnt / 4tb ext4 rw , nosuid, nodev, errors = remount-ro
Затем размонтируйте свой раздел с помощью nautilus и выполните sudo mount -a
. Если все идет хорошо, ваши файлы теперь находятся под / mnt
. Обновите свои символические ссылки, и вам будет хорошо.