Ubuntu vsftpd权限管理指南
vsftpd(Very Secure FTP Daemon)是Ubuntu系统上常用的FTP服务器软件,其权限管理主要围绕用户访问控制、目录权限设置、写入权限配置等方面展开。以下是详细的权限管理步骤及关键配置说明:
在配置权限前,需先确保vsftpd已安装。若未安装,可通过以下命令完成安装:
sudo apt update
sudo apt install vsftpd
vsftpd的主配置文件为/etc/vsftpd.conf,权限管理的核心选项均在此文件中调整。以下是关键配置项及说明:
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
chroot_local_user,需此选项允许用户在主目录内写入文件。allow_writeable_chroot=YES
通过用户列表文件/etc/vsftpd.user_list可精确控制允许/拒绝访问的用户:
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO
/etc/vsftpd.user_list,每行输入一个用户名(如ftpuser1、ftpuser2)。022表示文件权限为644,目录为755)。local_umask=022
xferlog_enable=YES
使用adduser命令创建系统用户,并设置密码:
sudo adduser ftpuser1
注意:为提高安全性,需禁用用户的shell访问权限(防止通过SSH登录):
sudo usermod -s /sbin/nologin ftpuser1
确保用户主目录的归属和权限正确,避免访问被拒绝:
sudo chown ftpuser1:ftpuser1 /home/ftpuser1 # 将主目录所有者设为用户自身
sudo chmod 755 /home/ftpuser1 # 允许用户读/写/执行,其他用户仅读/执行
若需限制用户对目录内文件的访问权限(如public_html目录),可单独调整:
sudo chown -R ftpuser1:ftpuser1 /home/ftpuser1/public_html # 设为目录所有者
sudo chmod 644 /home/ftpuser1/public_html/* # 文件权限为644(所有者可读写,其他用户只读)
若服务器启用了防火墙(如ufw),需开放FTP相关端口:
sudo ufw allow 21/tcp # FTP默认控制端口
sudo ufw allow 20/tcp # FTP数据传输端口(主动模式)
sudo ufw allow 30000:31000/tcp # 被动模式端口范围(根据实际情况调整)
sudo ufw reload # 重新加载防火墙规则
修改配置文件后,需重启vsftpd服务以应用更改:
sudo systemctl restart vsftpd
write_enable=YES是否开启,主目录权限是否正确(chmod 755)。chroot_local_user=YES和allow_writeable_chroot=YES已设置,且主目录所有者为用户自身。userlist_enable=YES时,用户是否在/etc/vsftpd.user_list中且userlist_deny=NO。通过以上步骤,可实现Ubuntu系统上vsftpd的精细化权限管理,兼顾安全性与易用性。