Odpowiedzi:
Upewnij się, że istnieje następujący wiersz
chroot_local_user=YES
Ustaw katalog HOME użytkownika na /var/www/
, jeśli chcesz zmienić istniejącego użytkownika, możesz użyć:
usermod --home /var/www/ username
następnie ustaw wymagane uprawnienia na /var/www/
user_sub_token
Jeśli nie chcesz zmieniać katalogu domowego użytkownika, możesz użyć:
chroot_local_user=YES
local_root=/ftphome/$USER
user_sub_token=$USER
user_sub_token
:Automatycznie generuj katalog domowy dla każdego wirtualnego użytkownika na podstawie szablonu. Na przykład, jeśli katalog osobisty rzeczywistego użytkownika podany przez guest_username to / ftphome / $ USER, a user_sub_token jest ustawiony na $ USER, to kiedy zaloguje się test użytkownika wirtualnego, skończy (zwykle chroot () 'ed) w katalog / ftphome / test. Ta opcja ma również wpływ, jeśli lokalny katalog_główny zawiera identyfikator_użytkownika.
Utwórz katalog i skonfiguruj uprawnienia:
mkdir -p /ftphome/{test,user1,user2}
chmod 770 -R /ftphome
chown -R ftp. /ftphome
usermod -G ftp test
Po ponownym uruchomieniu vsftpd
i przetestuj konfigurację.
Przykładowy wynik sukcesu:
[root@mail tmp]# ftp localhost
Connected to mail.linuxian.local.
220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (localhost:root): test
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> mput vhosts
mput vhosts?
227 Entering Passive Mode (127,0,0,1,146,41)
150 Ok to send data.
226 File receive OK.
24 bytes sent in 3.3e-05 seconds (7.1e+02 Kbytes/s)
ftp> ls -rlt
227 Entering Passive Mode (127,0,0,1,97,90)
150 Here comes the directory listing.
-rw-r--r-- 1 787 787 24 Oct 11 19:57 vhosts
226 Directory send OK.
ftp> 221 Goodbye.
$USER
za local_root
, takie jak /home/$USER/ftp
(co chroot użytkowników do ftp
podkatalogu swojego domu dir).
local_root
do rzeczywistego katalogu domowego użytkownika.
Możesz to zrobić:
usermod --home /var/www/ username
Użyłem powyższej sugestii Rahula Patila:
chroot_local_user=YES
local_root=/home/$USER/www-data
user_sub_token=$USER
Ale nie mogłem zrozumieć, dlaczego mogłem zalogować się tylko z jednym użytkownikiem. Potem odkryłem, że nie możemy chrootować do katalogu głównego (w tym przypadku /home/$USER/www-data
), który ma dostęp do zapisu. Więc usuwam dostęp do zapisu za pomocą:
# chmod a-w /home/$USER/www-data
UWAGA: zmień $USER
z użytkownikiem.
Sprawdź chroot
opcje vsftpd.conf
i utwórz dla niego osobnego użytkownika, dla którego katalog domowy jest ustawiony na /var/www
.
chroot
opcjevsftpd.conf
i utwórz dla niego osobnego użytkownika, dla którego katalog domowy jest ustawiony na/var/www
.