Автор Тема: Apache - различен домейн, различен потребител и група  (Прочетена 2322 пъти)

Breakfist

  • Напреднали
  • *****
  • Публикации: 84
    • Профил
Здравейте,

Искам да направя apache да работи с различен потребител за всеки домейн.

Ето какво съм добавил в httpd.conf
Код:
<VirtualHost myIPaddress:80>
        SuexecUserGroup test test
        DocumentRoot /home/mydomain.com/public_html/test
        ServerName test.mydomain.com
        ServerAlias test.mydomain.com
</Virtualhost>

Предварително съм създал потребителя и групата, които използвам в suexec (от примера по-горе - test:test)

Резултата обаче съвсем не е това, което трябва :)
Код:
uid=33(www-data) gid=33(www-data) groups=33(www-data)

Бъркам или пропускам нещо, някой може ли да ми каже?

благодаря предварително.
Активен

borovaka

  • Напреднали
  • *****
  • Публикации: 1331
  • Distribution: Каквото дойде
  • Window Manager: Gnome / KDE
    • Профил
Активен

Та извода е прост: "Колкото по-големи ла*ната - толкова по-малка щетата! ... моралната де, не материалната"

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Ах, че готина идейка :). Как не съм попаднал на нещо такова по-рано. Благодаря Ви и на двамата.
Активен

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше

Breakfist

  • Напреднали
  • *****
  • Публикации: 84
    • Профил
Цитат
This module is not functional. Development of this module is not complete and is not currently active. Do not use perchild unless you are a programmer willing to help fix it.

Някаква алтернатива може ли да ми предложите ;)
Целта ми е да мога да хостна на машината си повече от един сайт без единия да има достъп до файловете на другите. Единственото решение, което ми хрумна е да намеря начин да задам за всеки домейн различен потребител и група, след което с chmod да наглася правата..
Активен

Naka

  • Напреднали
  • *****
  • Публикации: 3395
    • Профил
Единственото решение, което ми хрумна е да намеря начин да задам за всеки домейн различен потребител и група, след което с chmod да наглася правата..

Нещо такова трябва да е. Ако съм те разбрал правилно....

правиш по една home директория за всеки потребител/група. и привързваш съответният домейн към нея.

например правиш /home/test.mydomain.com rwxrwx---  test:test
с права test:test
и конфигурация на апачито така DocumentRoot /home/test.mydomain.com

апачито работи с права apache.apache за да може то да чете тази директория

добававяш user apache към групата на test

t.e ако /home/test.mydomain.com има пермишъни rwxrwx--- то значи че юсера ще може да чете и пише първото (rwx*** ***) щото е собственик. А апачито ще може да чете и пише от второто (***rwx***) щото е в групата на test

Това ли питаш?



« Последна редакция: Aug 09, 2010, 14:09 от Naka »
Активен

Perl - the only language that looks the same before and after encryption.

Breakfist

  • Напреднали
  • *****
  • Публикации: 84
    • Профил
Единственото решение, което ми хрумна е да намеря начин да задам за всеки домейн различен потребител и група, след което с chmod да наглася правата..

Нещо такова трябва да е. Ако съм те разбрал правилно....

правиш по една home директория за всеки потребител/група. и привързваш съответният домейн към нея.

например правиш /home/test.mydomain.com
с права test:test
и конфигурация на апачито така DocumentRoot /home/test.mydomain.com

апачито работи с права apache.apache

след това добававяш user apache към групата на test

t.e ако /home/test.mydomain.com има пермишъни rwxrwx--- то значи че юсера ще може да чете и пише първото (rwx*** ***) щото е собственик. А апачито ще може да чете и пише от второто (***rwx***) щото е в групата на test

Това ли питаш?

Въпроса е, че например ако отворя domain1.com/shell.php ще мога да ровя из файловете и на domain2, domain3, etc.
Търса начин apache да работи с отделен юзър за всеки домейн.

Например собственика на domain1.com да бъде user1:user1
Собственик на domain1.net да бъде user2:user2
Собственик на domain1.org да бъде user3:user3 и т.н.

