vsftpd 配置虛擬用戶
阿新 • • 發佈:2018-01-20
conf new dir trying bsp comm rfi please remote 本文章介紹通過docker搭建的vsftpd實踐,如有任何問題,請聯系我,一起交流。
請訪問git地址:
https://code.aliyun.com/jy1779/vsftpd.git
請訪問git地址:
https://code.aliyun.com/jy1779/vsftpd.git
執行指令:
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.
先下班,待續....
vsftpd 配置虛擬用戶