linux搭建ftp服务
本地用户模式
安装vsftpd
sudo apt update && sudo apt install vsftpd
sudo systemctl status vsftpd
配置vsftpd
编辑
/etc/vsftpd.conf
:anonymous_enable=NO local_enable=YES write_enable=YES chroot_local_user=YES allow_writeable_chroot=YES pasv_min_port=30000 pasv_max_port=31000 userlist_enable=YES userlist_file=/etc/vsftpd.user_list userlist_deny=NO listen_port=2121 no_anon_password=YES listen=YES
创建ftp用户
sudo useradd -m -d /home/ftpuser -s /bin/bash ftpuser sudo passwd ftpuser
将用户加入白名单
echo "ftpuser" | sudo tee -a /etc/vsftpd.user_list
设置目录权限
sudo mkdir /home/ftpuser/ftp # 创建FTP根目录 sudo chown ftpuser:ftpuser /home/ftpuser/ftp sudo chmod 755 /home/ftpuser/ftp # 限制权限
开启防火墙端口
sudo ufw allow 2121 sudo ufw allow 30000:31000/tcp sudo ufw reload # 重新加载规则
- 重启vsftp服务
虚拟用户模式
安装vsftpd
sudo apt update && sudo apt install vsftpd
sudo systemctl status vsftpd
创建虚拟用户数据库
生成用户密码文件,最后一行需回车
// file: loguser.txt ftpuser ftppass
生成数据库
sudo apt install db-util sudo db_load -T -t hash -f loguser.txt /etc/vsftpd_login.db sudo chmod 600 /etc/vsftpd_login.db
配置PAM文件
配置
/etc/pam.d/vsftpd.vu
文件添加到头两行。auth sufficient pam_userdb.so db=/etc/vsftpd_login account sufficient pam_userdb.so db=/etc/vsftpd_login
为虚拟用户创建本地系统用户
sudo useradd -m -d /home/vsftpd -s /bin/false vsftpd
sudo chown vsftpd:vsftpd /home/vsftpd
配置vsftpd.conf文件
listen=YES
anonymous_enable=NO
write_enable=YES
chroot_local_user=YES
guest_enable=YES
guest_username=vsftpd
user_config_dir=/etc/vsftpd_user_conf
pam_service_name=vsftpd.vu
local_enable=YES
pasv_min_port=30000
pasv_max_port=31000
listen_port=2121
allow_writeable_chroot=YES
权限配置
根据
user_config_dir=/etc/vsftpd_user_conf
创建相应配置文件sudo mkdir /etc/vsftpd_user_conf cd /etc/vsftpd_user_conf sudo touch ftpuser
修改
/etc/vsftpd_user_conf/ftpuser
文件write_enable=YES anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES local_root=/home/vsftpd/ftpuser