繁体   English   中英

从 php 网页运行 bash 脚本

[英]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允许rootrwx 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.

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