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
| # [required] 安装 pam & htpasswd $ sudo apt install libpam-pwdfile apache2-utils
# [required] 创建目录 $ sudo mkdir /home/ftp $ sudo mkdir /etc/vsftpd
# [required] /etc/vsftpd.conf 修改为如下配置 listen=YES anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 nopriv_user=vsftpd virtual_use_local_privs=YES guest_enable=YES user_sub_token=$USER local_root=/var/www/$USER # root, 登录前确保用户目录已存在 chroot_local_user=YES hide_ids=YES guest_username=vsftpd user_config_dir=/etc/vsftpd_user_conf allow_writeable_chroo=YES
# [required] 创建ftp用户 $ sudo htpasswd -cd /etc/vsftpd/ftpd.passwd user-name # -c: create, 如需额外添加,去除该参数
# [required] /etc/pam.d/vsftpd 替换为如下内容 auth required pam_pwdfile.so pwdfile /etc/vsftpd/ftpd.passwd account required pam_permit.so
# [required] 创建没有shell登录权限的本地用户 vsftpd,用于虚拟用户登录 $ sudo useradd --home /home/vsftpd --gid nogroup -m --shell /bin/false vsftpd # [optional] 验证 $ id vsftpd
# [optional untested] 用户独立配置,配置文件路径为 ${user_config_dir}/${user},以 wii 为例 $ sudo vim /etc/vsftpd_user_conf
# [required] 重启vsftpd $ sudo service vsftpd restart
|