По този начин когато задам права само на собственика той няма да може да влиза по другите директории, защото няма да има права там.

===================

Ето как изглежда httpd.conf в момента
Код:
<VirtualHost IP:80>
        ServerName sub.domain.com
        ServerAdmin webmaster@domain.com
        DocumentRoot /home/domain.com/public_html/directory/
        ServerAlias sub.domain.com
        SuExecUserGroup test test
        <Directory /home/domain.com/public_html/directory>
                Options ExecCGI
                Options +FollowSymlinks
                AllowOverride all

                php_admin_flag engine off
                AddHandler cgi-script .php .php3 .php4. php5 .phtml

                Order deny,allow
                Allow from all
        </Directory>
        ErrorLog "|/usr/sbin/rotatelogs /home/domain.com/logs/directory/%Y-%m-%d_error.log 86400"
        CustomLog "|/usr/sbin/rotatelogs /home/domain.com/logs/directory/%Y-%m-%d_access.log 86400" common
</Virtualhost>

При опит да заредя файл от директорията ми връща грешка 500.

error.log
Код:
[Mon Aug 09 14:09:20 2010] [error] [client ***] File does not exist: /home/domain.com/public_html/directory/favicon.ico
[Mon Aug 09 14:09:25 2010] [error] [client ***] suexec policy violation: see suexec log for more details
[Mon Aug 09 14:09:25 2010] [error] [client ***] Premature end of script headers: test.php

suexec.log
Код:
[2010-08-09 14:09:25]: uid: (1005/test) gid: (1005/test) cmd: test.php
[2010-08-09 14:09:25]: command not in docroot (/home/domain.com/public_html/directory/test.php)

Идей? ???
« Последна редакция: Aug 09, 2010, 14:20 от Breakfist »
Активен

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Ми ако тия user1, user2, etc са в групата на www-data няма ли да стане?
Активен

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше

Breakfist

  • Напреднали
  • *****
  • Публикации: 84
    • Профил
Ми ако тия user1, user2, etc са в групата на www-data няма ли да стане?
Не, пак ще имат права в/у чиждите файлове. Пробвах различни варианти и просто стигнах до заключението, че трябва да са различни и потребителя и групата за всеки домейн :)

От това което съм виждал от web хостинг провайдърите, те го правят по същия начин. ВЪЗМОЖНО Е. Въпроса е как? :)
Активен

Naka

  • Напреднали
  • *****
  • Публикации: 3395
    • Профил
Цитат
Въпроса е, че например ако отворя domain1.com/shell.php ще мога да ровя из файловете и на domain2, domain3, etc.
Търса начин apache да работи с отделен юзър за всеки домейн.

ами да ти какво очакваш нали domain1.net domain1.com domain1.org са публични. Т.е файловете им са достъпни за четене не само от избраните юзери а от цялото земно кълбо.  (Е ако извествен URL-a) То това е и принципът на интернет.

Не мога да разбера какво се опитваш да направиш.
Активен

Perl - the only language that looks the same before and after encryption.

bop_bop_mara

  • Напреднали
  • *****
  • Публикации: 2433
  • Distribution: Debian Testing
  • Window Manager: LXDE
  • Cute and cuddly
    • Профил
Не мога да разбера какво се опитваш да направиш.

Нещо като хостинг компания? Единият клиент (потребител на сървъра) не трябва да знае какви други клиенти има и какви сайтове те си хостват?
Активен

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
Цитат
Въпроса е, че например ако отворя domain1.com/shell.php ще мога да ровя из файловете и на domain2, domain3, etc.
Търса начин apache да работи с отделен юзър за всеки домейн.

ами да ти какво очакваш нали domain1.net domain1.com domain1.org са публични. Т.е файловете им са достъпни за четене не само от избраните юзери а от цялото земно кълбо.  (Е ако извествен URL-a) То това е и принципът на интернет.

Не мога да разбера какво се опитваш да направиш.
Това не е точно така, защото ако имаш php файлове то интернет вижда резултата от изпълнението им, а не само те файлове. А това, последното се случва в горния случай
Активен

