У меня есть скрипт 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 $?
PHP, который вызывает Bash Script:
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 без пароля.
Это не совсем безопасно, поэтому вы должны знать, что вы делаете.