微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php在Ubuntu和apache服务器中特定文件夹的奇怪行为

我刚刚移植了允许文件上传的网站服务器.现在它在ubuntu 11.04上运行vps.
上载的文件存储在文件调用文件中,该文件调用文件拥有者:root和group:root类似于其他文件夹.

但是问题是当我尝试运行PHP函数(readfile())从文件夹中读取任何文件时,它没有读取该文件,但是当我将文件夹所有者和组更改为10000和1005时,在以前的服务器中. PHP立即发现该文件并开始下载.我无法猜测出什么问题以及如何发生.因为我尝试将文件及其内容组和所有者更改为root.

谁能描述这是如何发生的,以及如何将其更改为我自己的组或所有者.而且,我的VPS中目前没有名为10000和1005的组和所有者.

是在服务器上进行某种形式的错误或黑客入侵.

解决方法:

在ubuntu apache的用户上是www-data.

在您的第一种情况下,apache没有正确的访问权限.以/ var / www目录的12.04认权限为例

-rw-r–r– 1个根目录177 Sep 15 11:43 index.html

如您所见,apache只能读取该文件.这就是它所要做的.
第一组-rw-对应于用户.第二组烫发r-对应于该组,第三组烫发r-对应于其他每个人.

由于PHPwww-data运行,因此您将无法写入该文件.

使用sudo mkdir uploads在/ var / www中创建上载目录具有权限.

drwxr-xr-x 2根根4096 Nov 8 11:59上传

再次www-data无法写入上载目录!

您可以打开“其他”权限(不好,因为随后任何用户都可以写入该目录,而实际上您只希望能够写入www-data),则可以将www-data添加为该目录的所有者.您可以创建一个管理员组或其他内容,然后将www-data添加到其中,(或者,如果没有其他用户需要使用它,只需将组更改为www-data,可能还有许多其他更安全的方式,我不是sys admin,这就是serverfault会很好的原因:))

至于您的用户问题,如果用户不存在,而您尝试使用chown,那将是一个问题.

daniel@daniel:/var/www$sudo chown doesnotexist:stuff uploads/
chown: invalid user: doesnotexist:stuff'

您是否检查了哪些用户是presnet?使用组还是猫/ etc / passwd?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