當由 php 運行時,安裝在腳本中不起作用

當由 php 運行時,安裝在腳本中不起作用

所以我有一個腳本放置在我的 apache2 html 資料夾中,並且應該由 http post 執行。該腳本需要 root(我知道這根本不安全,請忽略它),因此我將 sudoers 文件中的用戶 www-data 設定為www-data ALL=(ALL) NOPASSWD: ALL.除了掛載 cif 檔案系統之外,運行該腳本效果非常好。

該腳本由php執行:

exec("sudo ./miniosetup $folder $address $path $User $Pass $S3User $S3Pass $Port");

該腳本應該像這樣安裝:

ipadress=$(host $address | cut -d' ' -f4 | head -n 1)
echo "$ipadress $minuname $minpwd" >> log_mount
echo "mount -v -t cifs //$address/$usePath/ /mnt/$filesystemname/ -o username=$username,password=$password" >> log_mount
sudo mount -v -t cifs //$address/$usePath/ /mnt/$filesystemname/ -o username=$username,password=$password >> log_mount
if [ ! $? -eq 0 ]
then
  echo "mount  -v -t cifs //$ipadress/$usePath/ /mnt/$filesystemname/ -o username=$username,password=$passwords" >> log_mount
  sudo mount -v -t cifs //$ipadress/$usePath/ /mnt/$filesystemname/ -o username=$username,password=$password >> log_mount
fi

log_mount 文件如下所示:

192.168.0.5 testingUsr testingTest
mount -v -t cifs //srv01/netstorage/testminio/ /mnt/testingTester/ -o username=FILESYSTEMUSERNAME,password=FILESYSTEMPASSWORD

然而當我運行時mount它永遠不會顯示。檔案系統也沒有安裝到/mnt/testingTester/.當我使用相同的參數手動運行腳本時,一切正常。任何想法都會受到讚賞,因為我已經用完了。

編輯: sudo 有效,否則腳本將僅輸出“請以 root 身份運行”,如第三行所示if [ "$EUID" -ne 0 ]; then echo "Please run as root" exit; fi

編輯:我認為 apache2 可能在某種沙盒中運行,任何人都可以確認或否認嗎?

相關內容