所以我有一个脚本放置在我的 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 可能在某种沙盒中运行,任何人都可以确认或否认吗?