Ubuntu vsftpd权限设置主要涉及用户权限、目录权限及安全配置,以下是关键要点:
系统用户创建
sudo useradd -m -s /sbin/nologin ftpuser # 禁止登录系统
sudo passwd ftpuser # 设置密码
配置文件权限控制
/etc/vsftpd.conf
:
local_enable=YES
:允许本地用户登录。write_enable=YES
:允许上传/删除文件。chroot_local_user=YES
:限制用户仅能访问其主目录。allow_writeable_chroot=YES
:允许chroot目录可写(避免权限冲突)。userlist_enable=YES
+ userlist_file=/etc/vsftpd.user_list
:通过白名单控制可登录用户。sudo mkdir -p /home/ftpuser/ftp
sudo chown ftpuser:ftpuser /home/ftpuser/ftp # 所有权归用户
sudo chmod 755 /home/ftpuser/ftp # 主目录可读可执行(不可写,避免越权)
sudo mkdir /home/ftpuser/ftp/upload
sudo chown ftpuser:ftpuser /home/ftpuser/ftp/upload
sudo chmod 775 /home/ftpuser/ftp/upload # 允许用户读写执行
被动模式端口范围
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
防火墙规则
sudo ufw allow 21/tcp
sudo ufw allow 30000:31000/tcp
sudo ufw reload
加密传输(可选)
ssl_enable=YES
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
sudo systemctl restart vsftpd
关键安全原则:
anonymous_enable=NO
)。chroot_local_user=YES
),避免越权访问系统文件。755
),防止误操作破坏系统。