PHP怎么加777权限,在php中创建目录,避免777权限(Create directory in php avoiding 777 permission)...

在php中创建目录,避免777权限(Create directory in php avoiding 777 permission)

我有一个PHP脚本,用于为不同的用户创建不同的目录来存储他们的图像。 一种方法是使用777 permision,如下所示:

$path = 'images/product/'.$pid;

if( ! file_exists($path)) {

$mask=umask(0);

mkdir($path, 0777);

umask($mask);

}

是否有任何其他替代方法不涉及为目录使用777 permision,例如设置文件所有者和组?

I have a php script that is used to create different directories for different users to store their images. One way to do this is use 777 permision like this:

$path = 'images/product/'.$pid;

if( ! file_exists($path)) {

$mask=umask(0);

mkdir($path, 0777);

umask($mask);

}

Is there any other alternative that doesn't involve to use 777 permision for the directory, for example to set the file owner and group?

原文:https://stackoverflow.com/questions/28825246

更新时间:2019-12-22 01:12

最满意答案

如果要安全地运行它,更改文件所有者/组需要Apache不应具有的权限。 但是,你不一定需要0777.我猜你正在存储图像,所以你可以使用0644!

附注: chgrp()和chown()是2个函数,使您能够更改文件组/所有者

Changing the file owner/group requires privileges that your Apache should not have if you want to run it safely. However, you don't necessarily need 0777. I guess you are storing images, so you can use 0644!

Side note: chgrp() and chown() are the 2 functions giving you the ability to change file group/owner

2015-03-03

相关问答

这是一个场景: 您有一个无保护的目录,用户可以上传到。 他们上传两个文件:一个shell脚本和一个php文件,其中有一个system()调用到shell脚本。 他们访问他们刚刚上传的php脚本,访问浏览器中的url,导致shell脚本执行。 如果这个目录是777,那意味着任何人(包括用户apache,哪个是php脚本将执行的)可以执行它! 如果该目录上未设置执行位,并且大概是目录中的文件,则上述步骤3将不执行任何操作。 从评论中编辑:这不是PHP文件的权限,这是在PHP文件中的system()调用

...

该模式由您当前的umask修改,在这种情况下为022 。 umask工作方式是减法的。 您获取给予mkdir的初始权限,并减去umask以获取实际权限: 0777

- 0022

======

0755 = rwxr-xr-x.

如果你不希望发生这种情况,你需要暂时将你的umask设置为零,所以它没有任何效果。 您可以使用以下代码段执行此操作: $oldmask = umask(0);

mkdir("test", 0777);

umask($oldmask);

第一行将umask更改为零

...

确保您对包含该文件的目录具有写权限。 重命名文件时,也会修改目录条目。 It turns out I had to uncomment the following line in /etc/vsftp.conf #write_enable=YES

为其他人添加写访问权限的主要问题是,在同一台计算机上运行的任何进程都可以写入此目录。 默认情况下,apache,nginx,...不允许将文件上传到服务器,并假设您的服务器是这样配置的,那么您可能认为对其他人的写权可能不是问题,但事实并非如此。 假设您有一个应用程序本身不执行或评估任何脚本但以某种方式基于某些外部输入写入文件,那么有人可能会找到一种方法来控制此应用程序写入硬盘的内容。 如果应用程序将与其自己的用户一起运行并且无法在任何地方写入,那么这将不会成为问题。 但现在有一个文件夹, 其他人有

...

如果要安全地运行它,更改文件所有者/组需要Apache不应具有的权限。 但是,你不一定需要0777.我猜你正在存储图像,所以你可以使用0644! 附注: chgrp()和chown()是2个函数,使您能够更改文件组/所有者 Changing the file owner/group requires privileges that your Apache should not have if you want to run it safely. However, you don't necessa

...

一般情况下,777几乎没有安全性 ,这意味着任何人都可以读取和写入您的文件。 如果您允许上传的文件在您的服务器上运行,那么HTTP PUT本质上不比HTTP POST更安全。 总的来说,如果你允许任意文件被执行,你需要在服务器端做很好的文件检查,并且在服务器上使用chroot会很明智。 权限方面,我通常设置Web服务器用户拥有的任何Web访问权限。 In general 777 is about as insecure as it gets... that means anybody can re

...

所以,修复它的类型:su -c“setenforce 0” So, to fix it type: su -c "setenforce 0"

Telanor,AFS是一个非常大的线索。 AFS(安德鲁文件系统)拥有超过传统UNIX文件系统的完整级别的目录权限。 检查目录上的AFS权限以确保您有权访问目录中的文件。 此外,它可能不是您的许可权限,但可能不是您的权限,而是Web服务器的权限(或者是运行它的用户ID)。 自从我使用AFS之后已经很长时间了,所以我不知道命令来检查目录权限。 Telanor, AFS is a very big clue. AFS (Andrew File System) has a whole level of

...

有没有办法阻止任何PHP文件从这些文件夹中运行,以防恶意PHP脚本上传到这些文件夹中? 您可以禁用该目录的PHP。 看到这个答案。 Are there any ways to prevent any PHP files from being ran from such folders, in case a malicious PHP script has been uploaded there? You could disable PHP for that directory. See this

...

获取服务器对chmod命令的响应会很有帮助,例如使用$ftp->code和$ftp->message或只是启用调试。 在这里您可能会看到服务器不理解您的命令。 原因可能是,您使用$ftp->cmd来执行此命令。 但是, cmd用于发送FTP命令,chmod不是FTP命令。 要在服务器的站点上执行任何命令,您应该使用site ,例如$ftp->site("chmod ....") 。 即使在这里,您也应该检查结果,因为服务器不需要遵守您的请求并执行您想要的任何命令。 总结:始终检查错误消息。 除此之

...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值