[值得注意]PHP在Linux下以www运行为了确保你要读取的WEB页面可以访问,如何才能获得文件的相关属性?

jackxiang 2014-3-25 11:13 | |
背景:
Linux 下的权限比较起Windows是个问题,但它保证了其安全性,Cache 会出现 chmod(): Operation not permitted 这个讯息。查看 cache 目录应该是 PHP 以 safe mode 执行的关系,所以没办法建出 777 权限目录。
php -i|grep safe_mode
safe_mode => Off => Off
—————————————————想办法以try catch实现抓权限———————————————————————————
问:PHP在Linux下以www运行为了确保你要读取的WEB页面可以访问,如何才能获得文件的相关属性?
答:PHP提供了一组获得文件属性的方法,例如 filemtime(),fileowner(),filegroup(),filectime(),fileatime()...详细的使用请参阅手册。
来自:http://jingyan.baidu.com/article/bea41d4346a1b2b4c51be6a1.html

文件:fileowner.php

运行:
php fileowner.php
48
48是谁?
vi /etc/passwd 找48即可,是www,如下:
www:x:48:48::/home/www:/sbin/nologin

更多函数一块写:
文件:fileInfo.php

运行情况:
文件拥有者id:48
文件属组id:48
文件权限值:0644

更多PHP手册函数:
http://www.wapm.cn/phpdoc/zh/function.fileperms.html
http://www.w3school.com.cn/php/func_filesystem_filegroup.asp
http://www.w3school.com.cn/php/func_filesystem_fileowner.asp

php异常捕获try catch实例解析:
http://www.jbxue.com/article/10331.html

—————————————————以try catch实现对其权限不够的不活并写入日志—————————————————
permitted.php

这块故意给它一个root权限,chown -R root permitted.php
去执行和写的权限:chmod a-xw permitted.txt
在web下运行结果,tail -f /tmp/logPermissionFile4My.txt   :
DateTime:2014-03-25 13:23:22
Error on line 7 in /data/htdocs/tools.jackxiang.com/fileowner.php, ErrorException[Warning]:chmod():Operation not permitted
文件拥有者id:0
文件属组id:0
文件权限值:0444

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/7110/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2014-3-25 13:47
评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]