IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Пингвинятник (ОС *NIX) (http://www.imho.ws/forumdisplay.php?f=76)
-   -   Apache не видит подмонтированную в Linux флешку (http://www.imho.ws/showthread.php?t=141245)

Ghоst 17.09.2009 15:47

Apache не видит подмонтированную в Linux флешку
 
Всем привет! Помогите пожалуйста с настройкой Apache под Linux Red Hat.
Вообщем все работает нормально, но на флешке хранятся изображения, к которым пользователи должны получать доступ. В корневой директории Apache я создал папку flashkey и в нее смонтировал флешку mount -t vfat /dev/sda1 flashkey. При попытке доступа к изображениям в этой папке Apache выкидывает ошибку 403 Forbiden You have not permission to access to file ....... on this server. В httpd.conf настроен абсолютный доступ ко всем директориям компьютера (для проверки). Что нужно сделать, чтобы работало????

Plague 17.09.2009 16:33

смотреть с какими правами доступа монтируется флешка.

к веб-программированию сей вопрос не имеет никакого отношения, переношу в "Пингвинятник"

BorLase 17.09.2009 17:01

Цитата:

Сообщение от Ghоst (Сообщение 1674550)
Что нужно сделать, чтобы работало????

для начала попробовать положить картинку в корень флешки, примонтировать ее, дать изображению атрибуты 777 и посмотреть, найдет картинку апач или нет

если найдет, тогда действительно разбираться, с какими правами монтируется флешка и какие права получают каталоги и файлы на ней

SinClaus 17.09.2009 17:02

1. Какой Апач?
2. С какими правами монтируется флешка.

По поводу первого вопроса - начиная с версии 2.1.ххх не помню - по умолчанию права у Апача на <Directory> - запрет доступа (это я о внутренних разрешениях Апача, httpd.conf).

Plague 17.09.2009 17:10

Цитата:

Сообщение от BorLase (Сообщение 1674587)
дать изображению атрибуты 777 и посмотреть, найдет картинку апач или нет

777 для данной задачи - дюже круто ;)
444 достаточно будет для чтения.

Цитата:

Сообщение от SinClaus (Сообщение 1674588)
по умолчанию права у Апача на <Directory> - запрет доступа (это я о внутренних разрешениях Апача, httpd.conf).

насколько я понимаю, mount point там, что апач видит уже:
Цитата:

Сообщение от Ghоst (Сообщение 1674550)
В корневой директории Apache я создал папку flashkey


noname 17.09.2009 18:19

2 Plague
для директории необходим +x -execuion bit .
тоесть минимальные права 500


2 Ghost

гуглить directory indexing
<Location/var/www/mountpoint>
Option Indexes
</Location>

также смотря как монтируется флешка , в обшем случае можно указать uid,gid веб сервера как опции монтирования
man mount /uid

Plague 17.09.2009 18:23

Цитата:

Сообщение от noname (Сообщение 1674615)
для директории необходим +x -execuion bit .
тоесть минимальные права 500

там про файл речь шла.
Цитата:

Сообщение от noname (Сообщение 1674615)
гуглить directory indexing

накой индексинг там нужен??
Цитата:

Сообщение от Ghоst (Сообщение 1674550)
При попытке доступа к изображениям

тоесть идет прямое обращение к файлам, directory index нафик не нужен. а про то что апач список файлов той флешки выдавать должен речи не шло вроде

и за отправку в гугль я скоро пинать как за рекламу буду, честное слово.

Hubbitus 23.09.2009 15:58

А что в логах?

Кстати SELinux включен, может он, если права проверили?

Ghоst 25.09.2009 13:23

Цитата:

Сообщение от noname (Сообщение 1674615)
<Location/var/www/mountpoint>
Option Indexes
</Location>

Может вместо /var/www/mountpoint нада /dev/sda1 ???

Hubbitus 25.09.2009 13:24

Цитата:

Сообщение от Ghоst (Сообщение 1675808)
Может вместо /var/www/mountpoint нада /dev/sda1 ???

нет конечно

Ghоst 25.09.2009 14:22

Цитата:

Сообщение от noname (Сообщение 1674615)
указать uid,gid веб сервера как опции монтирования

Всем большое спасибо!!! Вот это помогло!!!! )))))))

Ghоst 29.09.2009 10:04

