0

我有一个网站,用户可以在其中裁剪图像。我通常将裁剪后的图像保存在具有“755”chmod 参数的文件夹下。

但是,当它是 755 时,它不起作用 - 当我 chmod 到 777 时它起作用,我相信 777 非常不安全,所以我不想使用它。

有什么问题?

附言。系统是这样工作的。服务器中有一些图片,PHP允许用户裁剪这些图像,当他们点击保存时,它应该保存在/cropped”文件夹中。它适用于777但不适用于755。

4

4 回答 4

5

文件权限指定文件所有者可以做什么,以及其他人可以做什么(组和世界其他地方)。您仍然必须指定正确的所有者。

您可能必须将文件夹的所有者更改为您的服务器进程的用户(可能是 www-data,如果您使用的是 apache)。然后 755 应该可以工作。

chown www-data:www-data /cropped

编辑:如果chown -R里面有子文件夹/cropped并且您也想更改它们的权限,请使用。

于 2013-01-11T19:46:27.683 回答
3

您已经从其他用户那里得到了答案。因此,我无需在这里为您进一步重复。

但是,您实际上应该了解 755 和 777 的含义,而不是将其视为某种伪安全级别设置。777 并不立即意味着不安全。坦率地说,我认为您将图像上传文件夹设置为 777 没有直接问题。

所有者、root、php 执行者等并不等同,但可能相同。

这些词以英语为基础,您应该以英语的价值而不是一些外国的编程世界结构来看待它们。

根用户就像一个独裁者。他说什么都行。没有人可以说别的。

当有一个对象时,就有一个所有者用户。并且您设定所有者可以做什么的法律:读、写或执行。您还可以为特定群体的行为制定法律。最后,您还可以为其他人可以做的事情制定法律。

现在独裁者不会到处做所有的工作。运行 PHP 的人可以是一个人。拥有该文件的人可以是另一个人。他们当然可以是同一个人,但这样的定义并不等同。我希望你能看到区别。

这是另一个类比。想想私人公园。如果您允许每个人(即 777)进入公园并在公园内玩耍,您是否会构成某种安全风险?不。如果你有一个保险箱,你会允许谁?只是你自己(所有者),对吧?所以,这就像 linux 权限中的 700 一样。除了你自己,没有其他人有任何许可(除了独裁者,因为他可以来你家,杀了你,拿走你的东西,如果他愿意的话)。

于 2013-01-12T06:17:31.573 回答
0

755表示所有者可以读/写/执行,组和每个人(公共)只能读/执行。检查您的 httpd 的凭据。777 并不一定意味着它不安全,只需确保使用 .htaccess 或什至配置(每个文件夹)禁用该文件夹内-ExecCGIphp_flag engine offPHPphp.ini解析

你可以试试775看看组设置是否够用

于 2013-01-11T19:43:40.160 回答
0

您的 /cropped 目录需要归运行 PHP 的用户所有。

这通常是 www-data,但您需要检查您的设置。

于 2013-01-11T19:46:48.507 回答