首先确保系统已更新,然后安装VSFTP服务:
sudo yum update -y sudo yum install vsftpd -y 启动VSFTP服务并设置为开机自启:
sudo systemctl start vsftpd sudo systemctl enable vsftpd vsftpd.conf)编辑VSFTP主配置文件/etc/vsftpd/vsftpd.conf,设置以下关键参数:
sudo vim /etc/vsftpd/vsftpd.conf anonymous_enable=NO local_enable=YES write_enable=YES 644,目录为755):local_umask=022 chroot_local_user=YES allow_writeable_chroot=YES # 允许chroot目录可写(若用户主目录需要写入) /etc/vsftpd/user_list中的用户登录):userlist_enable=YES userlist_file=/etc/vsftpd/user_list userlist_deny=NO # 允许列表中的用户登录 确保用户主目录权限正确(通常为755),且所有者为用户自身:
# 创建用户(示例:ftpuser) sudo useradd -m ftpuser sudo passwd ftpuser # 设置主目录权限 sudo chown ftpuser:ftpuser /home/ftpuser sudo chmod 755 /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目录的SELinux上下文,允许FTP访问:
# 设置用户主目录的SELinux上下文(类似httpd内容) sudo chcon -Rv --type=httpd_sys_content_t /home/ftpuser # 若需要上传文件,添加写入权限 sudo chcon -Rv --type=httpd_sys_rw_content_t /home/ftpuser/uploads 允许FTP流量(默认端口21)通过防火墙:
sudo firewall-cmd --permanent --add-service=ftp sudo firewall-cmd --reload 应用所有配置更改:
sudo systemctl restart vsftpd 若需要更细粒度的权限(如限制特定用户只能访问特定目录),可创建虚拟用户:
# 创建虚拟用户文件(格式:用户名 密码) sudo vim /etc/vsftpd/virtual_users.txt # 示例内容: ftp_virtual user1pass ftp_virtual2 user2pass # 生成数据库文件 sudo db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db sudo chmod 600 /etc/vsftpd/virtual_users.db # 配置PAM认证(编辑/etc/pam.d/vsftpd) sudo vim /etc/pam.d/vsftpd # 注释原有内容,添加以下两行: auth required pam_userdb.so db=/etc/vsftpd/virtual_users account required pam_userdb.so db=/etc/vsftpd/virtual_users # 配置VSFTP虚拟用户 sudo vim /etc/vsftpd/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 # 重启服务 sudo systemctl restart vsftpd 通过以上步骤,可完成CentOS上VSFTP的基础权限设置。根据实际需求调整vsftpd.conf中的参数(如chroot、userlist等),即可实现不同用户的权限控制。