Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: [РЕШЕНО] apache, права, /var/www  (Прочитано 87660 раз)

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

Оффлайн byebyewin

  • Автор темы
  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
[РЕШЕНО] apache, права, /var/www
« : 05 Апрель 2011, 17:39:19 »
Приветствую уважаемое сообщество.
Ребят, помогите правильно решить практическую задачу, только не пинайте курить маны
Цитировать
это удаленный сервер хранящий файлы для веба
это директория /var/www/site на удаленном сервере владелец стандартно www-data/www-data
это user/user который часто редактирует файлы в директории /var/www/site (ssh/sudo)
это команда которую приходится делать юзеру после внесения изменений в файлы -  chown -R www....
в доме который построил Джек :)

По целому ряду причин хочется делать это все "локально", например gedit использовать и т.д.
Из тех способов что я могу придумать все кривые:
- редактировать локально, потом scp
- дать 777 на дир (не рассматриваем)
- sftp - опять же... права на папку.

Как ПРАВИЛЬНО добиться того чтобы и апач и user могли нормально читать/писать в www.
Создать группу общую и дать 770/660?  Ну не могу я сообразить
« Последнее редактирование: 23 Июнь 2011, 22:30:11 от RazrFalcon »

uxSkyNET

  • Гость
Re: и все таки: Права, sftp и /var/www
« Ответ #1 : 05 Апрель 2011, 18:48:10 »
Приветствую уважаемое сообщество.
Ребят, помогите правильно решить практическую задачу, только не пинайте курить маны
Цитировать
это удаленный сервер хранящий файлы для веба
это директория /var/www/site на удаленном сервере владелец стандартно www-data/www-data
это user/user который часто редактирует файлы в директории /var/www/site (ssh/sudo)
это команда которую приходится делать юзеру после внесения изменений в файлы -  chown -R www....
в доме который построил Джек :)

По целому ряду причин хочется делать это все "локально", например gedit использовать и т.д.
Из тех способов что я могу придумать все кривые:
- редактировать локально, потом scp
- дать 777 на дир (не рассматриваем)
- sftp - опять же... права на папку.

Как ПРАВИЛЬНО добиться того чтобы и апач и user могли нормально читать/писать в www.
Создать группу общую и дать 770/660?  Ну не могу я сообразить

Я конечно могу глупость сказать, немного не понял что нужно, но когда я подымаю локалку для теста своих наработок всегда делаю: sudo chown user_name /var/www - всё работает и локально удобно.

Оффлайн byebyewin

  • Автор темы
  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: и все таки: Права, sftp и /var/www
« Ответ #2 : 05 Апрель 2011, 19:03:35 »
Я конечно могу глупость сказать, немного не понял что нужно, но когда я подымаю локалку для теста своих наработок всегда делаю: sudo chown user_name /var/www - всё работает и локально удобно.

ну представь что у тебя проект на удаленном хосте  в процессе перманентного совершенствования и доступ к нему ты имеешь с разных машин, на которых не обязательно поднят локальный вебсервер - т.е. тестировать "результат" необходимо все таки на удаленном хосте.
Доработки все мелкие и делать после каждой chown - можно банально забыть, ну не на крон же вешать)

потому и стоит вопрос - как иметь нормальный доступ на RW для юзера апача (www-data) и юзера твоего (user) без последствий для всего остального.
Типа такого: сел за комп, примаунтил удаленную директорию, редактировал все локально (например в редакторе гуевом каком-то), сохранял попутно все в примаунченную папку, ушел.

Оффлайн proctoleha

  • Активист
  • *
  • Сообщений: 354
    • Просмотр профиля
Re: и все таки: Права, sftp и /var/www
« Ответ #3 : 05 Апрель 2011, 19:20:10 »
это директория /var/www/site на удаленном сервере владелец стандартно www-data/www-data
Блин достали уже такие руководства. С какого такого члена апач является владельцем чего-либо? Науя это нужно апачу?
У меня и на локальном хосте (ubuntu server 10.04) и на удаленном (freebsd) все сайты лежат в домашней папке пользователя. Именно он является владельцем DocumentRoot. Все отлично работает. А давать индейцу полные права - это оставлять подарок для юного хакера, который будет ломать ваш сайт.
А насчет удобства для редактирования, в убунте это вообще сказка. Когда сидел на десктопной версии - монтировал удаленный каталог через ssh и вуаля - чем хочешь, тем и редактируй.
« Последнее редактирование: 05 Апрель 2011, 19:22:04 от proctoleha »
За что я временами ненавижу Линукс - так это за свои кривые руки

