在Debian下配置vsftpd时,用户权限是一个重要的安全设置。以下是一些关键的用户权限设置和步骤:
首先,确保你已经安装了vsftpd:
sudo apt update
sudo apt install vsftpd
编辑vsftpd的配置文件 /etc/vsftpd.conf:
sudo nano /etc/vsftpd.conf
local_enable=YES:允许本地用户登录。write_enable=YES:允许FTP写入权限。chroot_local_user=YES:将本地用户限制在其主目录中。allow_writeable_chroot=YES:允许chroot目录可写(如果需要)。userlist_enable=YES:启用用户列表。userlist_file=/etc/vsftpd.userlist:指定用户列表文件。userlist_deny=NO:允许用户列表中的用户登录。sudo chown username:username /home/username
sudo chmod 755 /home/username
如果你使用虚拟用户,需要配置PAM(Pluggable Authentication Modules):
安装必要的包:
sudo apt install libpam-pwdfile
创建虚拟用户数据库文件:
sudo touch /etc/vsftpd/virtual_users.txt
sudo chmod 600 /etc/vsftpd/virtual_users.txt
编辑 /etc/pam.d/vsftpd 文件,添加以下行:
auth required pam_pwdfile.so pwdfile /etc/vsftpd/virtual_users.txt
account required pam_pwdb.so
创建虚拟用户数据库:
sudo db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
编辑 /etc/vsftpd.conf 文件,添加以下行:
guest_enable=YES
guest_username=ftpuser
virtual_use_local_privs=YES
user_sub_token=$USER
local_root=/home/$USER
chroot_local_user=YES
allow_writeable_chroot=YES
重启vsftpd服务:
sudo systemctl restart vsftpd
如果你启用了用户列表,确保 /etc/vsftpd.userlist 文件中列出了允许登录的用户,并且 /etc/vsftpd.userlist_deny 设置为 NO。
确保防火墙允许FTP流量:
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
如果你使用SELinux,确保它不会阻止vsftpd的正常运行:
sudo setsebool -P ftp_home_dir on
sudo setsebool -P allow_ftpd_full_access on
通过以上步骤,你可以配置Debian下的vsftpd用户权限,确保安全性和功能性。