Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с правами доступа на гостевой ОС 
:(
    Опции темы
BuShaRt
Дата 11.9.2011, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: 4
Всего: 6



Есть две ОС. Хост - Ubuntu, на ней через VirtualBox поднят гость CentOS (на ней в свою очередь поднят Apache, php и прочие)
 
Суть в том, что когда гостевая ОС создает какие-либо файлы, то им присваиваеться авторство пользователя, запустившего VirtualBox + автоматические права 755, что означает, что производить запись в этих файлах/каталогах может тольпо пользователь, открывший VirtualBox. В результате получаеться, что php скрипт, который только, что создал каталога (на пример) в слудующей итерации уже не имеет доступа к этому каталогу.

Что делать?
PM MAIL   Вверх
Smorodin
Дата 12.9.2011, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрейший
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 10.4.2006
Где: Пермь

Репутация: нет
Всего: 1



"Мсье знает толк в извращениях" - ничего личного, просто первое, что пришло в голову.

Надо сделать так, чтобы веб-сервер, работающий на гостевой, работал от имени этого пользователя.

Это сообщение отредактировал(а) Smorodin - 12.9.2011, 16:40


--------------------
Сделать можно все, только вопрос - когда?
PM MAIL Skype   Вверх
voral
Дата 12.9.2011, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 158
Регистрация: 16.3.2008
Где: Иваново

Репутация: нет
Всего: нет



что-то я ни чего не понял. Файлы создаются на хосте из гостевой системы? Как организован доступ из гостевой системы к файловой системе хоста?

Как вы вызываетет тот самый скрипт?

Или у вас следующая ситуация на гостевой системе поднят вебсервер. Вы обращаетесь к сайту на нем с хостовой системы. Php скрипт создает таам некий каталог. В который вы не можете зайти записать ни чего если логинитесь гостем на гостевой системе? Так?

Если так, то по идее у вас кталог должен создаваться не от имени пользователя запустившего виртуал бокс, а от имени апача. ЧТо бы получить доступ к нему надо того самого гостя добавить в группу апачевскую.

Вообщм давайте по подробнее опишите ситуацию...... А то с гаданиями можно зайти далеко, но не туда.

PM MAIL WWW   Вверх
BuShaRt
Дата 12.9.2011, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: 4
Всего: 6



Цитата

Надо сделать так, чтобы веб-сервер, работающий на гостевой, работал от имени этого пользователя.

как?

Цитата

Файлы создаются на хосте из гостевой системы? Как организован доступ из гостевой системы к файловой системе хоста?

Репозиторий расположен на хосте и смонтирован в гостевую систему, стандартным инструментом VB "Общие папки". Грубо говоря репозиторий расшарен для гостевой ОС.


Цитата(voral @  12.9.2011,  17:58 Найти цитируемый пост)
Как вы вызываетет тот самый скрипт?

Я ввожу в строке браузера site -> Ubuntu согласно /etc/hosts перенаправляет запросна lo -> Тут VB (через NAT) слушает 80 порт, на который передан запрос и пробрасывает его в гостивую ОС -> в гостевой ОС запрос обрабатываеть.

Я так понимаю обратно данные идут по этой же цепочке, иначе я не как не могу объяснить, что все файлы создаваемые скритпами через php mkdir имеют в качестве владельца пользователя, от лица которого был запущен VB (если это я, то пишет меня, если из под root'a то пишет root'a). 

Проблема в том, что даже если гостевая ОС будет вся работать в режиме суперпользователя, то guest::root != host::root. А в процессе работы получаеться, что файл создаеться от лица host::root с правами 755, поэтому для guest::root доступ закрыт.

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

З.ы. Еще раз попробую изложить корень проблемы. Я так понял, что VB берет отвественность за все действия на себя т.е. если мы подняли гостевую Ос, то хосту все равно какие процесс работают внутри VB. В результате все действия производяться от VB, тем пользователем, который ее запустил. Тоже самое, что если бы я открыл gedit от лица пользователя и создал бы файл.  


PM MAIL   Вверх
voral
Дата 12.9.2011, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 158
Регистрация: 16.3.2008
Где: Иваново

Репутация: нет
Всего: нет



Цитата(BuShaRt @  12.9.2011,  18:54 Найти цитируемый пост)
Репозиторий расположен на хосте и смонтирован в гостевую систему, стандартным инструментом VB "Общие папки". Грубо говоря репозиторий расшарен для гостевой ОС.

Что в вашем понятии репозиторий?
Почем не поднять вебсервер на хосте?

Цитата(BuShaRt @  12.9.2011,  18:54 Найти цитируемый пост)

Я так понимаю обратно данные идут по этой же цепочке, иначе я не как не могу объяснить, что все файлы создаваемые скритпами через php mkdir имеют в качестве владельца пользователя, от лица которого был запущен VB (если это я, то пишет меня, если из под root'a то пишет root'a). 

Все правильно. Так и должно быть. Для хоста VB такаяже программа как и, например, текстовый редактор.


Цитата(BuShaRt @  12.9.2011,  18:54 Найти цитируемый пост)
З.ы. Еще раз попробую изложить корень проблемы. Я так понял, что VB берет отвественность за все действия на себя т.е. если мы подняли гостевую Ос, то хосту все равно какие процесс работают внутри VB. В результате все действия производяться от VB, тем пользователем, который ее запустил. Тоже самое, что если бы я открыл gedit от лица пользователя и создал бы файл.  
Совершенно верно. Это логично.

Зачем вы все это мудрите?


PM MAIL WWW   Вверх
voral
Дата 12.9.2011, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 158
Регистрация: 16.3.2008
Где: Иваново

Репутация: нет
Всего: нет



Цитата(BuShaRt @  11.9.2011,  23:43 Найти цитируемый пост)
В результате получаеться, что php скрипт, который только, что создал каталога (на пример) в слудующей итерации уже не имеет доступа к этому каталогу.

Это странно. Может быть вы не правильно монтируете общуюю папку на госевой системе? Какой командой делаете?
PM MAIL WWW   Вверх
BuShaRt
Дата 12.9.2011, 23:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: 4
Всего: 6



voral, 
Инкапсуляция веб-сервера в гостевую ОС очень удобное решение в случае если над проектом работает несколько человек, находяшиеся в отдаление друг от друга. Таким образом мы можем быть уверены, что веб-сервер собран у всех одинаково, а так же соотвествует веб-серверу на релизе. Ранее проблема не обнаруживалась т.к. вся команда работает из под Win, а я вот решил перейти под ubuntu.


Цитата(voral @  12.9.2011,  23:44 Найти цитируемый пост)
Это странно. Может быть вы не правильно монтируете общуюю папку на госевой системе? Какой командой делаете? 

mount =) Есть другие варианты?
PM MAIL   Вверх
voral
Дата 13.9.2011, 07:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 158
Регистрация: 16.3.2008
Где: Иваново