Оффлайн apl

  • Активист
  • *
  • Сообщений: 689
  • Calculate linux
    • Просмотр профиля
    • Атеисты и безбожники
Re: и все таки: Права, sftp и /var/www
« Ответ #4 : 05 Апрель 2011, 19:23:07 »
А если работаешь в CMS? И создаешь файл? То владелец будет www-data
Поэтому права даем 770, а владелец у меня apl:www-data

У меня сделано так

Пользователь решил продолжить мысль 05 Апрель 2011, 19:24:36:
Нужно же дать права и CMS, и человеко-юзерам
Core2Duo 6600, 4Gb RAM, 1000Gb HDD, Nvidia GeForce 8800 GTS, Calculate linux

Оффлайн proctoleha

  • Активист
  • *
  • Сообщений: 354
    • Просмотр профиля
Re: и все таки: Права, sftp и /var/www
« Ответ #5 : 05 Апрель 2011, 19:32:45 »
А если работаешь в CMS? И создаешь файл? То владелец будет www-data
Поэтому права даем 770, а владелец у меня apl:www-data

У меня сделано так

Пользователь решил продолжить мысль [time]Tue Apr  5 19:24:36 2011[/time]:
Нужно же дать права и CMS, и человеко-юзерам
Если работаешь с CMS, то в руководстве к ней обычно пишут, что на такие то каталоги нужно выставить 777, как правило это temp, image и т.д.
Вот листинг сайта на джумле:
(Нажмите, чтобы показать/скрыть)
Владелец пользователь, не надо индейцу никаких прав, это идеологически неверно.
И на моем сайте, как видите полные права вообще не выставлены, т.к. cms имеет ftp доступ.
« Последнее редактирование: 05 Апрель 2011, 19:35:42 от proctoleha »
За что я временами ненавижу Линукс - так это за свои кривые руки

Оффлайн apl

  • Активист
  • *
  • Сообщений: 689
  • Calculate linux
    • Просмотр профиля
    • Атеисты и безбожники
Re: и все таки: Права, sftp и /var/www
« Ответ #6 : 05 Апрель 2011, 19:52:10 »
Я сделал проще - запускаю апачь под своим юзером

Пользователь решил продолжить мысль 05 Апрель 2011, 19:57:12:
Я и не говорил, что ко ВСЕМУ нужно поставить полный доступ, но лично я работаю с проектами, когда юзер может заливать/редактировать как через ЦМС, так и по фтп

На рабочих проектах это не принципиально, а вот домашние сайтики...
1. Дома я запускаю апачь под своим юзером
2. CMS ставит по-умолчанию права 755 на создаваемое (если нужны будут другие - изменю конфиг, CMS использую свою собственную и делаю там все что хочу)

Это позволяет мне извращаться как угодно для каких угодно задач,
« Последнее редактирование: 05 Апрель 2011, 19:57:12 от apl »
Core2Duo 6600, 4Gb RAM, 1000Gb HDD, Nvidia GeForce 8800 GTS, Calculate linux

Оффлайн byebyewin

  • Автор темы
  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: и все таки: Права, sftp и /var/www
« Ответ #7 : 06 Апрель 2011, 01:17:45 »
Цитировать
А насчет удобства для редактирования, в убунте это вообще сказка. Когда сидел на десктопной версии - монтировал удаленный каталог через ssh и вуаля - чем хочешь, тем и редактируй.

вот вот вот! именно этого и добиваюсь. Хочу нормальную подсветку синтаксиса, автодополнение и прочие плюшки, а так приходится nano/mcedit еще и комбинации клавиш радикально отличаются. (правоверные линуксоиды ваще сказали бы сразу - учи vim)

