Řešení 1:
Kompletní odpověď, která vyřešila mou otázku pro všechny ostatní, které jsou po podrobném návodu...
Nainstalujte vsftpd
použijte to jako vodítko.
- Vytvořit uživatele s
useradd [user_name]
. - Vytvořte uživatelské heslo pomocí
passwd [user_name]
. (Budete vyzváni k zadání hesla). - Vytvořte adresář FTP v
/var/ftp
a poté se svázat s 'home' adresářem, který chcete pro tohoto uživatele zadat pomocímount --bind /var/www/vhosts/domain.com/ /var/ftp/custom_name/
. -
Změňte domovský adresář uživatele pomocí
usermod -d /var/ftp/custom_name/ user_name
V
/etc/vsftpd/vsftpd.conf
, ujistěte se, že jsou nastaveny všechny následující položky:-- chroot_local_user=ANO
- chroot_list_enable=ANO
- chroot_list_file=/etc/vsftpd.chroot_list
Uveďte uživatele pouze v vsftpd.chroot_list
pokud chcete, aby měli úplný přístup kamkoli na serveru. Tím, že je neuvedete v tomto souboru, říkáte omezit všechny vsftpd
uživatele do jejich zadaného domovského adresáře.
Jinými slovy (pro referenci):-
- znamená, že ve výchozím nastavení jsou všichni uživatelé chrootováni kromě uživatelů v souboru...
- chroot_local_user=ANO
- chroot_list_enable=ANO
- znamená, že ve výchozím nastavení dostanou chroot POUZE uživatelé v souboru...
- chroot_local_user=NE
- chroot_list_enable=ANO
Řešení 2:
U mě to nefungovalo ani po výše uvedeném. Lokální_kořenový adresář již byl nastaven na adresář a ať udělám cokoli, adresář uživatele nebyl uvězněn. Nakonec to funguje po pouhé změně
chroot_local_user=ANO
A následující postup
- vi /etc/vsftpd.conf
- Přidejte řádek 'user_config_dir=/etc/vsftpd_user_conf' (bez uvozovek)
- mkdir /etc/vsftpd_user_conf;
- cd /etc/vsftpd_user_conf
- vi uživatelské_jméno;
- Zadejte řádek 'local_root=/srv/ftp/user_name'
Jen moje dva centy, kdyby měl někdo jiný stejný problém.