Perl和PHP在Linux下无法mkdir 777的问题
2010-04-16 20:04
387 查看
首先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
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
可用下列代码验证:
$ perl -e'printf "umask: %04o\n", umask; printf "mode: %04o\n", 0777; +printf "masked mode: %04o\n", 0777 & ~umask' umask: 0022 mode: 0777 masked mode: 0755
解决办法如下:
1.可以设置umask时,如下代码:
my $old_umask = umask;
umask 0;
mkdir('test_dir', 0777);
umask $old_umask;
2.或者创建完后赋予权限:
chmod test_dir, 777
相关文章推荐
- Perl和PHP在Linux下无法mkdir 777的问题
- php linux下无法创建777权限目录的问题
- linux下php无法创建文件夹和文件的问题
- EasyHLS直播在Linux非root用户运行时出现无法写文件的问题解决mkdir 0777
- EasyHLS直播在Linux非root用户运行时出现无法写文件的问题解决mkdir 0777
- php Yii 框架安装到linux无法启动问题
- PHP执行linux命令mkdir权限问题
- php for linux 图片无法显示问题
- PHPSTORM Xdebug断点调试 监听无法使用的问题
- PHP fgetcsv 定义和用法(附windows与linux下兼容问题)
- 关于apache和php5.2.5集成无法启动apache的问题
- Linux连接投影仪 (解决无法正常显示的问题)
- PHP代码从Windows环境迁移到linux环境下问题
- 使用proxy解决nginx alias无法执行PHP等fastcgi问题
- xmanager登录unix和linux中文无法显示问题
- Linux 虚拟机虚拟网卡问题导致无法连接问题
- 转 PHP中exec、system等函数调用linux命令问题
- 注意php建立文件(夹)与linux umask的问题
- 关于在PHP增删改查里面遇到的insert无法执行的问题
- PHP动态库php_mcrypt.dll和php_openssl.dll无法加载的问题