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创建点文件

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

     错误之处以及解决如下:

    空格删除后,重启:

  • 相关阅读:
    Java实现 计蒜客 拯救行动
    Java实现 计蒜客 拯救行动
    Java实现 LeetCode 174 地下城游戏
    Java实现 LeetCode 174 地下城游戏
    Java实现 LeetCode 174 地下城游戏
    Java实现 LeetCode 173 二叉搜索树迭代器
    Java实现 LeetCode 173 二叉搜索树迭代器
    Visual Studio的SDK配置
    怎样使用CMenu类
    mfc menu用法一
  • 原文地址:https://www.cnblogs.com/creater-wei/p/10011512.html
Copyright © 2011-2022 走看看