vsftpd: Konfiguracja ograniczonego upload’u

Moim celem było stworzyć na anonimowym FTP katalogu, który będzie dostępny dla anonimowych użytkowników tylko do odczytu, ale jednocześnie dać możliwość jakiemuś lokalnemu użytkownikowi prawa do zapisu do tego katalogu.

Poniżej konfiguracja dla serwera VSFTPD.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# Włączenie anonimowego ftp.
anonymous_enable=YES
#
# Zezwolenie lokalnym użytkownikom na logowanie.
local_enable=YES
#
# Można używać komendy WRITE.
write_enable=YES
#
# Upload'owane pliki będą tworzone są z prawami 755 (rwxr-xr-x).
local_umask=022
anon_umask=022
#
# Anonimowi NIE mogą uploadować plików
# anon_upload_enable=YES
#
# Logujemy upload'y / download'y
xferlog_enable=YES
#
# Żeby mieć pewność, że połączenia będą na porcie 20 (ftp-data).
connect_from_port_20=YES
#
# Chroot'ujemy lokalnych (nie anonimowych) userów do ich katalogów domowych
chroot_local_user=YES
#
# przechodzi przez hosts.allow / hosts.deny
tcp_wrappers=YES
#
# ukrywamy prawdziwego właściciela i grupe dla listowanych plików
hide_ids=YES
 
# Teraz wszystkie logowania nie-anonimowe (lokalne konta) są mapowane na 
# jedno konto gościa, czyli zgodnie z powyższym tam będą chroot'owani lokalni 
# użytkownicy. Lokalni userzy wyladuja w katalogu domowym ftp (dla 
# guest_username=apache np. byłby to /var/www/)
guest_enable=YES
guest_username=ftp
 
# Aby przy wyłączonej opcji anon_upload_enable, zezwolić na upload do katalogu 
# z prawami do zapisu dla lokalnego użytkownika, który się loguje na ftp, 
# użytkownik działa ze swoimi oryginalnymi prawami dostępu.
virtual_use_local_privs=YES

Wersja skrócona:

1
2
3
4
5
6
7
8
9
10
11
12
anonymous_enable=YES
# anon_upload_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
anon_umask=022
connect_from_port_20=YES
chroot_local_user=YES
hide_ids=YES
guest_enable=YES
guest_username=ftp
virtual_use_local_privs=YES

Leave a Reply

Your email address will not be published. Required fields are marked *