使用Docker实现vsftpd配置 | 您所在的位置:网站首页 › 如何设置qq匿名访问 › 使用Docker实现vsftpd配置 |
前言:
匿名及基础搭建部分请参考:使用Docker实现vsftpd配置——匿名访问只读篇 本文不对搭建部分做相关说明 1、配置首先关闭匿名访问: sed -i 's/anonymous_enable=.*/anonymous_enable=NO/g' /etc/vsftpd.conf关闭匿名访问路径配置 sed -i 's/anon_root/#anon_root/g' /etc/vsftpd.conf 1.1、创建用户创建用户目录 mkdir -p /home/ftpname创建用户并指定目录 useradd -d /home/ftpname -s /sbin/nologin -m ftpname执行结果: root@zabbix-server:~# mkdir -p /home/ftpname root@zabbix-server:~# useradd -d /home/ftpname -s /sbin/nologin -m ftpname useradd: warning: the home directory already exists. Not copying any file from skel directory into it.然后查看用户列表 cat /etc/passwd | awk -F ":" '{print $1}'执行结果: root@zabbix-server:~# cat /etc/passwd | awk -F ":" '{print $1}' root daemon bin sys sync games man lp mail news uucp proxy www-data backup list irc gnats nobody _apt Debian-exim ftp ftpuser ftpname可以看到,此时用户已经创建成功了。 然后开始设置密码: passwd ftpnamePS:密码输入不会显示任何内容,输入完成回车即可 执行结果: root@zabbix-server:~# passwd ftpname New password: Retype new password: passwd: password updated successfully root@zabbix-server:~# 1.2、修改配置文件配置文件: /etc/vsftpd.conf 1.2.1、 chroot_list_file首先看第一个参数: chroot_list_file 含义:该文件下的用户将被限制在自己的主目录下 首先查看当前配置 grep list_file /etc/vsftpd.conf查看结果: root@zabbix-server:~# grep list_file /etc/vsftpd.conf #chroot_list_file=/etc/vsftpd.chroot_list修改: sed -i 's/#chroot_list_file/chroot_list_file/g' /etc/vsftpd.conf修改效果: root@zabbix-server:~# sed -i 's/#chroot_list_file/chroot_list_file/g' /etc/vs root@zabbix-server:~# grep list_file /etc/vsftpd.conf chroot_list_file=/etc/vsftpd.chroot_list 1.2.2、pam_service_namePS:在Debian系中,需要修改该参数为ftp 查看默认参数 grep service_name /etc/vsftpd.conf修改参数: sed -i 's/pam_service_name=.*/pam_service_name=ftp/g' /etc/vsftpd.conf配置过程: root@zabbix-server:~# grep service_name /etc/vsftpd.conf pam_service_name=vsftpd root@zabbix-server:~# sed -i 's/pam_service_name=.*/pam_service_name=ftp/g' /etc/vsftpd.conf root@zabbix-server:~# grep service_name /etc/vsftpd.conf pam_service_name=ftp 1.2.3、创建vsftpd.chroot_list文件在chroot_list_file参数中,指定了文件路径为: /etc/vsftpd.chroot_list 然后把前面新建的用户写入进去,命令如下: echo -e "ftpuser\nftpname" > /etc/vsftpd.chroot_list执行结果: root@zabbix-server:~# echo -e "ftpuser\nftpname" > /etc/vsftpd.chroot_list root@zabbix-server:~# cat /etc/vsftpd.chroot_list ftpuser ftpname root@zabbix-server:~# 1.3、权限配置设置属主 chown -R ftpname:ftpname /home/ftpname/查看写权限配置 grep write_en /etc/vsftpd.conf执行结果 root@zabbix-server:~# grep write_en /etc/vsftpd.conf #write_enable=YES #anon_mkdir_write_enable=YES此时,ftp未开启写权限,使用下面的命令进行开启: sed -i 's/#write_enable=.*/write_enable=YES/g' /etc/vsftpd.conf执行结果: root@zabbix-server:~# sed -i 's/#write_enable=.*/write_enable=YES/g' /etc/vsftpd.conf root@zabbix-server:~# grep write_en /etc/vsftpd.conf write_enable=YES #anon_mkdir_write_enable=YES然后执行最后一条配置命令 sed -i 's/pam_shells.so/pam_nologin.so/g' /etc/pam.d/vsftpd 2、访问验证 2.1、重启服务修改完配置之后,重启进行生效: cd /etc/init.d/ ./vsftpd restart ./vsftpd status执行结果: root@zabbix-server:~# cd /etc/init.d/ root@zabbix-server:/etc/init.d# ./vsftpd restart [ ok ] Stopping FTP server: vsftpd. [ ok ] Starting FTP server: vsftpd. root@zabbix-server:/etc/init.d# ./vsftpd status [ ok ] FTP server is running. root@zabbix-server:/etc/init.d# 2.2、访问此时。要求输入用户名密码输入完成之后,访问成功,但是出现了文件名异常的问题 切换至Windows的资源管理器进行访问 错误依然存在,解决方案: 待发布 |
CopyRight 2018-2019 实验室设备网 版权所有 |