0x2B|~0x2B

Breakfist

  • Напреднали
  • *****
  • Публикации: 84
    • Профил
Не мога да разбера какво се опитваш да направиш.

Нещо като хостинг компания? Единият клиент (потребител на сървъра) не трябва да знае какви други клиенти има и какви сайтове те си хостват?
Именно. До сега съм си хоствал само лични сайтчета и винаги за сигурността им съм отговарял аз, за това не ми е трябвало. В момента обаче искам да хостна на още 2 приятелчетата сайтовете - не ме притеснява, че ще ми качат шелче или нещо такова, притеснява ме, че някой ако им хакне сайтовете изгарят и моите неща на машината.

Идеята ми е.. Хакнат ли user1, да си изгори неговия сайт щом е глупав и не може да си напише хубаво кода, обаче не заради него да изгориме и всички останали, които ползваме същия сървър.
Активен

Naka

  • Напреднали
  • *****
  • Публикации: 3395
    • Профил
Ако се добави user apache към групата на всеки потребител, и хоме дирекориите са с пермишъни rwxr-x--- то никой юзер няма да може да пише във файловете на другият.

Единственото изключение е ако някой юзер си публикува адресса публично към собсвеният файл, (или пък другият юзер разбере по някъкв начин адреса на файла) тогава този файл може да се чете от всички.

Но..... Къкво би станало ако юзер1 си сложи файл с пермишъни rwxrwx--- в хоме директорията (т.е. може да се пише в групата и от apache) и адреса на този  файл (rwxrwx---) го научи някой друг, то може ли другият юзер да презапише този файл с някоя от функциите за работа с физически файлове в php?

За достъп до файловете пускаш по едно ftp към хоме директорията на всеки потребител. С тези пермишъни през ftp никой юзер няма да има достъп до файловете на другият.
« Последна редакция: Aug 09, 2010, 15:29 от Naka »
Активен

Perl - the only language that looks the same before and after encryption.

Breakfist

  • Напреднали
  • *****
  • Публикации: 84
    • Профил
Ако се добави user apache към групата на всеки потребител, и хоме дирекориите са с пермишъни rwxr-x--- то никой юзер няма да може да пише във файловете на другият.

Единственото изключение е ако някой юзер си публикува адресса публично към собсвеният файл, (или пък другият юзер разбере по някъкв начин адреса на файла) тогава този файл може да се чете от всички.

Но..... Къкво би станало ако юзер1 си сложи файл с пермишъни rwxrwx--- в хоме директорията (т.е. може да се пише в групата и от apache) и адреса на този  файл (rwxrwx---) го научи някой друг, то може ли другият юзер да презапише този файл с някоя от функциите за работа с физически файлове в php?

За достъп до файловете пускаш по едно ftp към хоме директорията на всеки потребител. С тези пермишъни през ftp никой юзер няма да има достъп до файловете на другият.

Мерси за идеята, но аз съм написал точно какво искам да постигна. Всички останали начини ми се виждат не чак толкова надеждни, а в security аспект съм малко параноичен ;)
Активен

p3tzata_

  • Напреднали
  • *****
  • Публикации: 210
  • Distribution: Fedora
  • Window Manager: KDE
    • Профил
Активен

Никое ДОБРО не води до ДОБРО и никое ЗЛО не води до ЗЛО.

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Apache doc
Преводи на документация
kennedy 3 5861 Последна публикация Apr 26, 2002, 18:43
от kennedy
Apache
Настройка на програми
mozly 3 4337 Последна публикация Nov 23, 2002, 15:19
от mozly
Help za Apache???
Настройка на програми
spooky 2 2672 Последна публикация Aug 06, 2003, 14:57
от spooky
Apache
Настройка на програми
HipH0p 1 2249 Последна публикация Dec 20, 2003, 13:51
от n_antonov
Ограничаване на връзките към Apache
Настройка на програми
nothing 3 3038 Последна публикация Jan 16, 2004, 14:06
от nothing