Я хочу, чтобы мой пользователь имел полный доступ к локальной корневой папке Apache, и я также хочу, чтобы пользователь Apache имел полный доступ к той же папке.
Я создал новую группу под названием DevGroup и добавил www-data
туда своего пользователя. Также я изменил разрешения на 770, чтобы разрешить полный доступ к группе.
Но теперь он не даёт ни мне, ни пользователю Apache никакого доступа к этой папке.
Вот что у меня получилось ls
:
drwxrwx--- 12 root DevGroup 4096 Sep 27 17:34 testFolder
Вроде бы все идеально, но когда я пытаюсь получить доступ к файлу как пользователь, я получаю следующее:
var/www$ ls testFolder/
ls: cannot open directory testFolder/: Permission denied
Также, когда я пытаюсь получить доступ к странице в папке из браузера:
[Thu Sep 27 17:47:16 2012] [error] [client 127.0.0.1] PHP Fatal error:
Unknown: Failed opening required '/var/www/testFolder/foo.php'
(include_path='.:/usr/share/php:/usr/share/pear') in Unknown on line 0
В чем проблема и как ее исправить?
решение1
То, что вы описываете, должно работать, но вам, возможно, придется выйти из системы и перезапустить Apache, чтобы они приняли новое членство в группах.
Если эта папка находится в корневом каталоге веб-сервера, то разумно считать ее «собственностью» веб-сервера, поэтому вы можете оставить ее владельцем пользователя www-data и группу DevGroup, это гарантирует, что веб-сервер всегда сможет получить к ней доступ.