温馨提示×

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
  • 禁用匿名访问(提升安全性):
    anonymous_enable=NO
    
  • 允许本地用户登录
    local_enable=YES
    
  • 开启写入权限(允许用户上传/修改文件):
    write_enable=YES
    
  • 设置本地用户文件掩码(默认创建文件权限为644,目录为755):
    local_umask=022
    
  • 限制用户至主目录(chroot jail)(增强安全性,防止访问系统其他目录):
    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  # 允许列表中的用户登录
    

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