это директория /var/www/site на удаленном сервере владелец стандартно www-data/www-data
Блин достали уже такие руководства. С какого такого члена апач является владельцем чего-либо? Науя это нужно апачу?
У меня и на локальном хосте (ubuntu server 10.04) и на удаленном (freebsd) все сайты лежат в домашней папке пользователя. Именно он является владельцем DocumentRoot. Все отлично работает. А давать индейцу полные права - это оставлять подарок для юного хакера, который будет ломать ваш сайт.

Хотел уже было сетовать на то что мол по умолчанию /var/www используется в убунте под веб и ввв-дата его владелец...
щас так подумал, а ведь и правда апачу/энжениксу только чтение надо в основном, а владельцем может быть хоум юзер...
короче буду смотерть в сторону apache2-mpm-itk он вроде бы решает похожие вопросы

Стоп: с другой стороны - пользователь апача имеет доступ только в /var/www ну и в свою папку, а если владельцем будет хоум юзер - теоретически доступ можно получить ко всей системе?
я запутался в общем
« Последнее редактирование: 06 Апрель 2011, 01:26:32 от byebyewin »

Оффлайн proctoleha

  • Активист
  • *
  • Сообщений: 354
    • Просмотр профиля
Re: и все таки: Права, sftp и /var/www
« Ответ #8 : 06 Апрель 2011, 08:26:11 »
я запутался в общем
Стоп, давайте по порядку, еще раз.
1. Не надо мудрить, я не знаю что такое apache2-mpm-itk, и т.к. у меня все работает, значит мне это не нужно, и знать пока не хочу.
2. После установки LAMP владельцем папки /var/www по умолчанию является root. И привыкните пожалуйста к мысли, что в линухе права устанавливаются как правило, именно так, как нужно. Движения со стороны пользователей по изменению прав нужны в исключительных случаях, и на определенном этапе. Как показывает практика, права начинают менять или новички, которым все интересно и которые в результате гробят систему, или опытные юзеры, которые отдают себе отчет, что они делают.
3. Если вы собираетесь держать свои хосты в директории  /var/www, то это как раз тот случай, когда необходимо изменить права доступа по умолчанию:
chown -R username:username /var/wwwВсё! Не надо больше ничего мудрить, вы владелец DocumentRoot, если у вас какая-то CMS, то на отдельные каталоги нужно дать 777. Апач всё прочитает, и все будет прекрасно работать.
4. Если вы решите хранить виртуальные хосты в /home/username, то тем более ничего с правами делать не надо. Прописываете директивы для виртуальных хостов и всё.

Хоум юзер, как вы пишете, имеет доступ только к своему домашнему каталогу! Для доступа ко всей системе нужны права root, но это совсем другая история.
За что я временами ненавижу Линукс - так это за свои кривые руки

Оффлайн MA3X

  • Активист
  • *
  • Сообщений: 649
    • Просмотр профиля
Re: и все таки: Права, sftp и /var/www
« Ответ #9 : 06 Апрель 2011, 10:56:25 »
Из опыта подъема веб-серверов на убунте:
а) запускать апач от юзера, дать юзеру права на /var/www или создать в его хомяке диру www и поместить линк на нее в /var вместо родной www. Хорошо, если юзер один.
б) если юзеров несколько, и нужен доступ по ftp - апач запускается как обычно, то есть от www-data. А юзеров прописываем в proftp так, что у каждого свой логин\пароль, своя дира в /var/www, выше которой он не пойдет(соответствующая его вирт. хосту),  но uid любого такого  юзера == uid www-data.
Тогда все работает.
Microsoft isn't the answer.
Microsoft is the question, and the answer is NO.

Оффлайн byebyewin

  • Автор темы
  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: и все таки: Права, sftp и /var/www
« Ответ #10 : 06 Апрель 2011, 12:21:51 »
я запутался в общем
Стоп, давайте по порядку, еще раз.

Хоум юзер, как вы пишете, имеет доступ только к своему домашнему каталогу! Для доступа ко всей системе нужны права root, но это совсем другая история.

