Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2010-03-15 10:23:43

  dalip1 - Użytkownik

dalip1
Użytkownik
Zarejestrowany: 2010-03-07

Apache - separacja katalogów uzytkowników

Witam! Mam stworzony katalog /home/www, w którym trzymam wszystkie katalogi ze stronami użytkowników(/home/www/login_użytkownika). Mam skonfigurowany serwer Proftpd (każdy użytkownik ftp ma swój katalog w /home/www/login_użytkownika i tam wrzuca swoje stronki). Wszystkich użytkowników przechowuje w Mysqlu. W Apache mam stworzonego jednego virtualhosta, który obsługuje wszystkich użytkowników. Czy jest możliwa konfiguracja apache w ten sposób, aby każdy użytkownik miał prawa do przeglądania swojego katalogu i nie mógł przeglądać katalogów innych użytkowników. Każdy skrypt powinien wykonywać się z prawami danego użytkownika. Proszę o odpowiedz.

Offline

 

#2  2010-03-15 10:53:36

  winnetou - złodziej wirków ]:->

winnetou
złodziej wirków ]:->
Skąd: Jasło/Rzeszów kiedyś Gdańs
Zarejestrowany: 2008-03-31
Serwis

Re: Apache - separacja katalogów uzytkowników

Jest możliwe. IMHO najlepiej aby pliki stron były w /home/user/katalog_na_www (czyli np standardowo /home/user/public_html) Do tego dla każdego użytkownika robisz vhosta. Ale wcześniej instalujesz apache2-mpm-prefork tudzież kompilujesz go samemu i instalujesz suPHP (dla skryptów PHP) i w konfiguracji vhosta dodajesz

Kod:

suPHPUser uzytkownik
suPHPGroup grupa

lub instalujesz modul suExec (dla skryptów cgi). Tym sposobem masz użytkownika zamkniętego w obrębie jego "hołma" a skrypty PHP wykonują się z jego uprawnieniami. Dobra rzecz to ustawić w php.ini execdir (czy coś w ten deseń) i poblokować większość poleceń a do execdir dodać symlinki do tych które będzie można wykonać z poziomu php.

Z tego co przetestowałem to standardowo Debianowy apache (o AFAIR apache2-mpm-worker) nie łapie suPHP ani suExec dlatego trzeba go albo przekompilować albo zainstalować mpm-prefork.

Jak nie chce Ci się robić dla każdego użyszkodnika vhosta poczytaj o mechanizmie massvhost w apache.


LRU: #472938
[b]napisz do mnie:[/b] ola@mojmail.eu
[url=http://valhalla.org.pl]Hołmpejdż[/url] | [url=http://valhalla.org.pl/foto]Galerie[/url] | [url=http://valhalla.org.pl/tech]"Twórczość"[/url] || [url=http://img.munn.in]Free Image Hosting[/url]

Offline

 

#3  2010-03-15 12:43:13

  dalip1 - Użytkownik

dalip1
Użytkownik
Zarejestrowany: 2010-03-07

Re: Apache - separacja katalogów uzytkowników

Nie wiem czy to jest dobre rozwiązanie. Jeśli by ktoś mógł proszę, aby napisał bardzo ogólnie jak takie coś skonfigurować. Mam skonfigurowany proftpd tak, że każdy użytkownik ma w katalogu /home/www swój katalog i tam przez ftp wrzuca swoje stronki. Użytkownicy proftpd są odseparowani i przechowywani w bazie mysql. Mam jeden zewnętrzny adres ip i w apache mam jednego virtual hosta dla tego ip. Główny katalog virtual hosta to /home/www (ten sam co proftpd), w którym przechowywane są stronki wszystkich użytkowników. Użytkownik wyświetla swoją stronkę tak: http://adres_ip/nazwa_użytkownika1, http://adres_ip/nazwa_użytkownika2. Czy da się ich jakoś odseparować, aby jeden user nie mógł przeglądać katalogów innego usera?

Offline

 

#4  2010-03-15 19:00:13

  dalip1 - Użytkownik

dalip1
Użytkownik
Zarejestrowany: 2010-03-07

Re: Apache - separacja katalogów uzytkowników

Może za bardzo zamotałem.
Mój FTP (dokładniej proFTPd) jest połączony z MySQL i konta FTP są tworzone tylko dla userów z bazy (automatycznie za pomocą skryptów). Każdy user z bazy ma swój katalog /home/www/users i chciałem właśnie dla tych userów dać możłiwość nie tylko posiadania kont FTP ale także, aby mogli sobie robić swoje strony WWW. Zależało by mi na tym aby użytkownicy byli dseparowani podobnie jak mam to zrobione w proftp
tzn, aby jeden użytkownik miał dostęp przez www tylko i wyłącznie do swojego katalogu. Próbowałem za pomocą modułu Apache auth_mysql, ale on uwierzytelnia użytkownika tylko na poziomie HTTP.
Czy istnieje jakiś moduł, który podobnie jak proftpd pobiera informację o użytkownikach z Mysql? Prosiłbym o podpowiedz jak sie za to zabrać (ogólnie).

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)

[ Generated in 0.008 seconds, 11 queries executed ]

Informacje debugowania

Time (s) Query
0.00012 SET CHARSET latin2
0.00004 SET NAMES latin2
0.00094 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.145.177.173' WHERE u.id=1
0.00107 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.145.177.173', 1732963539)
0.00047 SELECT * FROM punbb_online WHERE logged<1732963239
0.00050 SELECT topic_id FROM punbb_posts WHERE id=142951
0.00004 SELECT id FROM punbb_posts WHERE topic_id=16356 ORDER BY posted
0.00057 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=16356 AND t.moved_to IS NULL
0.00005 SELECT search_for, replace_with FROM punbb_censoring
0.00166 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=16356 ORDER BY p.id LIMIT 0,25
0.00071 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=16356
Total query time: 0.00617 s