Я на Ubuntu. Я использую контейнер truecrypt для хранения всех моих рабочих файлов. Мой сервер apache работает с пользователем www-data
(настройка по умолчанию).
Когда я монтирую контейнер с помощью truecrypt, все мои файлы принадлежат fmaz: fmaz. Поэтому, когда мой PHP-код пытается выполнить chmod (), он терпит неудачу - в разрешении отказано.
Итак, я попытался смонтировать том truecrypt следующим образом:
truecrypt --auto-mount=devices --fs-options="uid=33,gid=1000"
так же как:
truecrypt --auto-mount=devices --fs-options="uid=1000,gid=33"
При выполнении ls -la
в папке я вижу, что право собственности действительно (www-data: fmaz или fmaz: www-data), но группа, похоже, не принимается во внимание.
fmaz: www-data
Я могу получить доступ к своему файлу, но apache / php не может с ними работать.
www-data: fmaz
Apache и PHP довольны, все работает нормально, но я не могу получить доступ к своим файлам:
fmaz@fmaz-laptop:/$ cd media/truecrypt1/
bash: cd: media/truecrypt1/: Permission non accordée
Но как видите:
sudo ls -la media/truecrypt1/
total 31448
drwx------ 14 www-data fmaz 8192 1969-12-31 19:00 .
drwxr-xr-x 5 root root 4096 2011-12-03 11:10 ..
-rwx------ 1 www-data fmaz 3353256 2009-11-18 21:19 7nuj21us.exe
...
Как я могу настроить установку, чтобы иметь полный доступ к файлу для Apache, а также для себя?
Решил эту проблему, добавив необходимый umask. Я использую truecrypt 7.1 с графическим интерфейсом, поэтому я пошел
настройки-> настройки-> параметры монтирования
uid = www-data, gid = user, umask = 007
он монтирует том с помощью drwx-rwx ----
именно то, что мне нужно для моего apache, работающего внутри truecrypt
Ты можешь chown
файлы / папки в fmaz:www-data
.
Затем вам нужно добавить разрешение на чтение в группу, используя chmod g+r
(файлы) и chmod g+rx
(папки).
Если ваш PHP-код требует изменения некоторого каталога / файла, вам необходимо использовать chmod g+wr
.
Это всего лишь один из способов сделать это.