У меня есть сценарий bash, который монтирует USB-накопитель, читает текстовый файл на USB-накопителе и эхо файл, который обрабатывает программу php, которая его вызывала. Монтирование и размонтирование не работают.
Если я смонтирую usb из командной строки, php работает. Доказательства указывают на umount и монтирование не работает. Любая обратная связь будет оценена.
Bash Script: 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 $?
PHP, который вызывает скрипт Bash:
ob_start();
$command="/bin/bash /path/DisplayTextFile.sh"
passthru($command, &$result);
$filetoecho=ob_get_contents();
ob_end_clean();
Как было предложено выше, я добавил DisplayTextFile.sh в sudoers в /etc/sudoers, и он сработал. Я использовал nano, чтобы сделать следующую запись:
www-data ALL=(ALL) NPPASSWD: /path/DisplayTextFile.sh
После того, как эта запись была сделана, проблема была решена. Огромное спасибо.
Вероятно, вы не используете root, попробуйте добавить своего пользователя в группу sudoers (установите sudo, если у вас его нет), а затем измените права пользователя на использование sudo без пароля.
Это не очень безопасно, поэтому вы должны знать, что делаете.
/bin/mount
и/bin/umount
?