Apache 2.0 i pliki użytkownika w katalogu public_html
Apache 2.0 i pliki uŻytkownika w katalogu public_html
Problem polega na tym, jak użytkownik wrzuca pliki sobie do public_html przez FTP to apache 2.0 nie pokazuje ich ze względu na prawa do katalogów i plików. Jak sobie z tym poradzić?
winnetou, ustawiłem tak jak radziłeś, ale niestety nie pomaga.
Po wgraniu plików przez ftp wygląda to tak, i nie widać już katalogów strona1 i strona2 pokazuje tylko pusty public_html.
Po wgraniu plików przez ftp wygląda to tak, i nie widać już katalogów strona1 i strona2 pokazuje tylko pusty public_html.
Kod: Zaznacz cały
diabelski:~# cd /home/strona/
diabelski:/home/strona# ls -al
razem 32
drwxr-xr-x 4 strona strona 4096 wrz 1 19:59 .
drwxr-xr-x 4 root root 4096 wrz 1 17:59 ..
-rw------- 1 strona strona 30 wrz 1 19:46 .bash_history
-rw-r--r-- 1 strona strona 220 wrz 1 17:58 .bash_logout
-rw-r--r-- 1 strona strona 3127 wrz 2 07:34 .bashrc
drwxr-xr-x 2 strona strona 4096 wrz 1 19:17 .mc
-rw-r--r-- 1 strona strona 675 wrz 1 17:58 .profile
drwxrwxrwx 4 strona strona 4096 wrz 2 07:35 public_html
diabelski:/home/strona# cd public_html/
diabelski:/home/strona/public_html# ls -al
razem 16
drwxrwxrwx 4 strona strona 4096 wrz 2 07:35 .
drwxr-xr-x 4 strona strona 4096 wrz 1 19:59 ..
drwxr-x--- 2 strona strona 4096 wrz 2 07:35 strona1
drwxr-x--- 2 strona strona 4096 wrz 2 07:35 strona2
diabelski:/home/strona/public_html#
Problem z prawami dostępu na serwerze Apache2
Mam podobny problem jak rozwiązać w "elegancki" sposób problem z prawami dostępu na serwerze www. Chodzi o to jak to się robi na "prawdziwych" serwerach w firmach sprzedających usługi hostingowe.
Do rzeczy: Mam postawiony serwer Apache2 na Debianie 5.0. Domyślny katalog dla tego serwera to: /var/www i tak to zostawiłem. Oczywiście użytkownicy muszą jakoś wrzucać na serwer swoje stronki mniej lub bardziej rozbudowane. Uruchomiłem, więc serwer ProFtpd. Skonfigurowałem go tak aby pracował z wirtualnymi a nie systemowymi użytkownikami. Opis jak to zrobić znalazłem tutaj: http://www.debianhelp.co.uk/pureftp.htm
Serwer apache2 pracuje na prawach użytkownika www-data, a serwer FTP (w moim przypadku na prawach użytkownika ftpuser. Na początku okazało się więc, że użytkownicy nie mogą zapisywać za pomocą ftpa do katalogu /var/www. Zmieniłem więc właściciela i grupę dla /var/www poleceniem:Takie rozwiązanie działa dopóki są to prościutkie strony w html. Kiedy uzupełniłem serwer o obsługę Php i MySQL i spróbowałem zainstalować Joomlę zaczęły się schody. Instalator Joomli uruchamiany przez apache2 nie miał praw zapisu do katalogów wrzuconych przez ftp bo te należały do ftpuser a apache2 pracuje z uprawnieniami www-data. Po zmianie właściciela na www-data dla katalogu instalacyjnego Joomli instalator poradził sobie bez problemu. Niestety ta zmiana praw dostępu odbyła się przez konsolę a chodzi mi o to żeby użytkownicy bez ingerencji admina sami mogli instalować sobie systemy CMS na serwerze. Zmieniłem znów właściciela katalogu /var/www/ na www-data i dodałem użytkownika www-data do grupy ftpgroup nadałem też pełne uprawnienia użytkownikom grupowym do katalogu /var/www: To nie pomogło gdyż jeżeli wrzucam coś ftpem to utworzony katalog jest nadal własnością użytkownika ftpuser i serwer apache2 na prawach www-data nie ma tam praw do zapisu. Jak to zrobić żeby dało się wrzucać coś przez ftp i jednocześnie w utworzonych ftpem katalogach apache2 mógł zapisywać i modyfikować pliki. Oczywiście użytkownik ftpuser to użytkownik "bez shellowy". Jak to zrobić tak żeby nie narażać bezpieczeństwa systemu. Czyli jak to się robi w firmach sprzedających hosting? Oto jest pytanie?
Do rzeczy: Mam postawiony serwer Apache2 na Debianie 5.0. Domyślny katalog dla tego serwera to: /var/www i tak to zostawiłem. Oczywiście użytkownicy muszą jakoś wrzucać na serwer swoje stronki mniej lub bardziej rozbudowane. Uruchomiłem, więc serwer ProFtpd. Skonfigurowałem go tak aby pracował z wirtualnymi a nie systemowymi użytkownikami. Opis jak to zrobić znalazłem tutaj: http://www.debianhelp.co.uk/pureftp.htm
Serwer apache2 pracuje na prawach użytkownika www-data, a serwer FTP (w moim przypadku na prawach użytkownika ftpuser. Na początku okazało się więc, że użytkownicy nie mogą zapisywać za pomocą ftpa do katalogu /var/www. Zmieniłem więc właściciela i grupę dla /var/www poleceniem:
Kod: Zaznacz cały
chown -R ftpuser:ftpgroup /var/www/
Kod: Zaznacz cały
# chmod -R 771 /var/www