• ftp安装和虚拟用户创建(终于搞清楚了)


    安装

     一.安装

      sudo apt-get install vsftpd

     

    二.查看安装结果

      安装完毕,检查vsftpd进程是否已启动,可以查看进程或者查看监听端口  

     1 ps  -eaf|grep  vsftpd
     2 
     3 tony@T:~$ ps -eaf | grep vsftpd
     4 
     5 root      2244     1  0 21:08 ?        00:00:00 /usr/sbin/vsftpd
     6 
     7 tony      2408  2104  0 21:11 pts/0    00:00:00 grep --color=auto vsftpd
     8 
     9 netstat -tnl | grep :21
    10 
    11 tony@T:~$ netstat -tnl | grep :21
    12 
    13 tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN
    14 
    15 端口21正在被监听
    16 
    17   

     三. 尝试匿名用户登录

      安装完后不用做任何配置既可用匿名方式进行访问,默认的ftp文件夹为/srv/ftp。

      登录可以在浏览器中,文件夹输入框中以及类型windows/Linux终端中进行测试。

      建议使用windows/Linux终端测试,失败了会有错误输出,可以根据错误进行调试。

      更改配置文件vsftpd.conf

     anonymous_enable=YES

      匿名登录,用户名称ftp,密码不输入,直接回车

     1 C:UsersTony>ftp 192.168.1.108
     2 
     3 连接到 192.168.1.108 4 
     5 220 (vsFTPd 2.2.2)
     6 
     7 用户(192.168.1.108:(none)): ftp
     8 
     9 331 Please specify the password.
    10 
    11 密码:
    12 
    13 230 Login successful.

      登录到的目录就是/srv/ftp目录,在里面的文件就能够查看到

     四. 使用ubuntu的账户登录

      此时就访问ftp账户,默认是linux的账户,使用cmd中登录。

      需要注意的是,ftp服务器端文件路径是用户的家目录

     1 C:UsersTony>ftp 192.168.1.108
     2 
     3 连接到 192.168.1.108 4 
     5 220 (vsFTPd 2.2.2)
     6 
     7 用户(192.168.1.108:(none)): tony
     8 
     9 331 Please specify the password.
    10 
    11 密码:
    12 
    13 230 Login successful.

      五. 在ubuntu中,vsftpd的主要配置文件分布如下:

      /etc/vsftpd.conf      vsftpd服务器的配置文件
    
      /usr/sbin/vsftpd      vsftpd服务器的进程文件
    
      /etc/pam.d/vsftpd     vsftpd服务器的PAM接口配置文件
    
      /var/ftp              vsftpd服务器匿名用户的工作目录
    

      六. vsftpd的开始、关闭和重启

      sudo /etc/init.d/vsftpd  start   #开始
    
      sudo /etc/init.d/vsftpd  stop    #关闭
    
      sudo /etc/init.d/vsftpd  restart #重启

    创建虚拟账户

     一.安装生成虚拟帐号数据库工具db

      sudo apt-get install db4.8-util

     二. 更改vsftp.conf的配置

      修改配置之前,先备份当前配置

      sudo cp /etc/vsftp.conf /etc/vsftp.conf.old

      配置的服务器中 vsftpd.conf的参数使用如下:

     1   listen=YES
     2 
     3   #listen_ipv6=YES
     4 
     5   anonymous_enable=NO //允许匿名用户访问,若禁止使用NO
     6 
     7   local_enable=YES    //允许本地用户访问,若禁止则使用NO
     8 
     9   write_enable=YES //表示是否允许本地用户有上传权限的,YES表示可以,NO表示禁止,也取决于客户端连接时使用的客户端工具
    10 
    11   #local_umask=022 //设置本地用户上传建立文件时的权限掩码
    12 
    13   #anon_upload_enable=YES //匿名用户上传文件使能
    14 
    15   #anon_mkdir_write_enable=YES //匿名用户可以创建目录
    16 
    17   dirmessage_enable=YES //用户切换进入目录时显示.message(如果存在)文件的内容
    18 
    19   message_file=Welcome
    20 
    21   xferlog_enable=YES      //是否开启传输日志的
    22 
    23   connect_from_port_20=YES ////连接控制端口为20
    24 
    25   chown_uploads=YES
    26 
    27   chown_username=ftp
    28 
    29   chroot_local_user=YES //所有的本地用户都被锁定在家目录下
    30 
    31   chroot_list_enable=YES
    32 
    33   chroot_list_file=/etc/vsftpd/vsftpd.chroot_list
    34 
    35   xferlog_file=/var/log/vsftpd.log
    36 
    37   xferlog_std_format=YES
    38 
    39   idle_session_timeout=600
    40 
    41   data_connection_timeout=120 //#数据连接的超时时间
    42 
    43   #nopriv_user=ftpsecure
    44 
    45   #async_abor_enable=YES
    46 
    47   ascii_upload_enable=YES
    48 
    49   ascii_download_enable=YES
    50 
    51   ftpd_banner=Welcome to blah FTP service. //login欢迎信息
    52 
    53   #deny_email_enable=YES
    54 
    55   max_clients=10
    56 
    57   max_per_ip=5
    58 
    59   local_max_rate=256000
    60 
    61   #hide_ids=YES
    62 
    63   idle_session_timeout=3000
    64 
    65   guest_enable=YES
    66 
    67   guest_username=ftp
    68 
    69   user_config_dir=/etc/vsftpd/vsftpd_user_conf
    70 
    71   pam_service_name=vsftpd.vu
    72 
    73   

       三. 建立各账户的home目录

      在/home目录建立ftp的账户ftpdir目录

    1 cd /home/ftp/
    2 
    3   sudo  mkdir  ftpdir

      然后在ftpdir目录下创建admin, tony目录

       cd  ftpdir
       sudo  mkdir admin tony

      四.为虚拟用户创建本地系统用户

      虚拟用户家目录为/home/ftpdir, 用户登录终端设为/bin/false(即使之不能登录系统)

      sudo useradd ftp -d /home/ftpdir -s /bin/false
      sudo chown -R ftp:ftp /home/ftpdir

      五. 创建虚拟用户数据库

      新建loguser.txt文件,

      sudo vi /home/loguser.txt

      里面输入虚拟用户名和密码,格式如下

      admin
    
      admin
    
      tony
    
      tony

      注意不要多空格和空行,其中奇数行为用户名,偶数行为密码。

      最后一行需要回车(否则建立数据库文件时无法识别最后一行,导致报奇数行错误)。

      新建一个文件夹/etc/vsftpd,放置配置文件
    
      sudo  mkdir  /etc/vsftpd
    
      然后执行
    
      sudo db4.8_load -T -t hash -f /home/loguser.txt /etc/vsftpd/vsftpd_login.db
    
      最后设置一下数据库文件的访问权限
    
      sudo chmod 600 /etc/vsftpd/vsftpd_login.db

     六. 配置PAM文件

     1   新建/etc/pam.d/vsftpd.vu,并编辑,
     2 
     3   sudo touch /etc/pam.d/vsftpd.vu
     4 
     5   sudo vi /etc/pam.d/vsftpd.vu
     6 
     7   输入内容如下:
     8 
     9   auth  required  /lib/security/pam_userdb.so  db=/etc/vsftpd/vsftpd_login
    10 
    11   account  required  /lib/security/pam_userdb.so  db=/etc/vsftpd/vsftpd_login

       七.新建etc/vsftpd /vsftpd_user_conf文件夹

      sudo  mkdir  /etc/vsftpd/vsftpd_user_conf
    
      现在,我们要把各个用户的配置文件放到目录/etc/vsftpd/vsftpd_user_conf中
    
      cd  /etc/vsftpd/vsftpd_user_conf
    
      sudo touch admin tony
    
      

       八. 配置admin虚拟用户

       权限:上传,下载删除,重命名.

     1   sudo vi /etc/vsftpd/vsftpd_user_conf/admin
     2 
     3   里面添加
     4 
     5   write_enable=YES
     6 
     7   anon_world_readable_only=NO
     8 
     9   anon_upload_enable=YES
    10 
    11   anon_mkdir_write_enable=YES
    12 
    13   anon_other_write_enable=YES
    14 
    15   local_root=/home/ftpdir
    16 
    17   

    九. 配置tony虚拟用户

      权限:上传,下载

     1   sudo vi /etc/vsftpd/vsftpd_user_conf/tony
     2 
     3   里面添加
     4 
     5   write_enable=YES
     6 
     7   anon_world_readable_only=NO
     8 
     9   anon_upload_enable=YES
    10 
    11   anon_mkdir_write_enable=NO
    12 
    13   anon_other_write_enable=NO
    14 
    15   local_root=/home/ftpdir/tony

      

      十. 新建/etc/vsftpd/vsftpd.chroot_list

    1   sudo touch /etc/vsftpd/vsftpd.chroot_list
    2 
    3   sudo vi /etc/vsftpd/vsftpd.chroot_list
    4 
    5   里面添加
    6 
    7   admin

    在按照以上的过程去安装,有可能Linux的数据源里面根本就找不到对应的安装包,可以通过手动安装的方法;网上找了篇db4的安装问题,分享一下:

    1、下载安装文件:

      下载地址直达:http://cz.archive.ubuntu.com/ubuntu/pool/universe/d/db4.8/

    2、dpkg - i  db4.8-util_4.8.30-11ubuntu1_amd64.deb

    即可

    命令使用:这里针对Vsftpd虚拟用户的创建

    sudo db4.8_load -T -t hash -f /home/user.txt /etc/vsftpd_login.db

    当然也有命令安装db的方法:

    已解决了  sudo apt-get install  db-util
    
    
      在这又不得不来句粗口,尼玛,之前找了那么久的解决办法,原来是没有找对方法,网上一大堆也是无用的,有些方法更本用不了,回头想想当你的知识积累起来了之后,你就会忽然想起来这问题的解决方法,自己都会被自己惊呆,当年这么简单的问题居然都不会,当年真是傻呆笨啊!
    总结:知识积累是多么地重要啊!
  • 相关阅读:
    前端之CSS
    前端之HTML
    数据库作业案例
    django进阶版4
    django进阶版3
    django进阶版2
    django初步了解4
    django进阶版1
    django初步了解3
    django初步了解2
  • 原文地址:https://www.cnblogs.com/cqlb/p/9540747.html
Copyright © 2020-2023  润新知