linux端 ftp 安装

发布时间:2019-08-08

linux服务器通常使用 vsftpd 服务实现,首先使用 rpm -qa|grep vsftpd命令查看服务器是否有 vsftpd 服务,如果没有,使用 yum -y install vsftpd 安装 vsftpd 服务,默认安装在 /etc/vsftpd 可以使用linux 查找文件命令find 查看 find -name vsftpd ;

安装成功后创建用户并指定目录:
useradd -d /home/test -m gjqftp  (增加用户gjqftp,并指定 gjqftp 用户的主目录为/home/test),test目录不适合手动创建,执行命令时会自动创建,自动创建的目录会自动属于 gjqftp 用户,如果指向的目录已经存在则会报错

本来是想创建gjqftp用户并制定目录为项目根目录,但是wwwroot其实是已经是存在的,虽然报错,但是 gjqftp 用户依然是创建成功的

passwd gjqftp ( 为 gjqftp 设置密码,需要输入两次)

然后直接 ftp 工具登录就好了

更改用户相应权限:
usermod -s /sbin/nologin test   (限定用户test不能telnet,只能ftp)
usermod -s /sbin/bash test    (用户test恢复正常)
usermod -d /test test       (更改用户test的主目录为/test)

限制用户只能访问/home/test,不能访问其他路径
修改 /etc/vsftpd/vsftpd.conf 如下:
chroot_list_enable=YES //限制访问自身目录
#(default follows)
chroot_list_file=/etc/vsftpd/chroot_list
编辑 chroot_list 文件,将受限制的用户添加进去,每个用户名一行
然后重启vsFTPd服务器
[root@linuxsir001 root]# /etc/init.d/vsftpd restart

较常用配置项
/etc/vsftpd/vsftpd.conf:vsftpd 的核心配置文件
/etc/vsftpd/ftpusers:用于指定哪些用户不能访问FTP 服务器。 黑名单
/etc/vsftpd/user_list:指定允许使用vsftpd 的用户列表文件。 白名单
/etc/vsftpd/chroot_list:指定允许使用vsftpd 的用户列表文件。 控制名单下的目录能不能离开ftp根目录

vsftpd.conf具体配置如下:
anonymous_enable=NO #允许匿名用户访问为了安全选择关闭
local_enable=YES # 允许本地用户登录
write_enable=YES # 是否允许写入
local_umask=022 # 本地用户上传文件的umask
dirmessage_enable=YES #为YES则进入目录时显示此目录下由message_file选项指定的文本文件(,默认为.message)的内容
xferlog_enable=YES #开启日志

xferlog_std_format=YES #标准格式
connect_from_port_20=YES
xferlog_file=/var/log/xferlog #ftp日志目录

idle_session_timeout=6000 #设置客户端连接时间

data_connection_timeout=1200 #设置数据连接时间 针对上传,下载
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list #设置为YES则下面的控制有效
chroot_list_enable=YES #若为NO,则记录在chroot_list_file所指定的文件(默认是/etc/vsftpd.chroot_list)中的用户将被chroot在登录后所在目录中,无法离开.如果为YES,则所记录的用户将不被chroot.这里YES.
chroot_local_user=YES
userlist_deny=NO #若设置为YES则记录在userlist_file选项指定文件(默认是/etc/vsftpd.user_list)中的用户将无法login,并且将检察下面的userlist_deny选项
userlist_enable=YES #若为NO,则仅接受记录在userlist_file选项指定文件(默认是/etc/vsftpd.user_list)中的用户的login请求.若为YES则不接受这些用户的请求.
userlist_file=/etc/vsftpd/user_list #白名单
chroot_list_enable=YES
local_root=/var/ftp/pub #根目录
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

关闭防火墙
centos 7操作为 systemctl stop firewalld.servic
centos 6操作位service stop iptables;

启动 ftp 服务器
cetos 7操作为/bin/systemctl restart vsftpd.service
centos 6操作为 service vsftpd restart