[РЕШЕНО] apache, права, /var/www





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

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


byebyewin

  • Автор темы
  • Новичок
  • Сообщений: 34
[РЕШЕНО] 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

  • Автор темы
  • Новичок
  • Сообщений: 34
Re: и все таки: Права, sftp и /var/www
« Ответ #2 : 05 Апрель 2011, 19:03:35 »

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


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

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


proctoleha

  • Активист


  • Сообщений: 369
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

  • Герой


  • Сообщений: 750
Re: и все таки: Права, sftp и /var/www
« Ответ #4 : 05 Апрель 2011, 19:23:07 »

А если работаешь в CMS? И создаешь файл? То владелец будет www-data
Поэтому права даем 770, а владелец у меня apl:www-data

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


Пользователь решил продолжить мысль 05 Апрель 2011, 19:24:36:


Нужно же дать права и CMS, и человеко-юзерам

В небе воздух рассекать — непроста задача, можно голову сложить не за *** собачий!


proctoleha

  • Активист


  • Сообщений: 369
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

  • Герой


  • Сообщений: 750
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 »
В небе воздух рассекать — непроста задача, можно голову сложить не за *** собачий!


byebyewin

  • Автор темы
  • Новичок
  • Сообщений: 34
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

  • Активист


  • Сообщений: 369
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

  • Герой
  • Сообщений: 678
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

  • Автор темы
  • Новичок
  • Сообщений: 34
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

  • Герой
  • Сообщений: 2473
Re: и все таки: Права, sftp и /var/www
« Ответ #11 : 06 Апрель 2011, 13:52:00 »

Если вы решите хранить виртуальные хосты в /home/username, то тем более ничего с правами делать не надо. Прописываете директивы для виртуальных хостов и всё.

Это самый правильный вариант.
Такой подход используют крутые профи.
Я это впервые увидел в джанго, долго думал об этом. И понял, что это и есть то, что надо.


proctoleha

  • Активист


  • Сообщений: 369
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

  • Автор темы
  • Новичок
  • Сообщений: 34
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

  • Герой


  • Сообщений: 750
Re: и все таки: Права, sftp и /var/www
« Ответ #14 : 06 Апрель 2011, 15:08:26 »

У меня сайты весят ~100 гигов, я не стал их держать на одном разделе с / и вынес в /media/www

В небе воздух рассекать — непроста задача, можно голову сложить не за *** собачий!


http://forum.ubuntu.ru/index.php?topic=146623.0

Губарь Маргарита Александровна