[toc]php
擴展 vsftp使用mysql存放虛擬用戶並驗證 http://www.aminglinux.com/bbs/thread-342-1-1.htmlhtml
ftp的主動和被動模式 http://www.aminglinux.com/bbs/thread-961-1-1.htmlmysql
咱們以前傳輸文件所用的是rzsz命令,能夠簡單明瞭的就把咱們所需的文件下載或者上傳。可是有個缺陷,不能夠上傳或者下載大致積的文件。FTP就能夠解決這個問題!linux
FTP的主要做用就是讓用戶鏈接一個遠程計算機(這些計算機上運行着FTP服務器程序),並查看遠程計算機中的文件,而後把文件從遠程計算機複製到本地計算機,或把本地計算機的文件傳送到遠程計算機。nginx
小公司用的多,大企業不用FTP,由於不安全。大多數的企業使用git。git
centos上自帶vsftpdredis
[root@xavi ~]# yum install -y vsftpd
2.2 建立用戶:sql
[root@xavi ~]# useradd -s /sbin/nologin virftp
這兒可能會有疑問,咱們建立了這個用戶爲何不能夠nologin呢?安全 而後咱們就用到了以下虛擬用戶:shell
[root@xavi ~]# vim /etc/vsftpd/vsftpd_login //奇數行爲用戶名,偶數行爲密碼,多個用戶就寫多行!
[root@xavi ~]# vim /etc/vsftpd/vsftpd_login //用戶爲zhdy密碼爲asd9577;zhdy02密碼爲asd9772 xavi01 linux001 xavi02 linux002
[root@xavi ~]# chmod 600 /etc/vsftpd/vsftpd_login //爲了安全,不容許其餘人修改,咱們設置爲600 [root@xavi ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db //再次把密碼文件轉換爲計算機能夠識別的配置文件。 [root@xavi ~]# ls -l /etc/vsftpd/ 總用量 36 -rw------- 1 root root 125 8月 3 2017 ftpusers -rw------- 1 root root 361 8月 3 2017 user_list -rw------- 1 root root 5030 8月 3 2017 vsftpd.conf -rwxr--r-- 1 root root 338 8月 3 2017 vsftpd_conf_migrate.sh -rw------- 1 root root 32 3月 29 13:10 vsftpd_login -rw-r--r-- 1 root root 12288 3月 29 13:11 vsftpd_login.db
[root@xavi ~]# mkdir /etc/vsftpd/vsftpd_user_conf //建立配置文件 [root@xavi ~]# cd /etc/vsftpd/vsftpd_user_conf
vim xavi001 //加入以下內容 local_root=/home/ftpuser/xavi //虛擬用戶的家目錄 anonymous_enable=NO //是否容許匿名用戶 write_enable=YES //是否容許可寫 local_umask=022 //建立新目錄和文件的權限 anon_upload_enable=NO //是否容許匿名用戶上傳 anon_mkdir_write_enable=NO //是否容許匿名用戶可建立 idle_session_timeout=600 //鏈接後沒有任何操做的超時時間,空閒時間段 data_connection_timeout=120 //數據傳輸超時時間 max_clients=10 //最大容許鏈接的clients客戶端
[root@xavi ~]# cd /etc/vsftpd/vsftpd_user_conf [root@xavi vsftpd_user_conf]# vim xavi001 local_root=/home/virftp/xavi001 anonymous_enable=NO write_enable=YES local_umask=022 anon_upload_enable=NO anon_mkdir_write_enable=NO idle_session_timeout=600 data_connection_timeout=120 max_clients=10
[root@xavi vsftpd_user_conf]# mkdir /home/virftp/xavi01 [root@xavi vsftpd_user_conf]# touch /home/virftp/xavi01/xavi.txt [root@xavi vsftpd_user_conf]# chown -R virftp:virftp /home/virftp
[root@xavi vsftpd_user_conf]# vim /etc/pam.d/vsftpd #%PAM-1.0 auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login session optional pam_keyinit.so force revoke auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed auth required pam_shells.so auth include password-auth account include password-auth session required pam_loginuid.so session include password-auth ----------------------------------------------------------- //在最前面加上 auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
[root@xavi vsftpd_user_conf]# ls /lib64/security/pam_userdb.so /lib64/security/pam_userdb.so
[root@xavi vsftpd_user_conf]# vim /etc/vsftpd/vsftpd.conf
將anonymous_enable=YES 改成 anonymous_enable=NOvim
將#anon_upload_enable=YES 改成 anon_upload_enable=NO
將#anon_mkdir_write_enable=YES 改成 anon_mkdir_write_enable=NO
//再最底下增長以下內容: chroot_local_user=YES guest_enable=YES guest_username=virftp virtual_use_local_privs=YES user_config_dir=/etc/vsftpd/vsftpd_user_conf allow_writeable_chroot=YES
user_config_dir:定義user用戶的配置路徑。
[root@xavi vsftpd_user_conf]# systemctl start vsftpd [root@xavi vsftpd_user_conf]# ps aux | grep vsftpd root 2938 0.0 0.0 53216 580 ? Ss 19:57 0:00 /usr/sbin/vsftpd /etcvsftpd/vsftpd.conf root 2940 0.0 0.0 112680 976 pts/0 S+ 19:57 0:00 grep --color=auto vsftpd [root@xavi vsftpd_user_conf]# netstat -lntp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd tcp 0 0 0.0.0.0:20048 0.0.0.0:* LISTEN 1128/rpc.mountd tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1882/dnsmasq tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1064/sshd tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1061/cupsd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1694/master tcp 0 0 0.0.0.0:54910 0.0.0.0:* LISTEN 1067/rpc.statd tcp 0 0 0.0.0.0:37663 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN - tcp6 0 0 :::46701 :::* LISTEN - tcp6 0 0 :::111 :::* LISTEN 1/systemd tcp6 0 0 :::20048 :::* LISTEN 1128/rpc.mountd tcp6 0 0 :::21 :::* LISTEN 2938/vsftpd tcp6 0 0 :::60662 :::* LISTEN 1067/rpc.statd tcp6 0 0 :::22 :::* LISTEN 1064/sshd tcp6 0 0 ::1:631 :::* LISTEN 1061/cupsd tcp6 0 0 ::1:25 :::* LISTEN 1694/master tcp6 0 0 :::2049 :::* LISTEN -
[root@xavi vsftpd_user_conf]# yum install lftp
[root@xavi ~]# lftp xavi01@127.0.0.1 口令: lftp xavi01@127.0.0.1:~> ls drwxr-xr-x 2 1006 1007 22 Mar 29 11:40 xavi001 lftp xavi01@127.0.0.1:/> ? !<shell-command> (commands) alias [<name> [<value>]] attach [PID] bookmark [SUBCMD] cache [SUBCMD] cat [-b] <files> cd <rdir> chmod [OPTS] mode file... close [-a] [re]cls [opts] [path/][pattern] debug [<level>|off] [-o <file>] du [options] <dirs> exit [<code>|bg] get [OPTS] <rfile> [-o <lfile>] glob [OPTS] <cmd> <args> help [<cmd>] history -w file|-r file|-c|-l [cnt] jobs [-v] [<job_no...>] kill all|<job_no> lcd <ldir> lftp [OPTS] <site> ln [-s] <file1> <file2> ls [<args>] mget [OPTS] <files> mirror [OPTS] [remote [local]] mkdir [-p] <dirs> module name [args] more <files> mput [OPTS] <files> mrm <files> mv <file1> <file2> [re]nlist [<args>] open [OPTS] <site> pget [OPTS] <rfile> [-o <lfile>] put [OPTS] <lfile> [-o <rfile>] pwd [-p] queue [OPTS] [<cmd>] quote <cmd> repeat [OPTS] [delay] [command] rm [-r] [-f] <files> rmdir [-f] <dirs> scache [<session_no>] set [OPT] [<var> [<val>]] site <site-cmd> source <file> torrent [-O <dir>] <file|URL>... user <user|URL> [<pass>] wait [<jobno>] zcat <files> zmore <files>
報錯!
lftp xavi01@127.0.0.1:/> get xavi.txt get: Access failed: 550 Failed to open file. (xavi.txt) lftp xavi01@127.0.0.1:/> exit
輸如帳號密碼連接,仍是主機xavi001的帳號密碼
sftp:/tmp> cd /usr/local/src/ sftp:/usr/local/src> ls drwxr-xr-x 10 root root 4096 Mar 13 23:35 . drwxr-xr-x 21 root root 254 Mar 13 23:43 .. -rw-r--r-- 1 root root 21040959 Mar 18 2017 mysql-5.5.55.tar.gz drwxr-xr-x 31 7161 31415 4096 Mar 18 2017 mysql-5.5.55 -rw-r--r-- 1 root root 316320366 Mar 18 2017 mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz -rw-r--r-- 1 root root 541295045 Feb 28 22:23 mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz -rw-r--r-- 1 root root 8638793 Oct 21 03:39 httpd-2.4.29.tar.gz -rw-r--r-- 1 root root 1072661 Oct 23 01:33 apr-1.6.3.tar.gz -rw-r--r-- 1 root root 554301 Oct 23 01:33 apr-util-1.6.1.tar.gz drwxr-xr-x 11 501 games 4096 Mar 17 15:57 httpd-2.4.29 drwxr-xr-x 28 xavidsf xavidsf 4096 Mar 17 15:33 apr-1.6.3 drwxr-xr-x 21 xavidsf xavidsf 4096 Mar 17 15:40 apr-util-1.6.1 drwxr-xr-x 17 xavi xavi 4096 Mar 13 22:53 php-5.6.30 -rw-r--r-- 1 root root 15011816 Jan 19 2017 php-5.6.30.tar.bz2 -rw-r--r-- 1 root root 19274631 Mar 2 11:14 php-5.6.30.tar.gz -rw-r--r-- 1 root root 15732452 Jun 7 2017 php-7.1.6.tar.bz2 drwxrwxr-x 19 xavi xavi 4096 Mar 2 16:02 php-7.1.6 -rw-r--r-- 1 root root 230093 Mar 11 20:35 phpredis-develop.zip drwxr-xr-x 11 root root 4096 Mar 11 20:43 phpredis-develop -rw-r--r-- 1 root root 314581668 Nov 28 2016 mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz -rw-r--r-- 1 root root 19274631 Jan 19 2017 php-5.6.30.tar.gz.1 -rw-r--r-- 1 root root 981093 Jul 11 2017 nginx-1.12.1.tar.gz drwxr-xr-x 9 xavidsf xavidsf 186 Mar 13 23:40 nginx-1.12.1 sftp:/usr/local/src> get nginx-1.12.1.tar.gz Fetching /usr/local/src/nginx-1.12.1.tar.gz to nginx-1.12.1.tar.gz sftp: received 958 KB in 0.06 seconds
在桌面找到了nginx的安裝包
點擊「Download Xftp」
點擊下載連接
選擇評估版
填入信息
提示在郵箱裏有下載連接
下載完成後,開始安裝,注意選擇免費版
安裝完成後,在打開的虛擬機界面上按下「ctrl+Alt+F」,輸入帳號密碼,以下:
選中文件後直接鼠標拖拽就能夠到達window界面中
[root@xavi ~]# yum install -y pure-ftpd [root@xavi ~]# vim /etc/pure-ftpd/pure-ftpd.conf #找到這行,刪除前面#號 # PureDB /etc/pure-ftpd/pureftpd.pdb
[root@xavi ~]# systemctl stop vsftpd [root@xavi ~]# systemctl start pure-ftpd [root@xavi ~]# ps aux | grep pure-ftpd root 3001 0.0 0.0 202480 1208 ? Ss 10:11 0:00 pure-ftpd (SERVER) root 3003 0.0 0.0 112680 972 pts/0 S+ 10:11 0:00 grep --color=auto pure-ftpd
[root@xavi ~]# mkdir /data/ftp //建立目錄 [root@xavi ~]# useradd -u 1010 pure-ftp //建立系統用戶 [root@xavi ~]# chown -R pure-ftp:pure-ftp /data/ftp/ [root@xavi ~]# pure-pw useradd ftp_usera -u pure-ftp -d /data/ftp/ //建立虛擬賬號,-pw設定密碼,-u系統用戶,-d指定家目錄 Password:
[root@xavi ~]# pure-pw Usage : pure-pw useradd <login> [-f <passwd file>] -u <uid> [-g <gid>] -D/-d <home directory> [-c <gecos>] [-t <download bandwidth>] [-T <upload bandwidth>] [-n <max number of files>] [-N <max Mbytes>] [-q <upload ratio>] [-Q <download ratio>] [-r <allow client ip>/<mask>] [-R <deny client ip>/<mask>] [-i <allow local ip>/<mask>] [-I <deny local ip>/<mask>] [-y <max number of concurrent sessions>] [-z <hhmm>-<hhmm>] [-m] pure-pw usermod <login> -f <passwd file> -u <uid> [-g <gid>] -D/-d <home directory> -[c <gecos>] [-t <download bandwidth>] [-T <upload bandwidth>] [-n <max number of files>] [-N <max Mbytes>] [-q <upload ratio>] [-Q <download ratio>] [-r <allow client ip>/<mask>] [-R <deny client ip>/<mask>] [-i <allow local ip>/<mask>] [-I <deny local ip>/<mask>] [-y <max number of concurrent sessions>] [-z <hhmm>-<hhmm>] [-m] pure-pw userdel <login> [-f <passwd file>] [-m] pure-pw passwd <login> [-f <passwd file>] [-m] pure-pw show <login> [-f <passwd file>] pure-pw mkdb [<puredb database file> [-f <passwd file>]] [-F <puredb file>] pure-pw list [-f <passwd file>] -d <home directory> : chroot user (recommended) -D <home directory> : don't chroot user -<option> '' : set this option to unlimited -m : also update the /etc/pure-ftpd/pureftpd.pdb database For a 1:10 ratio, use -q 1 -Q 10 To allow access only between 9 am and 6 pm, use -z 0900-1800
[root@xavi ~]# pure-pw //關鍵一步 [root@xavi ~]# touch /data/ftp/123.txt [root@xavi ~]# lftp ftp_usera@127.0.0.1 口令: lftp ftp_usera@127.0.0.1:~> ls drwxr-xr-x 2 1010 pure-ftp 21 Mar 30 10:20 . drwxr-xr-x 2 1010 pure-ftp 21 Mar 30 10:20 .. -rw-r--r-- 1 0 0 0 Mar 30 10:20 123.txt
[root@xavi ~]# chown pure-ftp:pure-ftp /data/ftp/123.txt [root@xavi ~]# lftp ftp_usera@127.0.0.1 口令: lftp ftp_usera@127.0.0.1:~> ls drwxr-xr-x 2 1010 pure-ftp 21 Mar 30 10:20 . drwxr-xr-x 2 1010 pure-ftp 21 Mar 30 10:20 .. -rw-r--r-- 1 1010 pure-ftp 0 Mar 30 10:20 123.txt