标签:mis class 虚拟 用户家目录 oca .com 添加 remote yun
本文章介绍通过docker搭建的vsftpd实践,如有任何问题,请联系我,一起交流。执行指令:
root@elk:/docker# git clone https://code.aliyun.com/jy1779/vsftpd.git
目录结构:
root@elk:/docker/vsftpd# ls conf data docker-compose.yml Dockerfile log pam.d sources.list
root@elk:/docker/vsftpd# tree -l . ├── conf #宿主机目录,存放vsftpd所有配置文件,仅用于宿主机。 │ ├── vsftpd #vsftpd配置文件目录,主要存放自定义脚本,虚拟用户配置文件,等等 │ │ ├── bin #自定义脚本目录 │ │ │ ├── add_vuser.sh #用于添加虚拟用户 │ │ │ ├── del_vuser.sh #用于删除虚拟用户 │ │ │ └── run_vsftpd.sh #用于运行vsftpd服务 │ │ ├── chroot_list #限制用户家目录 │ │ ├── user_config_dir #虚拟用户配置文件目录 │ │ │ └── jonny #虚拟用户配置文件 │ │ ├── user_list #限制虚拟用户访问,虚拟用户需要添加到该文件才可以访问 │ │ ├── v_user_password.db #虚拟用户验证文件 │ │ ├── v_user_password.txt #虚拟用户验证前文本 │ │ └── welcome.txt #登录vsftpd后显示欢迎信息 │ └── vsftpd.conf #vsftpd主配置文件 ├── data #vsftpd挂载出来的根目录 │ └── jonny #虚拟用户家目录 │ └── test ├── docker-compose.yml #docker-compose管理 ├── Dockerfile #Dockerfile 构建 ├── log #日志目录 │ ├── vsftpd.log │ └── xferlog ├── pam.d │ └── vsftpd #PAM验证 └── sources.list
启动vsftpd(因为本地有镜像所以不需要拉取镜像)
root@elk:/docker/vsftpd# docker-compose up -d vsftpd Creating vsftpd.1 ... Creating vsftpd.1 ... done root@elk:/docker/vsftpd# docker-compose logs vsftpd Attaching to vsftpd.1 vsftpd.1 | ************************************************* vsftpd.1 | * * vsftpd.1 | * VSFTPD SERVER * vsftpd.1 | * * vsftpd.1 | ************************************************* vsftpd.1 | ADD VIRTUAL USER vsftpd.1 | ---------------- vsftpd.1 | · Default virtual user: vsftpd.1 | - username: jonny vsftpd.1 | - password: 123456 vsftpd.1 | · You can use the command "ftp localhost", enter the virtual user and password. vsftpd.1 | · Add new Virtual user to /etc/vsftpd/bin/add_vuser.sh vsftpd.1 | · Del Virtual user to /etc/vsftpd/bin/del_vuser.sh
登录ftp:
默认创建了一个虚拟用户:jonny,可以直接登录。
root@elk:/docker/vsftpd# ftp localhost ftp: connect to address ::1: Connection refused Trying 127.0.0.1... Connected to localhost. 220-welcome to ftp ! 220 Name (localhost:jonny): jonny 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> ls #查看该虚拟用户的家目录 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. -rw-r--r-- 1 0 0 0 Jan 20 10:24 test 226 Directory send OK.
添加用户:(添加用户需要进入容器内部运行指令或者在容器外部调用容器内部脚本)
root@elk:/docker/vsftpd# docker exec -it vsftpd.1 bash #进入容器内部 root@elk:/srv/ftp# cd /etc/vsftpd/bin/ root@elk:/etc/vsftpd/bin# ls add_vuser.sh del_vuser.sh run_vsftpd.sh root@elk:/etc/vsftpd/bin# ./add_vuser.sh jaye 123456 #执行脚本,两个参数,一个是新增的用户名,一个是密码 root@elk:/etc/vsftpd/bin# exit #退出容器 exit root@elk:/docker/vsftpd# ftp localhost #使用新添加的虚拟用户登录 ftp: connect to address ::1: Connection refused Trying 127.0.0.1... Connected to localhost. 220-welcome to ftp ! 220 Name (localhost:jonny): jaye 331 Please specify the password. Password: 230 Login successful. #登录成功 Remote system type is UNIX. Using binary mode to transfer files. ftp> ls #因为刚刚创建的虚拟用户,所以虚拟用户的家目录没有任何文件或目录 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. 226 Directory send OK.
删除用户:(跟添加用户一样,进入容器内部或者在外部调用指令)
root@elk:/docker/vsftpd# docker exec -it vsftpd.1 bash root@elk:/srv/ftp# cd /etc/vsftpd/bin root@elk:/etc/vsftpd/bin# ls add_vuser.sh del_vuser.sh run_vsftpd.sh root@elk:/etc/vsftpd/bin# ./del_vuser.sh jaye #删除虚拟用户,只需要一个参数,就是用户名 root@elk:/etc/vsftpd/bin# exit exit root@elk:/docker/vsftpd# ftp localhost ftp: connect to address ::1: Connection refused Trying 127.0.0.1... Connected to localhost. 220-welcome to ftp ! 220 Name (localhost:jonny): jaye #这时已经登录不上了。 530 Permission denied. Login failed.
先下班,待续....
标签:mis class 虚拟 用户家目录 oca .com 添加 remote yun
原文地址:http://blog.51cto.com/jiay1/2063221