centos

CentOS上VSFTP权限如何设置

小樊
46
2025-10-19 14:40:45
栏目: 智能运维

CentOS上VSFTP权限设置详细步骤

1. 安装VSFTP

首先确保系统已更新,然后安装VSFTP服务:

sudo yum update -y
sudo yum install vsftpd -y

2. 启动并启用VSFTP服务

启动VSFTP服务并设置为开机自启:

sudo systemctl start vsftpd
sudo systemctl enable vsftpd

3. 配置基础权限(修改vsftpd.conf

编辑VSFTP主配置文件/etc/vsftpd/vsftpd.conf,设置以下关键参数:

sudo vim /etc/vsftpd/vsftpd.conf

4. 设置用户主目录权限

确保用户主目录权限正确(通常为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  # 允许用户写入

5. 配置SELinux上下文(若启用SELinux)

若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

6. 配置防火墙

允许FTP流量(默认端口21)通过防火墙:

sudo firewall-cmd --permanent --add-service=ftp
sudo firewall-cmd --reload

7. 重启VSFTP服务

应用所有配置更改:

sudo systemctl restart vsftpd

8. 可选:高级权限控制(虚拟用户)

若需要更细粒度的权限(如限制特定用户只能访问特定目录),可创建虚拟用户:

# 创建虚拟用户文件(格式:用户名 密码)
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中的参数(如chrootuserlist等),即可实现不同用户的权限控制。

0
看了该问题的人还看了