[英]Running a bash script from php webpage
我有一个由 apache 服务器运行的 php 网页,它存储在/var/www/myweb/
并称为index.php
现在我正在尝试从 php 网页调用/home/me/
名为test.sh
的脚本。 它所做的只是在/home/me/
上创建一个 file1
测试.sh:
#!/bin/bash
touch file1
~
~
~
~
在index.php
,我试图调用脚本
索引.php:
if ($_GET['run'])
{
exec('/home/me/test.sh');
}
不幸的是,这不起作用,似乎原因是权限问题。 我继续尝试从/var/www/myweb/
运行此命令
/home/me/test.sh
我收到了这个错误:
触摸:无法触摸“file1”:权限被拒绝
有没有办法解决这个问题?
如果您不更改目录,则您不是尝试触摸/home/me/file1
,而是/var/www/myweb/file1
。 但是, /var/www/myweb
允许root
到rwx
; www-data
group 到rx
,其他人也到rx
。 当Apache运行它,它正在运行它作为www-data
,在www-data
组; 它获得组权限rx
,禁止创建新文件。 当你运行它时,它以me
身份运行,大概不在www-data
组中,它需要最后一组权限:仍然rx
,仍然无法写入。
理想情况下,您需要提供正在创建的文件的完整路径,以避免混淆您在文件系统中的位置,并且该位置需要为me
和组拥有drwxrwxr-x
(或drwxrwsr-x
)权限www-data
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.