php目的,php umask(0)的目的是什么

将umask设置为0000 (或仅为0 )意味着新创build的文件或目录将不具有最初被撤销的特权。 换句话说,一个零的umask将导致所有文件被创build为0666或世界可写。 在umask为0时创build的目录将是0777 。

通常,当你看到umask(0) ,应该直接跟chmod()调用,以明确地将新创build的文件或目录所需的权限设置为世界可写以外的权限。

设置umask为零时要小心! 这可能是危险的,并且主要仅用于创build必须稍后由web服务器写入的文件,当web服务器作为不同的用户运行时,“真正的”用户也将需要能够修改所创build的文件由networking服务器。 否则,系统默认的umask很可能是像0022这样的文件,而不是文件所有者可写的。 在这种情况下,如果您以正常的用户帐户login到本机,则由PHP下的Web服务器创build的文件将不会被您写入。

而不是创build世界可写的文件,通常更好的办法是更明确地pipe理Web服务器正在写入的目录。 如果在目录中创build的文件应该具有特定的组权限,则可以build议在该目录上设置sgid位,以便其中的新文件inheritance组的所有权。 需要访问文件的用户应该是有权访问的组的成员。 这比创build世界可读的世界可写文件要安全得多。

php > umask(0); // Should get created as 666 php > touch('file1.txt'); // "2" perms revoked from group, others, gets created as 644 php > umask(022); php > touch('file2.txt'); // All revoked (2,4) from group, others, gets created as 600 php > umask(066); php > touch('file3.txt'); -rw-rw-rw- 1 me group 0 Aug 24 15:34 file1.txt -rw-r--r-- 1 me group 0 Aug 24 15:35 file2.txt -rw------- 1 me group 0 Aug 24 15:37 file3.txt

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值