我有一个用户可以裁剪图片的网站。我通常会将裁剪后的图像保存在" 755" chmod参数。
然而,当它是755时,它不起作用 - 当我调到777并且我相信777非常不安全时它起作用,所以我不想使用它。
可能出现什么问题?
聚苯乙烯。系统的工作原理如下。在服务器中有一些图片,PHP允许用户裁剪这些图片,当他们点击保存时,它应该保存在/裁剪"夹。它适用于777但不适用于755。
答案 0 :(得分:5)
文件权限指定文件所有者可以执行的操作以及其他人可以执行的操作(组和世界其他地方)。您仍然需要指定正确的所有者。
您可能需要将文件夹的所有者更改为服务器进程的用户(如果您使用的是apache,则可能是www-data)。然后755应该工作。
chown www-data:www-data /cropped
修改:如果chown -R
内有子文件夹,并且您想要更改其权限,请使用/cropped
。
答案 1 :(得分:2)
您已经从其他用户那里得到了答案。所以,我没有必要在这里为你重复这一点。
但是,你应该真正了解755和777的意思,而不是将其视为某种伪安全级别设置。 777并不意味着不安全。坦率地说,我认为将图像上传文件夹设置为777时没有立即出现问题。
所有者,root,php执行者等不等同,但可能是相同的。
这些单词以英语为基础,你应该把它们带到英语价值而不是编程世界的一些外国构造。
Root用户就像一个独裁者。不管他说什么。没有人能说出来。
当有对象时,有一个所有者用户。并且您可以设置所有者可以执行的操作:读取,写入或执行。 您还可以将法律设置为特定组可以执行的操作。 最后,您还可以将法律设置为其他人可以做的事情。
现在,独裁者不会全力以赴地完成所有工作。运行PHP的那个可以是一个人。拥有该文件的人可以是另一个人。他们当然可以是同一个人,但这种定义并不相同。我希望你看到差异。
这是另一个类比。想想一个私人公园。如果你允许所有人(即777)进入公园并进行游戏,你是否构成某种安全隐患?没有。 如果你有保险箱,你会允许谁?只是你自己(主人),对吗?所以,这就像是linux权限中的700。除了独裁者之外,没有其他人有任何许可(除了独裁者,因为他可以来你家,杀了你,如果他觉得这样就把你的东西拿走)。
答案 2 :(得分:0)
755表示所有者可以读/写/执行,组和每个人(公共)只能读/执行。检查httpd的凭据。 777并不一定意味着它不安全,只需确保使用.htaccess通过-ExecCGI
或php_flag engine off
或甚至php.ini
配置(每个文件夹)禁用该文件夹中的PHP解析
您可以尝试775以查看群组设置是否足够
答案 3 :(得分:0)
您的/裁剪目录需要由运行PHP的用户拥有。
这通常是www-data,但您需要检查您的设置。