Здравствуйте всем!
Помогите советом, пожалуйста.
Apache видит файлы на флешке если из под root`а выполнить
mount -t vfat -o rw,uid=www /dev/sda1 /var/www/html/flashkey (где www - имя пользователя и группы).
Но нужно, чтобы пользователь используя web-интерфейс мог смонтировать/отмонтировать флешку.
Т.е. на html странице выбираем "смонтировать flash" - вызывается скрипт с командой
mount -t vfat -o rw,uid=www /dev/sda1 /var/www/html/flashkey, при этом команда mount не выполняется,
а в файл error_log apache пишется сообщение об ошибке:
[error] [client 92.50.218.245] mount: only root can do that, referer: http://92.50.218.243/menu.html
или
[error] [client 92.50.218.245] mount: must be superuser to use mount, referer: http://92.50.218.243/menu.html
Пробовал следующее: chgrp www mount, chown www:www mount - не помогает, а вот с командой reboot все получается, выполняется она ...
Как выполнить mount? Не знаю, что и попробовать ...(почему reboot получается запустить, а mount - нет, не понимаю...:idontnow:):help:

Plague 29.09.2009 10:23

Цитата:

Сообщение от Ghоst (Сообщение 1676464)
почему reboot получается запустить, а mount - нет, не понимаю...

так организованы права значит.

по сути: ставим sudo (если нет в системе еще)
в файле sudoers пишем
Код:

имя_юзера_кем_надо_монтировать ALL=NOPASSWD:/полный/путь/до/комманды/mount -t vfat -o rw,uid=www /dev/sda1 /var/www/html/flashkey

Hubbitus 29.09.2009 10:36

Цитата:

Сообщение от Ghоst (Сообщение 1676464)
Apache видит файлы на флешке если из под root`а выполнить
mount -t vfat -o rw,uid=www /dev/sda1 /var/www/html/flashkey (где www - имя пользователя и группы).

Все правильно. Просто прописываете монтирование флешки в /etc/fstab приблизительно так:
Код:

/dev/sda1 /var/www/html/flashkey vfat defaults,users,utf8,noauto,uid=www 0 0
И потом уже в ВЕБ-интерфейсе просто выполняете:
Код:

mount /var/www/html/flashkey
от простого пользователя. Вот и все.

Plague 29.09.2009 10:42

Hubbitus, по-моему все равно рута захочет.
по крайней мере в FreeBSD точно хотело у меня (давно я эту траблу решал, года два назад уже наверно).
вариант с sudo решил проблему только


добавлено:
а, там еще uid=www.. ну возможно и прокатит, не спорю.

Hubbitus 29.09.2009 10:43

А при чем здесь рут, если явно написано users и им разрешено монтировать-размонтировать?

Судо это уж как последний рубеж...

Ghоst 08.10.2009 09:50

Подскажите, пожалуйста, как узнать в своей программе смонтировано или нет устройство /dev/sda1 в системе? Есть для этого какая нибудь функция, если есть, где посмотреть пример? И еще вопрос. Моя программа должна запускаться из под root и нужно послать ей сигнал из WEB-интерфейса (имя пользователя и группы www). В программе использую функцию sigtimedwait(), из WEB-интерфейса посылаю команду, например kill -s 10 1010 (где 10-номер сигнала,1010-PID). Так не прокатывает из-за разных прав. Подскажите как можно просигнализировать/сообщить о каком либо событии программе из WEB-интерфейса (в случае если права разные)? Заранее благодарен за помощь.

noname 08.10.2009 16:04

одскажите, пожалуйста, как узнать в своей программе смонтировано или нет устройство /dev/sda1

/proc/mounts

>Подскажите как можно просигнализировать/сообщить о >каком либо событии программе из WEB-интерфейса (в >случае если права разные)? Заранее благодарен за помощь.

писать в файл , socket , и т.д.
можно иметь cron между веб и програмой.
типа web пишет в файл , который раз в минуту проверяется из крона ,и если надо запускается программа

кстати зачем программа должна иметь root privileges ?

Ghоst 08.10.2009 17:14

Спасибо за советы.

Цитата:

Сообщение от noname (Сообщение 1677973)
кстати зачем программа должна иметь root privileges ?

Не получается с другими привилегиями использовать нужные мне устройства /dev ...
Хочу попробовать решить вопрос, используя функции обмена сообщениями msgsnd(), msgrcv() ...

noname 08.10.2009 19:13

imho правильнее назначить устройствам соответствуюшие группы

Hubbitus 09.10.2009 01:05

Цитата:

Сообщение от Ghоst (Сообщение 1677908)
Подскажите, пожалуйста, как узнать в своей программе смонтировано или нет устройство /dev/sda1 в системе?

mount без параметров показывает примонтированные. Учтите, что теоретически могут быть скрытые.


Цитата:

Сообщение от Ghоst (Сообщение 1677908)
Подскажите как можно просигнализировать/сообщить о каком либо событии программе из WEB-интерфейса (в случае если права разные)?

полностью согласен что

Цитата:

Сообщение от noname (Сообщение 1678008)
правильнее назначить устройствам соответствуюшие группы

и решить проблему концептуально, так сказать цивилизованным путем.

Если же не получается, то ответом на данный вопрос будет именно sudo.


Часовой пояс GMT +4, время: 18:56.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.