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

将umask设置为0022(或仅设置chmod()),意味着新创建的文件或目录最初不会撤销特权。 换句话说,零的umask将导致将所有文件创建为0666或可全局写入。 当umask是0时创建的目录将是0777。

通常,当您看到0022时,应直接调用chmod(),以将新创建的文件或目录上所需的权限显式设置为世界可写以外的其他权限。

将umask设置为零时请小心! 这可能很危险,并且仅在创建以后必须由Web服务器写入的文件时才有用,当Web服务器以另一个用户身份运行时,“真正的”用户也需要能够修改创建的文件 通过网络服务器。 否则,系统的默认umask可能类似于0022,可由文件所有者而非其他人写入。 在这种情况下,如果您以普通用户帐户登录到计算机,则您将无法编写由Web服务器在PHP下创建的文件。

与其创建可写世界的文件,不如通常更明智地管理Web服务器正在写入的目录。 如果在目录内创建的文件应具有某些组权限,则建议在目录上设置sgid位,以便其中的新文件继承组的所有权。 需要访问该文件的用户应该是有权访问该文件的组的成员。 这比创建世界可读,可写世界的文件安全得多。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值