Ubuntu Xampp PHP文件权限与NTFS硬盘's作为额外的媒体存储


Ubuntu Xampp PHP File Permissions with NTFS Hdd's as additional media storage

我在我的Ubuntu 10.10系统中有4个驱动器(是的,物理上在盒子里,sata连接),xampp安装在操作系统驱动器的/opt/lampp/dir。操作系统驱动器(ssd,我们称之为drive1)具有正确的文件权限,允许PHP(用户www-data)读取/写入我的任何htdocs和vhosts文件夹。

我的问题来了,我试图移动存在于其他3个驱动器之一的文件。我的其他驱动器都是ntfs (1tb、1.5tb和2.0tb),并安装了fstab。当我用gui (nautilus)查看文件权限时,它说一切都是根。所以我尝试了chown, chmod等。我发现你不能用这些命令改变ntfs的权限。所以我去了我的fstab配置,但是我不能得到这些权限设置,允许PHP复制/重命名/移动文件,甚至在一个驱动器。

我今天更新到使用UUID,驱动器也在我的本地网络上共享,并且仍然工作得很好。

我在安装后更改为ntfs-3g驱动程序,重新启动机器,但我仍然无法让php移动文件。

这是我的fstab文件:UUID=552A7C6B05CEAAD2/media/v1tb ntfs-3g默认值,uid=1000 00UUID=DE58539158536775/media/v1.5tb ntfs-3g默认值,uid=1000 00UUID=3D80C54D5D100280/media/v2.0tb ntfs-3g默认值,uid=1000 00

另外,我试着使用以下命令,它工作得很好:

sudo -u www-data cp '/media/v2.0tb/path/to/file' '/media/v2.0tb/path/to/newfile'

如何模仿用户工作,但php的重命名/复制功能将不工作?

我如何设置php用户(www-data)允许复制/重命名/删除这些ntfs驱动器上的文件和目录?我必须重新格式化它们吗?

取决于实际使用的ntfs驱动程序。对于ntfs-3g,您可以使用fstab中的uid=gid=参数。还有一个usermapping=特性可能会引起您的兴趣。参见手册

如果有人遇到这样的问题,有时可能是先前目录的权限可能会影响对目录的访问。

例如,在Ubuntu 12.10上,和许多其他Ubuntu版本一样,你在/media上有分区。但是在这个版本中,您可以使用另一个目录来存放您的分区,特别是NTFS和外部驱动器,这个目录就是/media/YOUR_USER_NAME。为了解决访问外部硬盘驱动器的问题,具体使用PHP,我必须首先更改/media/MY_USER_NAME的权限,然后更改/media/MY_USER_NAME/MY_EXTERNAL_DRIVE的权限。

使用的命令如下:sudo chown MY_USER_NAME MY_USER_NAME/sudo chown MY_USER_NAME MY_USER_NAME/MY_EXTERNAL_DRIVE/

sudo mount -t ntfs -o rw,uid=1000,gid=1000,fmask=000,dmask=000/dev/sdb1/media/MY_USER_NAME/MY_EXTERNAL_DRIVE

第一个和第二个参数用于更改目录的Owner,第三个参数用于以正确的权限挂载NTFS驱动器。

我认为这可能对某些人有用,因为我花了几个小时才意识到这可能是我无法访问以前的目录