спасибо за подробные разъяснения. По поводу хоум юзера - я об этом и говорю - sudo дает же возможность получить рутовые права зная пароль пользователя?... не берусь утверждать.
В сети просто куча руководств и все блин разные, сложить более менее правильную картину тяжело, даже вот в этой ветке смотрите:
из учета что веб директория это /var/www
1) Вы говорите: сделать владельцем user, а апачу (www-data) дать права чтения и кое-где 777 - логика я так понимаю в том, что если кто-то ложит/дырявит апач, то в итоге получит лишь доступ на чтение к www дире и вреда нанести не сможет
2) MA3X говорит:  запускать апач от юзера, дать юзеру права на /var/www - тут я так понимаю при ситуации из п1. злоумышленник получит доступ полный к /var/www и /home/user и еще черт знает к чему
3) MA3X говорит:  uid любого такого  юзера == uid www-data - бегло просмотрел по uid инфу, интересно, но надо вникать глубоко.

в итоге, если исходить из задачи описанной в самом первом посте моем - то п.1 как раз  и дает возможность и редактировать файлы в примаунченной удаленно дире  и в то же время не иметь проблем с правами апача. Осталось получить подтверждение что этот способ идеологически верный)
« Последнее редактирование: 06 Апрель 2011, 12:23:24 от byebyewin »

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: и все таки: Права, sftp и /var/www
« Ответ #11 : 06 Апрель 2011, 13:52:00 »
Если вы решите хранить виртуальные хосты в /home/username, то тем более ничего с правами делать не надо. Прописываете директивы для виртуальных хостов и всё.
Это самый правильный вариант.
Такой подход используют крутые профи.
Я это впервые увидел в джанго, долго думал об этом. И понял, что это и есть то, что надо.

Оффлайн proctoleha

  • Активист
  • *
  • Сообщений: 354
    • Просмотр профиля
Re: и все таки: Права, sftp и /var/www
« Ответ #12 : 06 Апрель 2011, 14:49:53 »
но uid любого такого  юзера == uid www-data.
Тогда все работает.
Хм, дома у меня юзер один, на рабочем хосте несколько, вот листинг:
(Нажмите, чтобы показать/скрыть)

И где тут одинаковый uuid для пользователя и www? У каждого юзера свой домашний каталог, когда я захожу через ftp - я попадаю только туда, куда мне разрешено. У индейца права только на чтение. Все прекрасно работает. И абсолютно фиолетово, что дома у меня ubuntu server, на удаленном хосте фряха. Линукс он и в Африке Линукс, основы везде одинаковы.
« Последнее редактирование: 06 Апрель 2011, 14:52:38 от proctoleha »
За что я временами ненавижу Линукс - так это за свои кривые руки

Оффлайн byebyewin

  • Автор темы
  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: и все таки: Права, sftp и /var/www
« Ответ #13 : 06 Апрель 2011, 15:00:08 »
Если вы решите хранить виртуальные хосты в /home/username, то тем более ничего с правами делать не надо. Прописываете директивы для виртуальных хостов и всё.
Это самый правильный вариант.
Такой подход используют крутые профи.
Я это впервые увидел в джанго, долго думал об этом. И понял, что это и есть то, что надо.

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

Кстати вот пример того с чем прийдется мириться при установке владельцем хоум юзера:
Цитировать
Установите права на запись в директорию config
Установите права на запись в директорию tools
Установите права на запись в директорию cache
Установите права на запись в файл sitemap.xml
Установите права на запись в директорию img и поддиректории
Установите права на запись в директорию mails и поддиректории
Установите права на запись в директорию modules и поддиректории
Установите права на запись в директорию themes/lang/ рекурсивно
Установите права на запись в директорию translations и поддиректории
Установите права на запись в директорию upload и поддиректории
Установите права на запись в директорию download и поддиректории

т.е. теперь прийдется на эти пути давать запись "для всех"? или идти по пути "запускать апач от user"?
« Последнее редактирование: 06 Апрель 2011, 15:07:52 от byebyewin »

Оффлайн apl

  • Активист
  • *
  • Сообщений: 689
  • Calculate linux
    • Просмотр профиля
    • Атеисты и безбожники
Re: и все таки: Права, sftp и /var/www
« Ответ #14 : 06 Апрель 2011, 15:08:26 »
У меня сайты весят ~100 гигов, я не стал их держать на одном разделе с / и вынес в /media/www
Core2Duo 6600, 4Gb RAM, 1000Gb HDD, Nvidia GeForce 8800 GTS, Calculate linux

 

Страница сгенерирована за 0.279 секунд. Запросов: 22.