测试文件的路径是 /var/www/proj/test.sh,并且项目.php在 /var/www/ 里面,我的 test.sh 使用并创建了一些 .txt 文件。
当我通过终端执行 test.sh 时,它工作正常,但是当我运行项目.php经过
http://localhost/project.php
失败了,txt文件的权限也改变了,所以我不得不手动更改txt文件的权限,甚至再次通过终端运行。
错误:
rm: remove write-protected regular empty file `/var/www/project/result/List.txt'?
project/test.sh: line 8: /var/www/project/result/List.txt: Permission denied
那么,我如何才能永久授予 /var/www/* 的写权限
答案1
要授予写入权限,/var/www
您需要授予运行 Web 服务器的用户写入权限。例如,在 Ubuntu 上,通常可以使用以下方法完成此操作:
chown www-data /var/www
chmod u+w /var/www
(将www-data
运行 Web 服务器的用户设置为 的所有者,/var/www
并授予目录所有者对该目录的写访问权限(如果他还没有访问权限的话)。)根据您服务器的配置,在某些情况下,这可能不起作用(例如,被 SELinux 或 AppArmor 策略阻止)。
然而,出于安全原因,不建议这样做。在最坏的情况下(假设 Web 服务器上运行的某个脚本中存在错误),外部攻击者可能会向其中写入任意数据/var/www
,要么将任何内容放到您的 Web 服务器上,要么将他可以执行的脚本放到其中……
根据您的应用程序,您可以授予 Web 服务器对另一个(专用)目录的访问权限,并在 PHP 脚本中需要文件时从该目录检索文件。