首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用exec cmd行拒绝php rename()权限

使用exec cmd行拒绝php rename()权限
EN

Stack Overflow用户
提问于 2015-08-06 13:56:17
回答 2查看 1.5K关注 0票数 1

我使用phpword,一个ms字文档生成器.它创建一个临时文件,然后将其重命名为正确的.docx格式。

用户projop拥有php脚本,并以projop的形式运行它。

不涉及任何httpd,因为它是一个使用exec函数的TCL应用程序的调用。

我在/home/projop/tmp中创建了php的临时文件夹,并给出了0777,并确保它属于projop:projop

这是属于root组还是apache组?我在CentOS 6.5上。不确定,但我一直被拒绝许可。

重命名的php脚本Template.php也属于projop

警告:重命名(/home/projop/tmp/yRRXn0,任务公告表- BB&T76.docx):在第340行/var/www/html/doc-generate/wwwroot/phpword/src/PhpWord/Template.php中拒绝许可警告:重命名

我不知道怎么回事。拥有脚本的用户是projop,tmp文件夹位于用户的主目录中,属于projop

我不知道发生了什么事。

/tmp文件夹权限:

代码语言:javascript
复制
[root@project-open-v40 projop]# ls -la
total 493808
drwxr-xr-x.  7 projop root        4096 Aug  6 09:40 .
drwxr-xr-x.  3 root   root        4096 Jul  9 09:37 ..
drwxrwxr-x.  4 projop projop      4096 Oct 16  2012 acs-bootstrap-installer-master
-rwxr-xr-x.  1 projop projop     27527 Jul 15 10:32 gain_fns.php
-rw-r-----.  1 projop projop      2487 Jul 17 11:49 logo.gif
-rw-rw-r--.  1 projop projop     52535 Jul 23 09:57 master
-rwxr-xr-x.  1 projop projop      3039 Jul 28 14:37 notifyPM.php
-rw-r--r--.  1 projop projop     59719 Aug  5 09:35 resetInvoice.php
drwxr-xr-x.  3 apache apache      4096 Mar 12 15:34 templates
-rw-r--r--.  1 apache projop   7966720 Jul  9 09:37 templates.tar
drwxrwxrwx.  2 projop projop      4096 Aug  6 09:54 tmp
drwxr-xr-x.  6 apache apache      4096 Mar  2 02:43 vendor
-rw-r--r--.  1 apache projop 211886080 Jul  9 09:38 vendor.tar
drwxr-xr-x. 18 apache apache      4096 Jul  7 10:40 wwwroot
-rw-r--r--.  1 apache projop 285624320 Jul  9 09:38 wwwroot.tar

/tmp文件夹内容:

代码语言:javascript
复制
[root@project-open-v40 tmp]# ls -la
total 152
drwxrwxrwx. 2 projop projop  4096 Aug  6 09:54 .
drwxr-xr-x. 7 projop root    4096 Aug  6 09:40 ..
-rwxrwxrwx. 1 projop projop 34854 Aug  6 09:53 G0pC83
-rwxrwxrwx. 1 projop projop 34854 Aug  6 09:42 lLm9Iz
-rwxrwxrwx. 1 projop projop 34854 Aug  6 09:46 NR8CSg
-rwxrwxrwx. 1 projop projop 34854 Aug  6 09:54 yRRXn0
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-06 14:06:51

查看重命名命令警告:

代码语言:javascript
复制
Warning: rename(/home/projop/tmp/yRRXn0,Mission Announcement Sheet - BB&T76.docx): Permission denied in /var/www/html/doc-generate/wwwroot/phpword/src/PhpWord/Template.php on line 340 Warning: rename  

您试图在不指定路径的情况下重命名文件。然后尝试将名称重命名到与预期的/home/projop/tmp/不同的位置。

尝试预挂起第二个参数的路径,然后再试一次。

票数 2
EN

Stack Overflow用户

发布于 2015-08-06 14:02:47

在尝试重命名文件之前,使用chmod更改文件的权限--将权限更改为对文件夹的权限。

http://php.net/manual/en/function.chmod.php

还可以使用http://php.net/manual/en/function.fileperms.php返回文件的当前值,看看是否有什么不寻常的地方?

如果失败,另一种方法是使用PHP脚本加载文件的内容,然后以新的名称保存内容,并删除原始的内容。这是重命名的长期过程。这不太理想,但是一种选择。

编辑:

您可能不允许重命名/tmp/文件夹的内容,因为它是一个专用的指定的临时文件夹,所以不要在那里重命名它,而是尝试上面的过程,打开文件,然后重命名并保存到另一个更永久的目的地。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31857724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档