Автор Тема: [Решено]Странная проблема с Apache + *.php + mount  (Прочитано 1281 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Synthex

Есть вот такой скрипт( проще некуда, сделан для опытов )
#!/usr/bin/php
<?php
$cmd 
"sudo mount -v -o loop /mnt/public/Images/mathcad15.iso /tmp/mathcad15";
system($cmd);

В sudoers добавлена строка(для опыта разрешил всё, правильнее только mount/umount):

www-data ALL=NOPASSWD: ALL
Вот так всё работает как задумано:
sudo -u www-data /path/test.php
а вот так http://server/test.php, вроде всё отрабатывает, mount говорит что всё ок, losetup говорит, что всё подключено, НО, папка куда монтирован образ пуста.

Проблема всплыла при переносе web приложения с Debian 8 на 9.

« Последнее редактирование: 05 Июня 2018, 12:55:02 от Synthex »
 

Оффлайн ecc83

Re: Странная проблема с Apache + *.php + mount
« Ответ #1 : 04 Июня 2018, 15:48:37 »
Смею предположить, что в браузере открывается ссылка от другого пользователя.
Внесите своего пользователя в группу www-data и не занимайтесь извращением с sudoers.

sudo usermod -aG www-data $USER
 

Оффлайн Synthex

Re: Странная проблема с Apache + *.php + mount
« Ответ #2 : 04 Июня 2018, 16:07:06 »
В обоих вариантах в auth.log записано, что mount выполнился от www-data, как и задумано.
 

Оффлайн ecc83

Re: Странная проблема с Apache + *.php + mount
« Ответ #3 : 04 Июня 2018, 16:17:52 »
mount выполнился от www-data, как и задумано.

А под каким пользователем вы входите в систему и пытаетесь открыть http://server/test.php ?
 

Оффлайн Synthex

Re: Странная проблема с Apache + *.php + mount
« Ответ #4 : 04 Июня 2018, 16:40:31 »
Проблема на Debian9 с Apache и без GUI стоит на виртуалке (xenserver). К http://server/test.php обращаюсь с другого компьютера.

Давно сделал систему, чтобы iso образа из одной папки автоматически при загрузке подключались в другую папку. И простой веб интерфейс чтобы подключать/отключать образа. Работает исправно много лет на отдельном файл сервере, пережило апгрейд с Debian 7 на 8. Решил на виртуалке настроить тоже самое, и на тебе такой глюк.
 

Оффлайн ecc83

Re: Странная проблема с Apache + *.php + mount
« Ответ #5 : 04 Июня 2018, 18:34:17 »
Решил на виртуалке настроить тоже самое, и на тебе такой глюк.

Я никогда не устанавливал Apache на Debian. Ставил локальный веб сервер на FreeBSD для собственных нужд.
Но мне кажется, что у вас какие то проблемы с правами.
 

Онлайн endru

Re: Странная проблема с Apache + *.php + mount
« Ответ #6 : 05 Июня 2018, 03:51:38 »
включай debug и изучай логи. не бывает странных проблем.

Оффлайн Synthex

Проблема решена!
« Ответ #7 : 05 Июня 2018, 12:53:12 »
Apache запускается с помощью systemd.
В systemd профиль apache2 настроен так, что монтирование сделанное из скриптов под apache становится приватным, вне него не доступным.
К тому же всё отмонтируется при перезапуске apache.(так и нашел)
Поэтому ошибок нет, всё ок, а содержимое монтированных ресурсов не доступно.

Требуется PrivateTmp=false в systemd.

$ cp /lib/systemd/system/apache2.service /etc/systemd/system/
$ vi /etc/systemd/system/apache2.service
установить PrivateTmp=false
перезапустить apache.

 
Пользователи, которые поблагодарили этот пост: endru, ChubaDuba, PantiL

Теги: