> php教程 > php手册 > Perl和PHP在Linux下无法mkdir 777的问题

Perl和PHP在Linux下无法mkdir 777的问题

WBOY
풀어 주다: 2016-06-06 19:55:21
원래의
990명이 탐색했습니다.

首先Perl mkdir 的语法是: 1.mkdir('dir', 代表九位二进制数字的十进制值) 设置775,则该值为十进制的509,即二进制的111111101 此数值不能设置为111111111即十进制的511即777。 2.mkdir('dir', 0常见unix3位权限) 可以设置777。 然后在linux下时,由于umas

首先Perl mkdir 的语法是:
1.mkdir('dir', 代表九位二进制数字的十进制值)
设置775,则该值为十进制的509,即二进制的111111101
此数值不能设置为111111111即十进制的511即777。
2.mkdir('dir', 0常见unix3位权限)
可以设置777。

然后在linux下时,由于umask的原因,只能设置为755。
因为创建文件时的权限是umask和mode的&运算的值。
具体原因参见:http://www.perlmonks.org/?node_id=543251


可用下列代码验证:

 

解决办法如下:
1.可以设置umask时,如下代码:
my $old_umask = umask;
umask 0;
mkdir('test_dir', 0777);
umask $old_umask;
2.或者创建完后赋予权限:
chmod test_dir, 777

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