zoukankan      html  css  js  c++  java
  • Linux-ftp虚拟用户配置

    云服务器ESC 部署vsftpd 虚拟用户

    说明:云服务器部署和本地服务器部署一样,都需要开通指定的相应端口,只不过云服务器需要在安全组规则中打开相应的端口允许通过。

    环境说明:

    对应的用户对应不同的密码,对应不同的数据目录,如下图:

    具体步骤

     1) 安装软件

    # yum -y install vsftpd

    2) 创建相应的ftp数据目录

    # mkdir -p /opt/ftp/{come,out}

    3) 创建一个用户提供给虚拟用户使用

    # useradd -s /sbin/nologin virtual

    4) 将ftp数据目录设置成virtual用户

    # chown virtual. /opt/ftp/ -R
    # ll /opt/ftp/
    total 8
    drwxr-xr-x 2 virtual virtual 4096 Apr 17 12:07 come
    drwxr-xr-x 2 virtual virtual 4096 Apr 17 12:07 out

    5) 创建虚拟帐号与密码的文本文件(一行账号,一行密码, 注意不要有多余的空格)

    # vim /etc/vsftpd/logins.txt
    ftpComeSsbq
    ftp_come_#@UkieO9
    ftpOutSsbq
    ftp_out_#@45oUkie

    6) 将创建好的密码文件txt格式转换db格式

    # db_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/login.db

    7) 定义db文件的权限

    # chmod 600 /etc/vsftpd/login.db

    8) 定义pam认证文件(注意:db=/etc/vsftpd/login 文件就是上面生成的login.db文件;省略后缀.db)

    # vim /etc/pam.d/ftp
    auth  required  /lib64/security/pam_userdb.so  db=/etc/vsftpd/login
    account  required  /lib64/security/pam_userdb.so  db=/etc/vsftpd/login

    9) 配置vsftpd主配置文件 (guest_username=virtual 对应上面创建的用户)

    # vim /etc/vsftpd/vsftpd.conf
    #禁止匿名登录FTP服务器
    anonymous_enable=NO
    #允许本地用户登录FTP服务器
    local_enable=YES
    #可以上传(全局控制) 
    write_enable=NO
    #匿名用户可以上传
    anon_upload_enable=NO
    #匿名用户可以建目录
    anon_mkdir_write_enable=NO
    #匿名用户修改删除
    anon_other_write_enable=NO
    #全部用户被限制在主目录
    chroot_local_user=YES
    
    #2.3.5版本之后,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了,需新增加下面这条配置
    #allow_writeable_chroot=YES
    
    #将所有用户看成虚拟用户guest
    guest_enable=YES
    #指定虚拟用户,也就是将guest用户映射到virtual用户
    guest_username=virtual
    #指定为独立服务
    listen=YES
    #指定监听的端口
    listen_port=21
    #开启被动模式
    pasv_enable=YES
    #FTP服务器公网IP
    pasv_address=<FTP服务器公网IP>
    #设置被动模式下,建立数据传输可使用port范围的最小值
    pasv_min_port=10000
    #设置被动模式下,建立数据传输可使用port范围的最大值
    pasv_max_port=10088
    #是否允许匿名用户下载全局可读的文件
    anon_world_readable_only=NO
    #指定虚拟用户配置文件的路径
    user_config_dir=/etc/vsftpd/user_conf

    10) 创建上面配置文件中指定的子配置文件目录 user_conf

    # mkdir /etc/vsftpd/user_conf

    11) 定义 ftpComeSsbq 用户的配置文件(注意:这里创建配置用户配置文件的文件名必须与上面创建的用户名一致)

    # vim /etc/vsftpd/user_conf/ftpComeSsbq
    write_enable=YES
    anon_world_readable_only=no
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES
    anon_umask=022 local_root
    =/opt/ftp/come

    12) 定义 ftpOutSsbq 用户的配置文件

    # vim /etc/vsftpd/user_conf/ftpOutSsbq
    write_enable=YES
    anon_world_readable_only=no
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES
    anon_umask=022 local_root
    =/opt/ftp/out

    13) 启动vsftpd

    # service vsftpd start

    14) 测试

    • 使用 lftp 测试,格式为:lftp 用户名:密码@ftp地址:传送端口(默认21端口,如果是21端口则可以不用添加)
      [root@srt_aliyun_39 ~]# lftp ftpComeSsbq:ftp_come_#@UkieO9@120.79.xx.xx
      lftp ftpComeSsbq@120.79.xx.xx:~> pwd
      ftp://ftpComeSsbq:ftp_come_#%40UkieO9@120.79.xx.xx
      lftp ftpComeSsbq@120.79.xx.xx:~> mkdir test
      mkdir ok, `test' created            
      lftp ftpComeSsbq@120.79.xx.xx:/> ls
      drwx------    2 506      506          4096 Apr 17 05:32 test
      lftp ftpComeSsbq@120.79.xx.xx:/> rm -rf test/
      rm ok, `test/' removed 
    • 使用 windows 文件夹测试 格式:ftp:ftp地址 (说明:打开ftp被动模式,控制面板 > 网络和Internet > Internet 选项 > 高级 。勾选 启用 FTP 文件夹视图,勾选 使用被动 FTP。

      

    • 浏览器测试:ftp://ftp地址

      

    至此就完成了 ftp 虚拟用户的部署。

  • 相关阅读:
    堆栈的链表方式实现
    堆栈的公式化描述实现
    队列的链表方式实现
    队列的实现:公式化描述
    二叉树实现:公式化描述
    算法学习笔记(四):合并排序
    编译caffe报错:_ZN5boost16exception_detail10bad_alloc_D2Ev
    druid的安装
    Error : Must specify a primary resource (JAR or python or R file)
    zip和zippartition总结
  • 原文地址:https://www.cnblogs.com/yanjieli/p/10723108.html
Copyright © 2011-2022 走看看