Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > поменять пользователя apache на пользователя linux


Автор: s_a_s_h_a 20.4.2011, 16:52
на сервере с ОС openSUSE необходим вебовский файловый менеджер (PHP). Соответственно нужно чтобы этот файловый менеджер позволял пользователю работать со своей домашней директорией. У меня проблема с доступом. Т.е. необходимо, чтобы авторизовываясь в файловом менеджере, пользователь имел права соответствующего пользователя linux к своей домашней директории, а не права апача.
Кто с этим сталкивался или наслышан об этом, подскажите направление что изучать, какими методами решать данную задачу?

Автор: Muerto 20.4.2011, 17:13
s_a_s_h_a, просто зайти по ssh в winscp и выдать права... ну или chown http://www.computerhope.com/unix/uchown.htm

Автор: s_a_s_h_a 20.4.2011, 17:25
кому? я наверное плохо объяснил.
Еще раз на примере.
Есть пользователи ОС: tester1 и tester2, пусть для них домашние директории на сервере /home/tester1 и /home/tester2 соответственно. Внутри каталога /home/tester1 может творить что угодно только юзер tester1, tester2 туда доступа иметь не должен.
Есть файловый менеджер вебовский. Пользователь tester1 авторизовываясь там, для ОС является пользователем apache (www-data, wwwrun, может еще что-то, я с линуксом первую неделю знакомлюсь), а не tester1 и поэтому не имеет доступа к /home/tester1. Если в ОС дать доступ к к этим директориям для пользователя апача, то tester1 будет иметь доступ и к своей домашней директории и к чужой и tester2 аналогично. Можно, конечно, программно отслеживать, но я подозреваю, что для линукса - это очень плохой тон.

Автор: bars80080 20.4.2011, 19:16
вообще, вопрос авторизации прекрасно решается самим пхп. после чего он просто позволяет выполнять действия при выполнении любых заданных условий

Автор: s_a_s_h_a 21.4.2011, 08:34
Цитата

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

Спасибо за ответ, только он малоинформативен, я бы сказал для меня он даже абсолютно бесполезен. Что вы подразумеваете под авторизацией самим пхп? Сверка введенного логина и пароля с хранящимся в БД, файле, средствами самого линукса, а потом использование сессий, кукисов или другие какие-то конкретные варианты? 
Вторая часть вообще обо всем и ни о чем. Меня интересует конкретно доступ конкретного пользователя к конкретной папке и никого другого. Один способ я знаю: дать ко всем домашним директориям пользователей линукс, зарегистрированных в веб-сервисе, доступ для пользователя апача, а затем программно отслеживать, чтобы юзер не имел доступа к чужим директориям. Если это единственный способ, или есть мнения плохо это или хорошо, то поделитесь, пожалуйста. Но я подозреваю, что вариантов гораздо больше. И я хотел бы их услышать. Я не прошу код, мне нужны наводки, но конкретные. 

Автор: bars80080 21.4.2011, 13:51
Цитата(s_a_s_h_a @  21.4.2011,  08:34 Найти цитируемый пост)
Сверка введенного логина и пароля с хранящимся в БД, файле, средствами самого линукса, а потом использование сессий, кукисов или другие какие-то конкретные варианты? 

нет, сверка введенного логина и пароля с хранящимся в БД, файле, средствами самого пхп, а потом использование сессий, кукисов или другими вариантами.

как это реализовано здесь, на форуме

а затем показывать средствами пхп только назначенную пользователю директорию. даже если её нет на самом деле.
к примеру, все файлы могут валиться в некий общий каталог, а в БД прописываться id, user_id, path_to_file, codelink_for_download
в итоге показывать пользователю список из файлов только с его user_id

можно создавать специальную под пользователя директорию, будет чуть-чуть проще

Автор: ksnk 21.4.2011, 14:47
апач, обычно, запущен с правами своего пользователя и не имеет возможности лазить по чужим каталогам. Можно процессу апача временно поднять привилегии, если знать пароль рута и иметь возможность исполнять консольные команды, но это, вероятнее всего, окажет влияние на всех юзеров, сидящих на сайте. 
Можно было бы запускать версию апача, с соответствующими привилегиями на свободном порту и переадресовывать успешно залогинившегося юзера на этот апач.

Для простых операций с файлами может оказаться достаточно ftp доступа к домашнему каталогу. Примеров таких файл менеджеров до фига по интернету болтается. Впрочем, достаточно посмотреть на функции работы с ftp. Их там достаточное количество...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)