Zależy mi na stworzeniu działającego FTP tak aby każdy użytkownik miał dostęp do innego katalogu z pełnymi prawami.
Kierowałem się głównie opisami:
http://sylwekb.wordpress.com/2009/10/14 ... my-serwer/
http://www.ulos.pl/proftpd-serwer-ftp-n ... cy-,2.html
i stworzyłem coś takiego:
Kod: Zaznacz cały
# Dołączamy konfigi ewentualnie aktywowanych modułów.
Include /etc/proftpd/modules.conf
# Tryb pracy serwera, uruchamiamy jako samodzielny proces.
ServerType standalone
# Określamy konfigurację jako domyślną
DefaultServer on
# Jesli nie używamy IPv6.
UseIPv6 off
# Te 3 opcje znacznie skracają czas logowania.
UseReverseDNS off
IdentLookups off
ServerIdent off
# Określamy nazwę naszego serwera, nie podajemy jego nazwy ani wersji.
ServerName "DroidService"
# Komunikat powitalny.
DisplayLogin welcome.msg
# Zezwalamy na komunikat powitalny dopiero po zalogowaniu.
DeferWelcome on
MultilineRFC2228 on
# Zezwalamy na wyświetlanie dowiązań.
ShowSymlinks on
# Czas w jakim zostanie przerwane połączenie z serwerem.
TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200
DisplayChdir .message true
DenyFilter \*.*/
# Blokoda logowania użytkownikowi root.
RootLogin off
# Uwięzienie użykowanika w wyznaczonym katalogu, z którego nie będzie mógł się wydostać.
# znak ~ katalog domowy w systmie Linux.
DefaultRoot ~
# Opcje do listowania plików w trybie binarnym:
# "-a"="ls -a" , "+a"=blokada parametru a czyli plików ukrytych(z kropką).
ListOptions "+a"
# Sprawdzamy czy dany użytkownik, który się loguje
# posiada przypisaną w /etc/shells powłokę (szybka metoda do zablokowania).
RequireValidShell on
# Port na którym nasłchuje proftpd.
Port 21
# Konfiguracja portów trybu pasywnego używanego przez przeglądarki (ftp://host.pl).
# PassivePorts 49152 65534
# Użyteczna opcja jeśli nasz komputer stoi za NAT-em.
# MasqueradeAddress 1.2.3.4
# This is useful for masquerading address with dynamic IPs:
# refresh any configured MasqueradeAddress directives every 8 hours
# DynMasqRefresh 28800
# Maksymalna liczba procesów demona FTP.
# Dzięki tej dyrektywie możemy ustrzec się przed atakami typu DoS.
MaxInstances 30
# Użytkownik i grupa do których błędzie należał proces serwera.
User droid
Group ftp
# Ustawienie prawa dostępu wlasciciela do modyfikacji pliku i katalogów.
# 022 => 755 , 077 => 700 , 002 => 775
Umask 022 022
# Pozwolenie na nadpisywanie plików.
AllowOverwrite on
# Konfiguracja logów.
TransferLog /var/log/proftpd/xferlog
SystemLog /var/log/proftpd/proftpd.log
Grzegorz miał pełny dostęp do katalogu /var/www/grzegorz.
Oczywiście, użytkownicy mogą tylko operować w przypisanych katalogach (nie mogą logować się do powłoki), to chyba tyle moich skromnych wymagań. Będę niezmiernie wdzięczny za fachową pomoc.
Ps. Przy obecnej konfiguracji wyskakuje mi błąd podczas startu ftp:
Kod: Zaznacz cały
Starting ftp server: proftpd - warning: handling possibly truncated configuration data at line 87 of '/etc/proftpd/proftpd.conf'
Dodane:
Dla wszystkich co mogą mieć taki problem jak ja.
Jedyne rozwiązania jakie działa, tak jak ma działać.
Kod: Zaznacz cały
ServerName "DroidService"
ServerType standalone
DefaultServer on
RequireValidShell off
Port 21
UseIPv6 off
Umask 022
MaxInstances 10
User droid grzegorz
Group ftp
DefaultRoot ~
AllowOverwrite on
1.
Kod: Zaznacz cały
# echo "droid:*:1000:65534:droid:/var/www/droid:/bin/false" >> /etc/passwd
# echo "droid:*:0:0:99999:7:::" >> /etc/shadow
# passwd droid
Kod: Zaznacz cały
# echo "grzegorz:*:1001:65534:grzegorz:/var/www/grzegorz:/bin/false" >> /etc/passwd
# echo "grzegorz:*:0:0:99999:7:::" >> /etc/shadow
# passwd grzegorz
Jeżeli użytkowników mieliśmy już wcześniej, to identyfikatory 1000 i 1001 wpisujemy takie jak systemowych użytkowników.
Katalogi ustawiamy według uznania.
To tyle, wszystko działa aż miło.