图像保存不能在chmod 755下工作,但可以在777下工作.我该怎么办呢?


Image save doesn't work with chmod 755, but does with 777. What should I do?

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

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

怎么了?

p。这个系统是这样运作的。有一些图片在服务器上,PHP允许用户裁剪这些图片,当他们点击保存,它应该保存在/裁剪文件夹。

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

你可能需要改变文件夹的所有者为你的服务器进程的用户(可能是www-data,如果你使用apache)。那么755应该可以了。

chown www-data:www-data /cropped

Edit:如果/cropped中有子文件夹,并且您也想更改它们的权限,则使用chown -R

你已经从其他用户那里得到了答案。所以,我没有必要在这里再重复一遍。

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

所有者,根,PHP执行器等不相等,但可能相同。

这些词是基于英语的,你应该把它们当作英语的价值,而不是一些编程世界的外国结构。

Root用户就像一个独裁者。他说什么就做什么。没有人能否认。

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

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

这里有另一个类比。想象一个私人公园。如果你允许所有人(如777)进入并在公园里玩耍,你是否会带来某种安全风险?不。如果你有保险箱,你会让谁用?就你自己(业主),对吗?linux的权限是700。除了你自己,没有人有任何许可(除了独裁者,因为他可以来你家,杀了你,拿走你的东西,如果他想的话)。

您的/裁剪目录需要由正在运行PHP的用户拥有。

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

755表示所有者可以读/写/执行,组和everyone (public)只能读/执行。检查httpd的凭据。777并不一定意味着它是不安全的,只是确保禁用解析PHP文件夹内使用。htaccess通过-ExecCGIphp_flag engine off甚至php.ini配置(每个文件夹)

您可以尝试775查看组设置是否足够