美文网首页Java技术日志
Ubuntu16.04环境下使用vsftpd搭建FTP服务器

Ubuntu16.04环境下使用vsftpd搭建FTP服务器

作者: 梁朋举 | 来源:发表于2017-12-05 21:02 被阅读20次

    1.安装vsftpd

    安装vsftp软件包

    #apt-get install vsftpd    
    

    卸载vsftpd包

    #apt-get remove vsftpd    
    

    vsftpd命令 启动start 查看状态status 停止stop 重启restart

    # /etc/init.d/vsftpd restart   
    # service vsftpd restart
    # systemctl restart vsftpd
    # service vsftpd start
    # service vsftpd status
    # service vsftpd stop
    

    2.配置vsftpd

    root@ubuntu:/etc# vim vsftpd.conf

    local_enable=YES
    是否允许本地用户访问,就是linux本机中存在的用户,YES允许
    write_enable=YES
    是否开启写模式,YES为开启
    local_umask=022
    新建文件权限,一般设置为022,那么新建后的文件的权限就是777-022=755

    vsftpd.conf

    限制用户只能访问宿主目录配置
    chroot_local_user=YES
    是否限制本地所有用户切换根目录的权限,YES为开启限制,即登录后的用户不能访问ftp根目录以外的目录,NO为不开启限制
    chroot_list_enable=YES
    是否启动限制用户的名单list为允许模式,YES限制了所有用户,可以用这个名单作为白名单,作为例外允许访问ftp根目录以外
    chroot_list_file=/etc/vsftpd.chroot_list
    设置chroot_list文件,文件中用户将不受限制的访问ftp根目录以外的目录,每行一个用户名

    设置chroot_list文件

    用户白名单和黑名单配置
    userlist_deny=NO
    是否启动userlist为禁止模式,YES表示在userlist中的用户禁止登录ftp(黑名单),NO表示黑名单失效
    userlist_enable=YES
    是否启动userlist为通过模式,YES的话只有存在于userlist文件中的用户才能登录ftp(可以理解为userlist是一个白名单),NO的话,白名单失效
    userlist_file=/etc/vsftpd.user_list
    指定vsftpd.user_list文件作为userlist文件,每行一个用户名
    seccomp_sandbox=NO
    该项不配置可能导致530问题

    用户白名单和黑名单配置

    只有存在于userlist文件中的用户才能登录ftp,可以理解为userlist是一个白名单
    root@ubuntu:/etc# vim vsftpd.user_list

    每行一个用户,里面的用户将不受限制的去访问ftp根目录以外的目录
    root@ubuntu:/etc# vim vsftpd.chroot_list


    添加两个ftp用户,禁用telnet登录,只能ftp访问,密码均为fy1234

    3.创建用户并配置权限

    创建用户并指定分组和根目录

    语法:useradd -d 根目录 -s 指定shell脚本 –g ftp分组 –G root分组 用户名
    示例:useradd -d /var/www/html -s /sbin/nologin -g ftpGroup -G root feiyue
    解析:
    useradd 添加用户feiyue
    -d 指定用户根目录为/var/www/html
    -s 指定shell脚本为/sbin/nologin,表示不允许shell登录
    -g 创建分组ftpGroup
    -G 指定root分组

    设置用户密码

    语法: passwd ftp用户名
    示例: passwd feiyue

    设置访问权限

    chown feiyue /var/www/html

    更改用户权限设置

    usermod –s /sbin/nologin feiyue #指定用户feiyue不能telnet登录,只能ftp访问
    usermod –s /bin/bash feiyue #用户feiyue权限恢复正常
    usermod –d /home/feiyue feiyue #更改用户feiyue的主目录为/home/feiyue

    删除用户

    语法:userdel –r 用户名
    示例:userdel –r feiyue #删除用户feiyue
    -r:彻底删除用户,同时删除主目录和邮件目录
    实例:
    添加用户fyftp01并设置宿主目录,同时不允许登录权限

    # useradd -d /var/www/html -s /sbin/nologin fyftp01
    

    4.测试FTP访问

    使用ftp客户端,例如xftp5
    填写主机、端口号、用户名、密码

    ftp连接基本信息

    选项设置,传输类型勾选使用被动模式


    选项设置

    使用linux命令添加用户,重启ftp服务器,测试连接ftp整个过程如下:

    linux命令测试连接ftp


    本订阅号提供Java相关技术分享,从Java编程基础到Java高级技术,从JavaWeb技术基础Jsp、Servlet、JDBC到SSH、SSM开发框架,从REST风格接口设计到分布式项目实战。剖析主流开源技术框架,用亲身实践来谱写深度Java技术日志。“

    欢迎关注 Java技术日志 微信订阅号

    相关文章

      网友评论

        本文标题:Ubuntu16.04环境下使用vsftpd搭建FTP服务器

        本文链接:https://www.haomeiwen.com/subject/iyytixtx.html