如果我们经常有使用虚拟主机的时候,配置网站和文件的传输使用面板自带的文件管理器以及FTP连接主机进行文件传输应该是比较多的。如果我们使用菏泽服务器或者云菏泽服务器的时候,一般使用SFTP较多,因为无论是权限还是管理确实比较方便一些。但是使用SFTP还是有一定的安全问题的,比如我们如果菏泽服务器中给某个用户开通某个目录权限,以及普通用户如果使用SFTP容易将系统文件误删或者出现故障。
所以,有些时候我们还是需要用到FTP来限定某个用户的特定目录权限,比如我们常用的WEB面板是可以针对某个网站、目录开通拥有FTP管理权限的,但是如果是非面板WEB环境,我们可以自己搭建、配置FTP服务器工具且授权用户名和授权开放的目录。
在这篇文章中,整理在CentOS6中配置vsftpd配置FTP服务器和授权目录和开通用户权限。如果是CentOS7还是有些不同的,后面单独在找个CentOS7环境配置,因为手边正好这台机器是CentOS6。
centos 6安装FTP
1 检测是否已经安装FTP
rpm -qa | grep vsftpd
2 若没有,则进行安装
yum install vsftpd
二 设置vsftpd开机启动
chkconfig --level 35 vsftpd on
三 配置FTP服务器(开启基于用户的访问控制)
1 配置文件的修改
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO # 是否开启匿名登录
local_enable=YES # 是否允许本地用户登录
write_enable=YES # 是否允许上传
local_umask=022 # 默认的umask码
diremssage_enable=YES # 是否显示目录说明文件
xferlog_enable=YES # 是否记录ftp传输过程
connect_from_prot_20=YES # 是否确定端口传输来自20
xferlog_ftd_format=YES # 是否使用标准的ftp xferlog模式
chroot_list_enable=YES # 是否将系统用户限制在自己的home目录下
chroot_list_file=/etc/vsftpd/chroot_list # 列表不受限制的用户
listen=YES # 是否开启监听
pam_service_name=vsftpd # 服务名称
userlist_enable=YES
tcp_wrappers=YES
2 修改selinux
getsebool -a | grep ftp
若报错,getsebool: SELinux is disabled。则
vim /etc/selinux/config
修改 SELINUX=1。
然后重启LINUX,"shutdown -r now" 立刻重启(root用户使用)。
重新执行 "getsebool -a | grep ftp"。
修改selinux,允许用户在家目录写入数据
setsebool -P allow_ftpd_anon_write off
setsebool -P ftp_home_dir on
四 创建虚拟用户
1 创建一个用户,然后修改用户的登陆shell为nologin,让用户不能登陆系统,只能使用ftp之内的服务
useradd -d /home/www/test -g ftp -s /sbin/nologin test # 指定用户 test 属于组 ftp,只能访问的目录是 /home/www/test,不能登陆系统passwd test # 设置该用户的密码
2 把用户 test 添加到chroot_list中
vim /etc/vsftpd/chroot_list # 把 test 加入该文件
五 测试虚拟用户
在浏览器的地址栏输入 "ftp://你的ip",在弹出的对话框中输入账号、密码,即可连接成功。
六 其他配置
打开配置文件 vsftpd.conf
max_client=100 # vsftpd最大支持链接数100个IP
max_per=5 # 每个IP能支持5个链接
local_max_rate=81920 # 限制传输速度
listen_address=某个IP # 绑定某个IP到vsftpd,只允许该IP访问
xferlog_file=/var/log/vsftpd.log # 日志存放位置
以上文章来源于网络,如有侵权请联系创一网的客服处理。谢谢!