我们之前传输文件所用的是rzsz命令,可以简单明了的就把我们所需的文件下载或者上传。但是有个缺陷,不可以上传或者下载大体积的文件。FTP就可以解决这个问题!
1.1 FTP是File Transfer Protocol(文件传输协议,简称文传协议)的英文简称,用于在Internet上控制文件的双向传输。
FTP的主要作用就是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序),并查看远程计算机中的文件,然后把文件从远程计算机复制到本地计算机,或把本地计算机的文件传送到远程计算机。
小公司用的多,大企业不用FTP,因为不安全。大多数的企业使用git。
2.1 安装服务:
[root@zhdy-03 ~]# yum install -y vsftpd
2.2 创建用户:
[root@zhdy-03 ~]# useradd -s /sbin/nologin ftpuser
这儿可能会有疑问,我们创建了这个用户为什么不可以nologin呢?然后我们就用到了如下虚拟用户:
2.3 配置虚拟用户:
[[email protected]03 ~]# vim /etc/vsftpd/vsftpd_login //奇数行为用户名,偶数行为密码,多个用户就写多行!
[[email protected]03 ~]# vim /etc/vsftpd/vsftpd_login
//用户为zhdy密码为asd9577;zhdy02密码为asd9772
zhdy
asd9577
zhdy02
asd95772
2.4 授权:
[[email protected]03 ~]# chmod 600 /etc/vsftpd/vsftpd_login //为了安全,不允许其他人修改,我们设置为600
[[email protected]03 ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db //再次把密码文件转换为计算机可以识别的配置文件。
2.5 创建用户配置目录:
[[email protected]03 ~]# mkdir /etc/vsftpd/vsftpd_user_conf //创建配置文件
[[email protected]03 ~]# cd /etc/vsftpd/vsftpd_user_conf
2.6 创建用户配置文件(一定要和你创建的用户名字一致。)
vim zhdy //加入如下内容
local_root=/home/ftpuser/zhdy //虚拟用户的家目录
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
2.7 配置虚拟用户家目录:
[root@zhdy-03 vsftpd_user_conf]# mkdir /home/ftpuser/zhdy
[root@zhdy-03 vsftpd_user_conf]# touch /home/ftpuser/zhdy/zhdy.txt
[root@zhdy-03 vsftpd_user_conf]# chown -R ftpuser.ftpuser /home/ftpuser/
2.8 配置认证的路径+文件
[[email protected] 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
2.9 配置vsftpd的主配置文件:
[[email protected]03 vsftpd_user_conf]# vim /etc/vsftpd/vsftpd.conf
将anonymous_enable=YES 改为 anonymous_enable=NO
将#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用户的配置路径。
2.10 启动并查看启动状态:
[[email protected]03 vsftpd_user_conf]# systemctl start vsftpd
[[email protected]03 vsftpd_user_conf]# ps aux | grep vsftpd
root 4603 0.0 0.0 52708 564 ? Ss 18:00 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root 4605 0.0 0.0 112664 972 pts/0 S+ 18:00 0:00 grep --color=auto vsftpd
[[email protected]03 vsftpd_user_conf]# netstat -lntp
tcp6 0 0 :::21 :::* LISTEN 4603/vsftpd
21端口FTP; 22端口SSHD; 23端口TELNET
3.1 服务器端安装;
[root@zhdy-03 ~]# yum install -y lftp
3.2 查看服务端的文件
[[email protected]03 ~]# lftp [email protected]127.0.0.1
Password:
lftp [email protected]127.0.0.1:~> ls
输入 ? 是用来查看操作的命令。
使用 get+文件名 来下载一个文件到根目录!
其原理就是:使用sftp模式登录服务器,然后我们可以按照正常的操作,进入到指定的目录,直接:
sftp:/tmp> cd /usr/local/src/
sftp:/usr/local/src> ls
drwxr-xr-x 7 root root 4096 Aug 19 21:53 .
drwxr-xr-x 15 root root 172 Aug 19 13:48 ..
-rw-r--r-- 1 root root 314581668 Jul 25 21:28 mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
-rw-r--r-- 1 root root 15732452 Jun 7 16:00 php-7.1.6.tar.bz2
drwxrwxr-x 18 justin justin 4096 Aug 18 22:18 php-7.1.6
-rw-r--r-- 1 root root 981093 Aug 18 22:55 nginx-1.12.1.tar.gz
drwxr-xr-x 9 mysql mysql 186 Aug 19 13:46 nginx-1.12.1
-rw-r--r-- 1 root root 8641990 Aug 19 07:32 wordpress-4.8.1-zh_CN.tar.gz
drwxr-xr-x 5 nobody nfsnobody 4096 Aug 4 15:54 wordpress
-rw-r--r-- 1 root root 10636707 Aug 19 07:35 Discuz_X3.4_SC_GBK_0802.zip
-rw-r--r-- 1 root root 10094435 Aug 19 17:09 DedeCMS-V5.7-GBK-SP2-Full.tar.gz
drwx------ 4 501 20 33 Apr 30 2012 DedeCMS-V5.7-GBK-SP2-Full
drwxr-xr-x 12 root root 4096 Aug 2 11:07 upload
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.08 seconds
然后回到桌面就找到我们下载的nginx.tar.gz