Репутация: нет
Всего: нет



Цитата(BuShaRt @  12.9.2011,  23:59 Найти цитируемый пост)

Инкапсуляция веб-сервера в гостевую ОС очень удобное решение в случае если над проектом работает несколько человек, находяшиеся в отдаление друг от друга. Таким образом мы можем быть уверены, что веб-сервер собран у всех одинаково, а так же соотвествует веб-серверу на релизе. Ранее проблема не обнаруживалась т.к. вся команда работает из под Win, а я вот решил перейти под ubuntu.

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


Цитата(BuShaRt @  12.9.2011,  23:59 Найти цитируемый пост)
mount =) Есть другие варианты? 

Есть варианты параметров этой команды. smile
В прочем я такой (какой я понял) вариант работы не разу не пробовал. Но достаточно странно.

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

Если же я не правильно вас понял, то посмотрите в сторону Git. Он есть и под винду. Почитайте книжку Git Magick (Магия Git) есть русский перевод http://www-cs-students.stanford.edu/~blynn/gitmagic/intl/ru/


PM MAIL WWW   Вверх
BuShaRt
Дата 13.9.2011, 08:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: 4
Всего: 6



voral, 
GIT во всей этой системе тоже завязан, но с ним проблем нет.

Добавлено через 36 секунд
Цитата(voral @  13.9.2011,  07:56 Найти цитируемый пост)
Т.е.сам вебсервер у вас крутится на гостевой, а все файлы сайта (включая скрипты) лежат на хосте?
Вы собираете веб сервер с определенной конфигурацией? И обмениваетесь образом виртуальной машины? И вам нужно решить проблему силами хоствой машины?

Да =)
PM MAIL   Вверх
voral
Дата 13.9.2011, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 158
Регистрация: 16.3.2008
Где: Иваново

Репутация: нет
Всего: нет



Вот такой вариант решения:
На гостевой системе
1. СОздаем точку монтирования
Код

mkdir /media/share

2. Узнаем id группы и пользователя apache (на дебиан www-data)
Код

cat /etc/group | grep www-data
cat /etc/passwd | grep www-data

3. Пишем в fstab  Подразумеваем, что общий каталог с файлами сайта имеет имя share
Код

share /media/share vboxsf auto,rw,uid=33,gid=33,dmask=002 0 0

(Параметры, можно подобрать по точнее, в зависимости от конкретной ситуации)
4. Перегружаем или 
Код

mount -a

5. В конфиге апача указываем, что сайт лежит в /media/share


Вуаля у меня все работает - попробовал. В итоге в файловой системе гостя файлы принадлежат пользователю и группе апача; на хосте пользователю запустившему виртуал бокс.

Добавлено через 12 минут и 50 секунд
Да забыл уточнить в моем случае id группы и id пльзователя апача одинаковы и равны 33
PM MAIL WWW   Вверх
voral
Дата 13.9.2011, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 158
Регистрация: 16.3.2008
Где: Иваново

Репутация: нет
Всего: нет



Докрутил
Код

share /media/share vboxsf auto,rw,uid=33,gid=33,dmode=774,fmode=664 0 0

Теперь на гостевой системе можно любого пользователя (обрати внимание - пользователя гостевой системы, не хоста) включить в группу www-data и он сможет так же работать с этими фалами и катлогами
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0751 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.