我在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数据
我可以访问我的文件,但Apache / PHP无法与他们合作。
WWW的数据: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 ...
我如何configuration安装程序以便能够完全访问Apache以及我自己的文件?
您可以将文件/文件夹chown到fmaz:www-data 。
然后,您需要使用chmod g+r (files)和chmod g+rx (folders)将读取权限添加到组。
如果你的PHP代码需要修改一些目录/文件,你需要使用chmod g+wr 。
这只是一个方法。
解决了这个问题添加所需的umask。 我用gui使用truecrypt 7.1,所以我去了
设置 – >首选项 – >挂载选项
UID = WWW的数据,GID =用户和umask = 007
它用drwx-rwx挂载音量—-
正是我需要的内部truecrypt我的Apache运行