繁体   English   中英

PHP-向用户授予对ubuntu中root拥有的文件的权限

[英]PHP - Grant a user permissions to file owned by root in ubuntu

我正在使用Jasperreports生成报告。 当我生成新报告时,将由root拥有644的权限。 因此其他用户没有查看此报告的权限。我想更改文件的所有权或更改权限。这样每个人都可以查看或下载报告。

我尝试了以下php函数

chmod($item, 0777);   

chown($path, 'www-data');

它给

错误:没有权限执行此操作

因为它的根用户和当前用户都是www-data。 有人请帮我

实际上,根据您的发言,所有用户都有权查看该文件。 644表示所有者可以读写,而组和其他人只能读取。 如果您的脚本在读取该文件时出错,则可能是由于is路径中目录的权限,而不是文件本身。

如果您可以像这样更改root拥有的文件的所有者或权限,那么它将破坏Unix文件权限的整个概念。 想一想。

但是,您始终可以更改运行这些报表的用户,或者在报表生成侧添加逻辑以作为拥有文件的用户移动或更改文件的权限。

顺便说一句,chmod 777是仅由对unix权限了解甚少的人使用的丑陋kludge。 专业人士不这样做。 您应该将对Unix文件权限的了解提高到一个新的水平: https : //www.tutorialspoint.com/unix/unix-file-permission.htm看起来很有希望。

根据手册,所有者和超级卖方有权这样做。

而且您只修改文件mod或所有者,不会这样做。 您还必须更改路径。

wn

尝试将文件文件名的所有者更改为用户user。 只有超级用户可以更改文件的所有者。

注意:该功能不适用于远程文件,因为必须通过服务器的文件系统访问要检查的文件。

注意:启用安全模式后,PHP会检查正在操作的文件或目录是否与正在执行的脚本具有相同的UID(所有者)。

chmod

尝试将指定文件的模式更改为mode中给定的模式。 注意:当前用户是运行PHP的用户。 您可能不是用于普通Shell或FTP访问的用户。 在大多数系统上,只有拥有该文件的用户才能更改该模式。

注意:该功能不适用于远程文件,因为必须通过服务器的文件系统访问要检查的文件。

注意:启用安全模式后,PHP会检查您将要操作的文件或目录是否与正在执行的脚本具有相同的UID(所有者)。 另外,您不能设置SUID,SGID和粘性位。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM