zoukankan      html  css  js  c++  java
  • ubuntu16.4安装vsftpd以及用户基本配置

    往往我们的服务器都会部署在linux服务器上,而我开发使用的主机是windows系统,为了更好的模拟服务器环境,我安装了ubuntu的虚拟机,配置好lamp环境进行开发调试(deepin系统下可以直接使用sudo apt-get install lamp一键安装),那我就需要一个ftp来管理我的项目(虽然可以使用sftp,但不推荐),最直接方便的方法就是安装vsftpd(sudo apt-get install vsftpd),安装好后的配置文件是/etc/vsftpd.conf

    安装软件

    # 切换到root账户`sudo su`,安装vsftpd
    apt-get install vsftpd
    # 安装db-util,将用户文件转为数据库文件
    apt-get install db-util
    

    安装好后就要开始配置用户了,最简单的方法是设置配置文件local_enable=YES,允许本地用户登录,这样就可以直接使用自己本地帐户登录了。

    • 新建一个本地账户vsftpd,禁止登录
    # /srv/ftp目录为自定义用户目录
    useradd -d /srv/ftp -s /bin/bash vsftpd
    
    • 将目录的所属者和所属组改为vsftpd
    chown vsftpd:vsftpd /srv/ftp
    
    • 配置ftp用户文件
      我新建了一个文件夹/etc/vsftpd,将ftp有关的用户信息放在这里
    # 首先创建一个用户列表文件,如:userlist.txt,奇数行为用户名,偶数行为密码,添加完用户之后**回车换行**
    user_id_1
    user_passwd_1
    
    # 生成对应的数据库文件
    db_load -T -t hash -f /etc/vsftpd/userlist.txt /etc/vsftpd/vsftp_login.db
    
    # 编辑/etc/pam.d/vsftpd,在开头添加以下两行代码,我们建立的虚拟用户将采用PAM进行验证,这是通过/etc/vsftpd.conf文件中的 语句pam_service_name=vsftpd来启用的
    auth sufficient pam_userdb.so db=/etc/vsftpd/vsftpd_login
    account sufficient pam_userdb.so db=/etc/vsftpd/vsftpd_login
    
    • 编辑/etc/vsftpd.conf
    # 允许本地账户登录
    local_enable=YES
    # 本地账户创建目录及文件的权限,022 表示 文件夹权限755,文件权限644
    local_umask=022
    # 匿名账户创建目录及文件权限,同上(本地测试时,ftp上传文件权限总是600,设置这个选项之后可以正常访问了)
    anon_umask=022
    # 允许写入
    write_enable=YES
     #启用guest
    guest_enable=YES
    #使用虚拟账号形式
    guest_username=vsftpd
    #虚拟账号配置目录
    user_config_dir=/etc/vsftpd
    #对vsftpd的用户使用pam认证
    pam_service_name=vsftpd
    # 允许写入自己的目录(有时候ftp连接时需要)
    allow_writeable_chroot=YES
    
    • 创建本地用户配置文件
    # 创建文件user_id_1,以用户名命名,加入以下内容获得相应权限
    write_enable=YES
    anon_world_readable_only=NO
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES
    local_root=/srv/ftp
    

    配置好后,重启服务/etc/inint.d/vsftpd restart

    命令行输入ftp 127.0.0.1成功会有提示信息,输入虚拟用户名和密码登录,如果提示错误500 OOPS: vsftpd: refusing to run with writable root inside chroot() Login failed.,尝试在/etc/vsftpd.conf加入allow_writeable_chroot=YES,然后输入ls,如果能列出文件就成功了。

    有些东西是在网上借鉴的,由于太多太零散,就不一一列出出处了,感谢前辈们的贡献

  • 相关阅读:
    数据结构----字典及部分知识总结(2018/10/18)
    数据结构----链表的逆置及链表逆置和删除极小值
    Python自学知识点----Day03
    Python自学知识点----Day02
    Python自学知识点----Day01
    课堂笔记及知识点----树(2018/10/24(pm))
    课堂笔记及知识点----栈和队列(2018/10/24(am))
    数据结构----链表的删除和遍历(2018/10/24)
    数据结构----顺序表的增和遍历(2018/10/23)
    知识点回顾及委托(2018/10/22)
  • 原文地址:https://www.cnblogs.com/lantor/p/7600247.html
Copyright © 2011-2022 走看看