我正在将文本从 bash 脚本传递给 php.除了挂载和卸载 bash 命令之外,一切正常.我做错了什么


I am passing text from a bash script to php. Everything works except the mount and unmount bash commands. What am I doing wrong?

我有一个bash脚本,它挂载一个USB驱动器,读取USB驱动器上的文本文件,并将该文件回显到调用它的php程序。装载和卸载不起作用。

如果我从命令行挂载 USB,php 可以工作。有证据表明卸载和安装不工作。任何反馈将不胜感激。

Bash脚本:DisplayTextFile.sh

#! /bin/bash
umount /dev/sdc1
mount -t vfat /dev/sdc1 /media/usbdisc -o uid=1000,gid=1000,utf8,dmask=000,fmask=000
$filetoecho=$(</media/usbdisc/textfile.txt)
echo "File Content: $filetoecho"
umount /dev/sdc1
exit $?

调用 Bash 脚本的 PHP:

ob_start();
$command="/bin/bash /path/DisplayTextFile.sh"
passthru($command, &$result);
$filetoecho=ob_get_contents();
ob_end_clean();

如上所述,我在/etc/sudoers 中添加了 DisplayTextFile.sh sudoers 并且它起作用了。我使用nano进行以下输入:

www-data ALL=(ALL) NPPASSWD: /path/DisplayTextFile.sh

一旦输入,问题就解决了。谢谢一堆。

您可能没有以 root 身份运行,请尝试将您的用户添加到 sudoers 组(如果没有,请安装 sudo(,然后将您的用户权限更改为在没有密码的情况下使用 sudo。

它不是很安全,所以你必须知道你在做什么。