- 系统环境
[root@ceshiji ~]# cat /etc/redhat-release CentOS release 6.7 (Final) [root@ceshiji ~]# iostat -c Linux 2.6.32-573.3.1.el6.x86_64 (ceshiji) 01/05/2018 _x86_64_ (8 CPU) [root@ceshiji ~ ]# getenforce Disabled
- vsftp,pam,db4安装
[root@ceshiji ~]# yum install vsftpd pam* db4* -y
- 开启vsftp自启服务
[root@ceshiji ~]]# chkconfig --level 35 vsftpd on [root@ceshiji ~]]# chkconfig --list
- 配置vsftpd服务的宿主
#useradd vsftpdadmin -s /sbin/nologin -d /data/vsftpdadmin -m`` 说明:这个vsftpdadmin只是用来替换root的,并不需要登录
- 建立ftp虚拟宿主帐
#useradd -s /sbin/nologin -d /data/ftpuser -m ftpuser
- 配置vsftpd.conf
说明:更改配置前最好备份一下然后再改。#vim /etc/vsftpd/vsftpd.conf
- 下面是我的vsftpd.conf配置内容:
#cat /etc/vsftpd/vsftpd.conf |grep -v '^#'
##不允许匿名用户登录ftp anonymous_enable=NO ##允许本地用户登录 local_enable=YES ##启用任何形式的FTP写入命令 write_enable=YES ##上传后文件的权限掩码 local_umask=022 ##开启目录标语,默认是YES dirmessage_enable=YES ##开启日志,默认是YES xferlog_enable=YES ##设定连接端口20 ##这个端口我更改为50100 connect_from_port_20=YES listen_port=50100 ##设定vsftpd的服务日志保存路径 xferlog_std_format=YES ##会话超时,客户端连接到ftp但未操作,可根据个人情况修改 idle_session_timeout=600 ##支持异步传输功能,默认是注释掉的 async_abor_enable=YES ##支持ASCII模式的上传功能,默认是注释掉的 ascii_upload_enable=YES ##支持ASCII模式的下载功能,默认是注释掉的 ascii_download_enable=YES ##FTP的登录欢迎语,本身是被注释掉的 ftpd_banner=Welcome to datagrand FTP service. ##禁止本地用户登出自己的FTP主目录 chroot_local_user=YES ##锁定登录用户只能在家目录的位置的文件 chroot_list_file=/etc/vsftpd/chroot_list ##侦听ipv4地址 listen=YES ##########启用vsftpd虚拟用以及虚拟用户账号配置目录############ ##设定启用虚拟用户功能 guest_enable=YES ##指定虚拟用户的宿主用户 guest_username=ftpuser ##设定pam服务下vsftpdd的验证配置文件名 pam_service_name=vsftpd ##设定虚拟用户的权限符合他们的宿主用户 virtual_use_local_privs=YES ##设定虚拟用户个人Vsftp的配置文件存放路径 user_config_dir=/etc/vsftpd/vconf ##拒绝登录用户名单 userlist_enable=YES userlist_deny=NO ##限制主机对VSFTP服务器的访问 tcp_wrappers=YES ############################虚拟用户全局配置############### ##开放虚拟用户创建目录的权限 anon_mkdir_write_enable=YES ##开放虚拟用户的下载权限 anon_world_readable_only=YES ##开放虚拟用户的写权限 write_enable=YES ##开放虚拟用户的上传权限 anon_upload_enable=YES ##开放虚拟用户删除、重命名目录和文件 anon_other_write_enable=YES
- 建立日志文件
#touch /var/log/vsftpd.log //日志文件 #chown vsftpdadmin.vsftpdadmin /var/log/vsftpd.log //属于vsftpdadmin这个宿主
- 建立虚拟用户文件
#mkdir /etc/vsftpd/vconf/ #touch /etc/vsftpd/vconf/vir_user
- 建立虚拟用户
#vim /etc/vsftpd/vconf/vir_user ##用户名 xiaoming ##密码 12345678
说明:
(1)第一行用户名,第二行是上一行用户名的密码,其他人的以此类推;
(2)用户名,密码后面不要有空格!#vim /etc/vsftp/chroot_list ##用户名 xiaoming
说明:加入需要锁定登录用户只能家目录的位置然后将帐户输入一行一个,保存就可以了。
#vim /etc/vsftpd/user_list ##添加虚拟用户 xiaoming
创建虚拟用户具体文件和步骤:
#pwd /etc/vsftpd/vconf #touch xiaoming #vim xiaoming ##添加如下内容: ##虚拟用户的根目录,需要预先建立并赋予相应权限 local_root=/data3/xiaoming local_umask=022 :wq
在相应的目录下(data3)创建文件xiaoming: #mkdir -p /data3/xiaoming 更改所属主,组: #chown -R ftpuser:ftpuser /data3/xiaoming
- 生成数据库
#db_load -T -t hash -f /etc/vsftpd/vconf/vir_user /etc/vsftpd/vconf/vir_user.db 设置数据库文件的访问权限: #chmod 600 /etc/vsftpd/vconf/vir_user.db #chmod 600 /etc/vsftpd/vconf/vir_user
- 修改/etc/pam.d/vsftpd内容
将/etc/pam.d/vsftpd文件里的内容全部注释掉(前面加#)或删掉,在里面添加如下内容: echo "auth required pam_userdb.so db=/etc/vsftpd/vconf/vir_user" >> /etc/pam.d/vsftpd echo "account required pam_userdb.so db=/etc/vsftpd/vconf/vir_user" >> /etc/pam.d/vsftpd
- 重启ftp服务
#service vsftpd restart #netstat -lnp|grep vsftpd
- 关于vsftpd的端口号的更改
要求:vsftpd启动后,默认的ftp端口是21,现在我想把ftp端口改成50100 ,修改后能保证用户上传下载不受影响。#vim /etc/vsftpd/vsftpd.conf ##在该配置文件中添加此行 listen_port=50100 :wq
#vim /etc/services #ftp 21/tcp ftp 50100/tcp #ftp 21/udp fsp fspd ftp 50100/udp fsp fspd :wq #service vsftpd restart #netstat -lnp|grep vsftpd
本文转自品鉴初心51CTO博客,原文链接:http://blog.51cto.com/wutengfei/2057745,如需转载请自行联系原作者