在 Ubuntu 上搭建 FTP 服务器(常用 vsftpd),权限设置一般包括:系统用户权限、目录权限、vsftpd 配置权限、以及 FTP 访问限制。下面按常见场景说明。
sudo apt update
sudo apt install vsftpd
sudo adduser ftpuser
设置密码,家目录默认在 /home/ftpuser
sudo usermod -s /usr/sbin/nologin ftpuser
假设 FTP 根目录是 /home/ftpuser/ftp
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 chmod 775 /home/ftpuser/ftp/upload
Linux 权限规则:
r = 4w = 2x = 1755:所有者可读写执行,其他人只读775:组可写编辑配置:
sudo nano /etc/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
⚠️ 如果不加
allow_writeable_chroot=YES,用户目录可写会报错
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd.userlist
在 /etc/vsftpd.userlist 中写用户名(每行一个)
适合:
步骤简要:
db_load 创建用户数据库guest_enable=YES如果你需要,我可以单独写一份 虚拟用户完整教程。
sudo ufw allow 21/tcp
sudo systemctl restart vsftpd
sudo systemctl enable vsftpd
write_enable=YES775chroot 不允许allow_writeable_chroot=YESpasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
并开放端口:
sudo ufw allow 30000:31000/tcp
sudo chmod 755 /home/ftpuser/ftp
配置中:
write_enable=NO
如果你能说明:
我可以直接给你一份可用配置文件。