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