Apache文件所有权/组


Apache file ownership / group

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

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

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

我试图在上传/移动后立即更改上传文件的所有者,既使用PHPs本机的"chown"功能,也使用exec功能运行linux命令chown,但都失败了(PHPs本地chown显示"不允许操作"错误)

所以我的问题是:1) 我是不是搞错了?(我对文件所有权的了解有限)2) 我为什么不应该更改文件所有权?3) 有什么解决办法吗?

如果您想了解更多信息,请随时询问。

非常感谢

Phil

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

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

通过FTP上传文件的文件详细信息:

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

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

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

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

就像任何其他命令一样,您可以在脚本中放置几行scp以进行自动操作,但为了避免在服务器之间使用ssh生成的证书。