zoukankan      html  css  js  c++  java
  • FTP服务的搭建

     

     FTP两种模式
    主动模式服务器向客户端敲门,然后客户端开门 
    被动模式客户端向服务器敲门,然后服务器开门

    传输模式:可以是文本模式,也可以是二进制模式,二进制模式更适合传输图片等非文本字符的文件

    匿名用户:不需要输入用户(多人共享一个
    本地用户:本地的Linux登陆用户(每个共享用户的家目录
    虚拟用户:不同于本地用户,可以创建一个匿名用户的FTP,Linux没有关系

    FTP匿名用户服务搭建

    首先查看是否有vsftpd命令,rpm -qa | grep vsftpd  如若没有则需要yum安装: yum -y install vsftpd

    yum装完vsftpd自然就有/var/ftp/pub的共享目录 
    属主是root别的用户没有办法读写,所以需要把pub属主换成ftp,ftp程序用户系统默认就有,不需要自行创建。

    ftp目录下pub目录修改属主:

      chown   ftp   /var/ftp/pub

     

    安装完vsftpd自然就有/etc/vsftpd/vsftpd.conf配置文件,接下来就有修改配置文件了,为了安全先备份一份.

    cp    /etc/vsftpd/vsftpd.conf{,.bak}

    修改配置文件

    vim /etc/vsftpd/vsftpd.conf

    27行 #anon_upload_enable=YES  中 #去掉

    31行  #anon_mkdir_write_enable=YES 中#去掉

    sed -i 's/#anon_mkdir_write_enable=YES/anon_mkdir_write_enable=YES/g'  vsftpd.conf

    手动添加一行  anon_umask=022

     

    服务端ftp配置完成后启动ftp服务,启动完成后检查一下是否成功

    [root@LW_ftp_server vsftpd]# service vsftpd start

     给服务端,pub/ 共享目录下创建一个文件,(随意创建):

    客户端只需要安装ftp命令就可以

    [root@LW_ftp_client ~]# yum -y install ftp

     

    ftp客户端登陆服务端,匿名用户名就是ftp,没有密码为空,所以直接回车

     

     登录客户端,查看是否下载成功:

    ftp里put代表上传命令,也只能上传客户端当前目录里的文件,不能是绝对路径上传

     有问题此处,暂时跳过,解决。。。。。。

    FTP本地用户服务搭建

    首先先将配置完成后的匿名用户备份,在把初始的配置文件复制回来

    [root@LW_ftp_server vsftpd]# cp vsftpd.conf.bak vsftpd.conf

    sed -i 's/#chroot_local_user=YES/chroot_local_user=YES/g' vsftpd.conf

     

    因为是ftp本地用户服务所以需要先创建一个普通用户和密码用客户端ftp登陆服务端输入yunjisuan账号和密码

    FTP客户端连接服务器端:ftp 192.168.200.150

    [root@LW_ftp_client ~]# ftp 192.168.200.150
    Connected to 192.168.200.150 (192.168.200.150).
    220 (vsFTPd 2.2.2)
    Name (192.168.200.150:root): weiwei
    331 Please specify the password.
    Password:
    500 OOPS: cannot change directory:/home/weiwei
    Login failed.

    连接失败:解决方案如下------(百度)

    FTP服务端输入

    [root@LW_ftp_server liu]# setsebool ftp_home_dir 1

    [root@LW_ftp_server liu]#  getsebool -a | grep ftp

    [root@LW_ftp_server liu]#  service vsftpd restart

    FTP客户端重新登录:

    FTP客户端再次连接服务器端:ftp 192.168.200.150

    客户端测试:注意客户端共享的目录是 服务端 程序用户的家目录:/home/weiwei

    FTP虚拟用户服务搭建

    首先需要把ftp本地用户服务备份,在把源配置文件复制回来

    [root@LW_ftp_server weiwei]# cd /etc/vsftpd/

    [root@LW_ftp_server vsftpd]# mv vsftpd.conf vsftpd.conf.local

    [root@LW_ftp_server vsftpd]# cp vsftpd.conf.bak vsftpd.conf

    先查看系统是否有db_load命令,没有则需要安装ftp虚拟用户,首先需要在/etc/vsftpd下创建密码文件:

    [root@LW_ftp_server weiwei]# cd /etc/vsftpd/

    [root@LW_ftp_server vsftpd]# vim vusers.list

     

    创建完密码文件需要弄db_load命令转换成数据文件,-T允许非程序使用该数据库 -t指定算法 hash -f代表加密,因为是密码,为了增加安全性需要给chmod 600 vusers.db权限

     

    [root@LW_ftp_server vsftpd]# db_load -T -t hash -f vusers.list vusers.db

     

    [root@LW_ftp_server vsftpd]# chmod 600 vusers.db

    首先创建虚拟映射账号,因为指定了家目录所以给手动创建一个家目录并赋上755权限

    [root@LW_ftp_server vsftpd]# useradd -d /var/ftproot -s /sbin/nologin virtual

    [root@LW_ftp_server vsftpd]# mkdir -p /var/ftproot

    [root@LW_ftp_server vsftpd]# chmod 755 /var/ftproot

    [root@LW_ftp_server vsftpd]# ll -d /var/ftproot

    drwxr-xr-x. 2 virtual virtual 4096 Nov 25 00:17 /var/ftproot

    手动建立此pam认证文件如下

    [root@LW_ftp_server vsftpd]# cd /etc/pam.d/

    [root@LW_ftp_server pam.d]# vim /etc/pam.d/vsftpd.vu

       auth required pam_userdb.so db=/etc/vsftpd/vusers

    account required pam_userdb.so db=/etc/vsftpd/vusers

    配置完重启服务,就可以用客户端进行ftp登陆,因为是指定创建的家目录,所以需要去/var/ftproot创建点文件

    重新启动服务:但是报错了

     错误之处以及解决如下:

    空格删除后,重启:

  • 相关阅读:
    2020/10/25周总结
    软件需求---河北省重大需求进度报告05
    软件需求---河北省重大需求进度报告04
    软件需求---河北省重大需求进度报告03
    软件需求---河北省重大需求进度报告02
    解决js字符串传参未定义的问题
    软件需求---河北省重大需求进度报告
    2020/10/18周总结
    环信EaseUI集成IM即时通信
    第十二周学习进度总结
  • 原文地址:https://www.cnblogs.com/creater-wei/p/10011512.html
Copyright © 2011-2022 走看看