在 Linux 下使用 vsftpd(Very Secure FTP Daemon) 设置权限,通常涉及系统用户权限、vsftpd 配置、目录权限三部分。下面按常见场景说明。
vsftpd 主配置文件一般在:
/etc/vsftpd/vsftpd.conf
(部分系统为 /etc/vsftpd.conf)
anonymous_enable=NO
local_enable=YES
write_enable=YES # 允许上传/删除
chroot_local_user=YES
allow_writeable_chroot=YES
不加
allow_writeable_chroot可能导致无法登录
只要系统用户能登录,FTP 权限由目录权限决定。
示例:
chmod 755 /home/user
chown user:user /home/user
使用用户列表:
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd/user_list
在 /etc/vsftpd/user_list 中写用户名:
test1
test2
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
useradd -d /home/ftp -s /sbin/nologin vuser
pam_service_name=vsftpd.virtual
guest_enable=YES
guest_username=vuser
user_config_dir=/etc/vsftpd/vuser_conf
示例:
/etc/vsftpd/vuser_conf/user1
local_root=/data/ftp/user1
write_enable=YES
anon_upload_enable=YES
FTP 权限 = vsftpd 配置 + Linux 目录权限
chown -R vuser:vuser /data/ftp/user1
chmod 755 /data/ftp/user1
若用户需上传:
chmod 775 /data/ftp/user1/upload
setsebool -P ftp_home_dir on
setsebool -P allow_ftpd_full_access on
查看:
getsebool -a | grep ftp
systemctl restart vsftpd
systemctl status vsftpd
tail -f /var/log/vsftpd.log
如果你能说明:
我可以给你一份可直接用的配置。