Как правильно распределить доступы в ubuntu 16.01 server?
Есть директории /var/www/site1 и /var/www/site2.
1) Нужно сделать так, что бы user1 мог делать все что угодно в директории /var/www/site1, а user2 в /var/www/site2, но сделать все так - что бы user1 не может просматривать файлы в директории /var/www/site2 и так же с user2.
2) При всем этом - что бы nginx мог читать данные с обоих каталогов.
Первое у меня получилось, но вот Nginx не может получить доступы к директории и сайт падает...
Это же легко:
1) что бы user1 мог делать все что угодно в директории /var/www/site1
Назначить его владельцем каталога и дать права только владельцу, остальные убрать. Аналогично с user2
2) что бы user1 не может просматривать файлы в директории /var/www/site2
Это решается пунктом 1
3) Назначить пользователя Nginx в какую-нибудь свою группу (если у него нет своей) и модифицировать 1 и 2 пункт, чтобы дать права также этой группе. Т.к. user1 и user2 в этой группе состоять не будут, на них эти разрешения работать не будут
Saboteur: хм... а вот - я создам группу и добавлю туда user1, www-data и root для первого сайта, но что насчет второго? как я понял - там пользователя можно только в одну группу добавлять? или через подгруппы?
Итак... рано обрадовался - мой метод не сработал:
1. я создал 2 группы - site1, site2
2. добавил в группу site1 пользователей: root, www-data, user1
а в группу site2: root, www-data, user2
3. поменял права в директориях на 750
но все равно nginx не может прочесть данные
посмотрел через «ps -axu | grep nginx» на чем он сидит: root и www-data
что я делаю не так?
Пользователя можно добавить в сколько угодно групп.
группы вы создали, а права на папки роздали?
какие владельцы и группы у папок?
Выполните
ls -1lsFa /var/www
Магжан Биргебайулы: Чтобы права группы и пользователя как-то влияли на папки, нужно не просто создать группы, чтобы они были, а назначить владельца и группу у нужной папки.
от имени рута выполните
chown user1:site1 /var/web/site1/
chown user2:site2 /var/web/site2/
ls -1lsFa /var/web
1. убедитесь, что владелец и группа правильные
2. проверьте доступ
3. пометьте ответ как решение.
Поставить user1 владельцем /var/www/site1
Поставить user2 владельцем /var/www/site2
Поставить для обоих каталогов группу, например, и добавить в нее пользователя, от имени которого запускается ваш nginx (может такие пользователь и группа уже даже есть).
На обоих каталогах поставить права 770 (rwxrwx---), чтобы владельцы и группы имели полный доступ.