VSFTP(Very Secure FTP Daemon)是CentOS系统常用的FTP服务,权限管理是其核心功能之一,需通过配置文件调整、用户隔离、SELinux优化及防火墙设置等多维度实现。以下是具体操作步骤:
首先确保系统已安装VSFTP,若未安装可通过以下命令完成:
sudo yum install vsftpd -y
安装完成后,启动服务并设置为开机自启:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
vsftpd.conf文件VSFTP的权限控制主要通过/etc/vsftpd/vsftpd.conf文件实现,关键配置项如下:
anonymous_enable=NO # 禁止匿名用户登录(提升安全性)
local_enable=YES # 允许本地系统用户登录
write_enable=YES # 允许用户上传文件(默认禁用)
local_umask=022 # 设置文件掩码,默认创建文件权限为644(rw-r--r--)
xferlog_enable=YES # 开启传输日志(记录上传/下载行为)
chroot_local_user=YES # 启用chroot,锁定用户至主目录
allow_writeable_chroot=YES # 允许chroot目录可写(若用户需上传文件,必须开启)
user_list文件实现:userlist_enable=YES # 启用用户列表
userlist_file=/etc/vsftpd/user_list # 用户列表文件路径
userlist_deny=NO # 允许列表中的用户登录(设为YES则拒绝)
将需授权的用户添加至/etc/vsftpd/user_list(每行一个用户名)。755(确保用户可读写自身文件,其他用户仅能读取):sudo useradd -m ftpuser # 创建用户并生成主目录(如/home/ftpuser)
sudo passwd ftpuser # 设置用户密码
sudo chown ftpuser:ftpuser /home/ftpuser # 归属用户
sudo chmod 755 /home/ftpuser # 设置权限
/home/ftpuser/uploads),需赋予该目录写权限:sudo mkdir -p /home/ftpuser/uploads
sudo chown ftpuser:ftpuser /home/ftpuser/uploads
sudo chmod 775 /home/ftpuser/uploads # 允许用户及所属组写入
若SELinux处于Enforcing模式(默认),需调整策略以允许FTP访问用户目录:
sudo setsebool -P ftp_home_dir on # 永久开启(-P表示持久化)
public_content_rw_t(允许FTP读写):sudo chcon -Rt public_content_rw_t /home/ftpuser
若需更严格的权限(如仅允许FTP访问),可使用public_content_t类型。允许FTP服务通过防火墙(默认端口21),若启用被动模式(PASV)需开放额外端口范围:
sudo firewall-cmd --permanent --add-service=ftp
sudo firewall-cmd --reload
sudo firewall-cmd --permanent --add-port=10000-10010/tcp
sudo firewall-cmd --reload
同时在vsftpd.conf中配置被动模式参数:pasv_enable=YES
pasv_min_port=10000
pasv_max_port=10010
pasv_address=your_server_ip # 替换为服务器公网IP(若为公网服务器)
使用FTP客户端(如FileZilla)连接服务器,验证以下功能:
read_enable=YES,默认开启);通过以上步骤,可实现VSFTP在CentOS中的精细化权限管理,兼顾安全性与可用性。