Apache文件所有权/组

时间:2012-08-20 15:23:25

标签: php linux apache ownership

我目前为我的组织管理了8个不同的网站,并建立了一个中央管理网站,以帮助管理所有网站上的内容。

我目前在管理网站上有一个文件上传器,允许我将ZIP文件上传到服务器。然后,此脚本解压缩包,并将文件移动到服务器的不同部分。

问题是,当我通过浏览器上传文件时,它会为apache分配所有权(对于用户和组)。当我尝试使用FTP覆盖文件时,这会导致我出现问题。

我已经尝试在上传/移动文件后立即更改已上传文件的所有者,这些文件都是使用PHP原生的' chown'函数,并使用exec函数运行linux命令chown但都失败(PHP本机chown显示'操作不允许'错误)

所以我的问题: 1)我是否以错误的方式解决这个问题? (我对文件所有权的了解有限) 2)我不应该更改文件所有权吗? 3)有没有工作?

如果您想了解更多信息,请随时提出。

非常感谢

菲尔

通过浏览器上传的文件的当前文件详细信息:

[file].php      permissions: adfr (0644)    Owner: Apache    Group: Apache

通过FTP上传文件的文件详情:

[file].php      permissions: adfr (0644)    Owner: [ftp login name]   Group: psacln

1 个答案:

答案 0 :(得分:1)

我做的事与你做的非常相似,但我不使用ftp,我使用scp,部分ssh。有了这个,你可以这样做:

$> scp -rp /var/www/html/somedir/* 192.168.1.100:/var/www/html/somedir/.

这种方式使用p标志告诉命令复制文件并保留权限,所有权和日期戳。 r标志根据需要和递归副本创建子目录。

就像任何其他命令一样,您可以在脚本中放置几行scp来自动化,但要避免密码在服务器中使用ssh生成的证书。