FTP服务搭建

安装

sudo apt install vsftpd

配置用户

添加用户组

sudo groupadd ftpgroup

配置 FTP 访问用户 uos

sudo useradd -g ftpgroup -M -s /bin/bash uos

配置 FTP 访问密码

sudo passwd uos

之后输入 2 次密码即可;

修改配置项

sudo vim /etc/vsftpd.conf

配置以下内容:

# 文件编码
utf8_filesystem=YES

# 开启匿名访问
anonymous_enable=YES
# 匿名用户无密码
no_anon_password=YES
# 匿名上传
anon_upload_enable=YES
# 匿名可写文件夹
anon_mkdir_write_enable=YES
# 其他用户匿名可写
anon_other_write_enable=YES
# 限定匿名用户目录,路径可以自定义
anon_root=/home/$USER/ftp
# 匿名用户创建文件时所得到的初始权限
# 022 新建的目录权限为755,新建的文件权限为644
anon_umask=022

# 可写
write_enable=YES


# 本地用户
chroot_local_user=YES

# 用户列表
chroot_list_enable=YES

# 用户列表文件
chroot_list_file=/etc/vsftpd.chroot_list

# 权限用户目录,路径可以自定义
local_root=/ftp/ftp

配置用户列表文件:

sudo vim /etc/vsftpd.chroot_list

写入

uos

创建FTP目录

sudo mkdir -p /ftp/ftp # 权限访问目录
sudo mkdir -p /home/$USER/ftp # 匿名访问目录

修改目录权限

sudo chmod -R 777 /ftp/ftp
sudo chmod -R 777 /home/$USER/ftp

重启服务

sudo systemctl restart vsftpd.service
sudo systemctl status vsftpd.service

一键部署脚本

sudo apt update
sudo apt install vsftpd
# ========== 匿名 =====================
sudo sed -ri '/anonymous_enable/d' /etc/vsftpd.conf
sudo sed -ri '/no_anon_password/d' /etc/vsftpd.conf
sudo sed -ri '/write_enable/d' /etc/vsftpd.conf
sudo sed -ri '/anon_upload_enable/d' /etc/vsftpd.conf
sudo sed -ri '/anon_mkdir_write_enable/d' /etc/vsftpd.conf
sudo sed -ri '/anon_umask/d' /etc/vsftpd.conf
sudo sed -ri '/anon_root/d' /etc/vsftpd.conf
sudo sed -ri "/listen_ipv6/aanonymous_enable=YES\nno_anon_password=YES\nanon_root=/srv/ftp/\nwrite_enable=YES\nanon_upload_enable=YES\nanon_mkdir_write_enable=YES\nanon_other_write_enable=YES\nanon_umask=022" /etc/vsftpd.conf
sudo sed -ri '/utf8_filesystem/cutf8_filesystem=YES' /etc/vsftpd.conf
# 创建uploads目录,增加写权限
sudo mkdir -p /srv/ftp/uploads
sudo chown ftp:ftp /srv/ftp/uploads
sudo chmod a+rwx /srv/ftp/uploads
sudo systemctl restart vsftpd.service

# ========================= sftp ==========================
sudo groupadd ftpgroup 
sudo useradd -g ftpgroup -M -s /bin/bash uos    # <-- ftp用户名
sudo passwd uos # 输入ftp用户密码
sudo mkdir -p /ftp/ftp/uploads
sudo usermod -d /ftp/ftp uos
sudo chown root:ftpgroup /ftp/ftp
sudo chmod -R 755 /ftp/ftp
sudo chown uos:ftpgroup /ftp/ftp/uploads
sudo systemctl restart vsftpd.service