您的位置:首页 > 编程语言 > PHP开发

FTP

2020-07-14 06:19 495 查看

注意:该服务器(10.0.1.9),安装的是CentOS7.2,因此系统开机自动启动ftp服务,防火墙放行ftp服务,重启ftp服务以及查看ftp服务运行状态只对CentOS7系列和RHEL7系列有效,除此之外其他的命令在CentOS6系列和RHEL6系列通用。

 

1,先登录服务器,IP地址:10.0.1.9,用户root,密码xxxxxx,在linux下使用下面命令连接

         ssh  root@10.0.1.9 

如果显示”ssh command not found ”,安装ssh服务,使用命令

         yum  install  openssh  -y

第一次链接的过程中会提示是否做指纹识别, 选择yes, 然后输入密码xxxxxx

windows下需要安装xshell, putty, securecrt等工具,设置好要连接的IP地址和用户登录,以windows下安装的xshell为例

1)  点击左上角新建,图标

2)  然后输入主机和名称,名称任意都可以,如图所示

  

3)  在这个界面的左上方选择用户身份验证, 方法选择Password, 然后输入用户名和密码, 如下图所示,选择确定即可.

  

 

2, 因为后续很多命令的使用是需要root权限的,所以如果是以普通用户登陆的需要切换到root,  root用户登陆的则不需要, 可以略过,切换root命令    

         su  -

3, 安装vsftp服务,使用命令

         yum  install  vsftpd  -y

4, 使服务开机自动启动,使用命令

         systemctl  enable  vsftpd.service

5, 备份vsftpd服务的配置文件

         cp  /etc/vsftpd/vsftpd.conf  /etc/vsftpd/vsftpd.conf.bak

6, 设置防火墙使得ftp能够被访问

         firewall-cmd  --permanent --zone=public  --add-service=ftp   #永久开放ftp服务

         firewall-cmd  --reload                                  #重新加载配置

7, 关闭selinux,这个影响ftp服务,使用命令    

         setenforce 0

8, 创建ftp服务使用的一个系统用户,使用命令

         useradd  -d  /home/bernie  -s  /sbin/nologin

9, 创建系统用户对应的虚拟用户, 使用命令 

         touch  /etc/vsftpd/ftp_user.txt

在文件中写入下面两行, 第一行对应的是虚拟用户的名字,第二行是虚拟用户对应的密码。

         taiyouxi1

         2kBK990oqQCZ

10, 将使用的明文用户名和密码文件ftp_user.txt转换为数据库文件并加加密, 使用命令

       db_load  -T  -t  hash  -f   /etc/vsftpd/ftp_user.txt     /etc/vsftpd/vsftpd_login.db

11, 修改/etc/vsftpd/ftp_user.txt  /etc/vsftpd/vsftpd_login.db 文件权限, 使得只有root可以修改和查看, 使用命令

         chown  600   /etc/vsftpd/vsftpd_login.db  /etc/vsftpd/ftp_user.txt

12, 修改vsftpd服务的认证方式,让他以配置的虚拟用户的身份来认证,使用命令

         vim  /etc/pam.d/vsftpd,

进去后按”i”编辑,将其中的auth和account开头的,在开头使用#全部注释, 在auth和account原来位置添加如下内容:

         auth  required  /lib64/security/pam_userdb.so     db=/etc/vsftpd/vsftpd_login

         account  required  /lib64/security/pam_userdb.so   db=/etc/vsftpd/vsftpd_login

13, 修改配置文件 vsftp.conf , 改为以下内容,命令

         vim  /etc/vsftpd/vsftpd.conf  (按”i”编辑)

anonymous_enable=YES     修改为: anonymous_enable=NO  设定不允许匿名访问

write_enable=YES          修改为: write_enable=NO       设定不允许进行写操作

添加下面内容:

xferlog_file=/var/log/vsftpd.log        设定vsftp日志的路径

chroot_local_user=YES               禁止本地用户登出自己的FTP主目录     

guest_enable=YES                   设定启用虚拟用户功能    

guest_username=bernie           指定虚拟用户的宿主用户,这里的bernie既是ftp_user.txt中定义的虚拟用户的宿主用户

user_config_dir=/etc/vsftpd/vsftpd_user_conf  设定虚拟用户个人的文件配置

virtual_use_local_privs=YES                 设定虚拟用户的权限符合他们的宿主用户

allow_writeable_chroot=YES                 添加用户的写权限,和chroot_local_user=YES有关

14, 创建/etc/vsftpd/vsftpd_user_conf目录,和user_config_dir=/etc/vsftpd/vsftpd_user_conf这个文件,使用命令

        mkdir   /etc/vsftpd/vsftpd_user_conf

在这个目录下建立文件,这里以建立的虚拟用户的名字命名,使用命令

        touch /etc/vsftpd/vsftpd_user_conf/taiyouxi1

在这个文件下写入下面内容,下面设置使得taiyou1这个用户登陆后具有所有的(读,写,删除)权限使用命令

        vim   /etc/vsftpd/vsftpd_user_conf/taiyouxi1   (按”i”编辑)

write_enable=YES

anonymous_enable=NO

anon_world_readable_only=NO   只要宿主用户对文件有读权限,就可以下载

anon_upload_enable=YES       

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

local_umask=022

download_enable=YES

local_root=/data/bernie

15, 设定ftp登陆后文件的路径会在/data/bernie ,先创建bernie目录,再设置bernie的用户所有者和所属组为bernie,使用命令 

        mkdir   /data/bernie

        chown   bernie.bernie   /data/bernie   -R

16, 编辑完成以后需要对服务进行重启才能生效,使用命令

        systemctl  restart  vsftpd.service 

查看是否重启成功以及服务运行的状态,使用命令

        Systemctl  status   vsftpd.service

17,  登陆机器完成搭建服务了以后,这个时候是root用户,如果本身就是root用户登录的输入”exit”,按回车 退出,或者在键盘上按”ctrl”加”d”退出,如果本身是以普通用户登陆进入切换到root用户的,需要输入”exit”按回车,再输入”exit”按回车。

18,  在别的机器(linux)上登陆ftp服务时使用命令

        lftp taiyouxi1:2kBK990oqQCZ@10.0.1.9

如果没有lftp命令,自行安装, 命令

        yum  install  lftp  -y

Windows上想要登陆ftp服务,打开我的电脑,在这个位置输入下图所示的内容

 

输入完成后按回车键

在弹出的页面输入给定的ftp服务的用户和密码,然后登陆

转载于:https://my.oschina.net/u/2313186/blog/839704

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: