在CentOS系统中管理FTP服务器权限通常涉及以下几个步骤:
首先,你需要安装一个FTP服务器软件。常用的FTP服务器软件有vsftpd和ProFTPD。这里以vsftpd为例:
sudo yum install vsftpd
编辑vsftpd的配置文件 /etc/vsftpd/vsftpd.conf。你可以使用任何文本编辑器,比如nano或vi:
sudo nano /etc/vsftpd/vsftpd.conf
在配置文件中,你可以设置以下参数来控制用户权限:
anonymous_enable=YES: 允许匿名用户登录(不推荐在生产环境中使用)。local_enable=YES: 允许本地用户登录。write_enable=YES: 允许FTP写入权限。chroot_local_user=YES: 将本地用户锁定在其主目录中。allow_writeable_chroot=YES: 如果 chroot_local_user 设置为 YES,这个选项允许chroot环境有写权限(这是不安全的,通常不建议启用)。userlist_enable=YES: 启用用户列表。userlist_file=/etc/vsftpd/user_list: 用户列表文件的位置。userlist_deny=NO: 如果设置为 YES,则拒绝用户列表中的用户登录。创建一个新的系统用户,这个用户将用作FTP账户:
sudo useradd ftpuser
sudo passwd ftpuser
按照提示输入并确认密码。
设置用户的主目录权限,确保vsftpd可以正确访问:
sudo chown ftpuser:ftpuser /home/ftpuser
sudo chmod 755 /home/ftpuser
对于上传目录,确保它可写:
sudo mkdir /home/ftpuser/upload
sudo chown ftpuser:ftpuser /home/ftpuser/upload
sudo chmod 775 /home/ftpuser/upload
如果你的系统启用了SELinux,可能需要额外的配置:
sudo setsebool -P ftp_home_dir on
sudo chcon -Rt svirt_sandbox_file_t /home/ftpuser
保存配置文件的更改后,重启vsftpd服务以应用新的设置:
sudo systemctl restart vsftpd
如果你的CentOS系统启用了防火墙,确保开放FTP服务的端口(默认是21):
sudo firewall-cmd --permanent --add-port=21/tcp
sudo firewall-cmd --reload
使用FTP客户端(如FileZilla)连接到你的服务器,验证用户权限是否设置正确。