• centos7.3 vsftpd 多用户配置


    1. 安装vsftpd及pam认证服务软件

    yum  install vsftpd*  -y
    yum install pam* libdb-utils libdb* --skip-broken -y
    #设置开机启动
    systemctl enable vsftpd.service

    #启动
    systemctl start vsftpd.service

    2. 配置/etc/vsftpd/vsftpd.conf 文件

    listen=YES    #若设定为 YES 表示 vsftpd 是以 standalone 的方式来启动的
    anonymous_enable=NO #静止匿名登录
    local_enable=YES #设定本地用户可以访问
    local_umask=022 #设定上传后文件的权限掩码
    dirmessage_enable=YES #设定开启目录标语功能
    use_localtime=YES
    xferlog_enable=YES #设定开启日志记录功能
    connect_from_port_20=YES #设定端口20进行数据连接
    
    chroot_local_user=YES #禁止用户访问除主目录以外的目录
    local_root=/data/vsftpd #访问的目录
    ascii_upload_enable=YES
    ascii_download_enable=YES #设定支持ASCII模式的上传和下载功能
    
    pam_service_name=vsftpd #设定,启用pam认证
    guest_enable=YES #启动虚拟用户
    guest_username=vsftpd #虚拟用户使用的系统用户名
    user_config_dir=/etc/vsftpd/vsftpd_user_conf #虚拟用户使用的配置文件目录
    virtual_use_local_privs=YES #虚拟用户和本地用户有相同的权限
    allow_writeable_chroot=YES #只能访问自身所属目录,否则会有 500 错误

    3. 创建虚拟用户

    创建vsftpd系统用户
    #useradd vsftpd -d /data/vsftpd -s /sbin/nologin
    #chown -R vsftpd:vsftpd /data/vsftpd
    
    填写用户名good和密码123,其它依次填写
    #vim /etc/vsftpd/ftpuser.txt
    good
    123
    生成数据库文件
    #db_load -T -t hash -f /etc/vsftpd/ftpuser.txt /etc/vsftpd/vsftpd_login.db/etc/pam.d/下创建配置vsftpd的数据库pam认证文件vsftpd,其它注释或删掉
    #vim /etc/pam.d/vsftpd
    auth       required     pam_userdb.so db=/etc/vsftpd/vsftpd_login
    account    required     pam_userdb.so db=/etc/vsftpd/vsftpd_login
    配置good用户
    #mkdir -p /etc/vsftpd/vsftpd_user_conf
    #vim /etc/vsftpd/vsftpd_user_conf/good
    local_root=/data/vsftpd/good
    write_enable=YES
    #mkdir -p /data/vsftpd/good

    4. 配置selinux

    查看 selinux配置 
    [root@localhost ~]# getsebool -a | grep ftpd
    ftpd_anon_write --> off
    ftpd_connect_all_unreserved --> off
    ftpd_connect_db --> off
    ftpd_full_access --> off
    ftpd_use_cifs --> off
    ftpd_use_fusefs --> off
    ftpd_use_nfs --> off
    ftpd_use_passive_mode --> off
    使能ftpd_full_access
    #setsebool -P allow_ftpd_full_access 1
    需要防火墙添加FTP服务。
    #firewall-cmd --permanent --zone=public --add-service=ftp
    #firewall-cmd --reload

    5. 重启vsftpd并测试

    [root@localhost ~]#systemcl restart vsftpd.service
    
    [root@localhost ~]# ftp localhost
    Trying ::1...
    ftp: connect to address ::1拒绝连接
    Trying 127.0.0.1...
    Connected to localhost (127.0.0.1).
    220 (vsFTPd 3.0.2)
    Name (localhost:root): good
    331 Please specify the password.
    Password:
    230 Login successful.
    Remote system type is UNIX.
    Using binary mode to transfer files.
    ftp> ls
    227 Entering Passive Mode (127,0,0,1,166,74).
    150 Here comes the directory listing.
    -rwxrwxrwx    1 1001     1001            0 Sep 18 09:17 good
    -rwxrwxrwx    1 1001     1001            0 Sep 18 09:23 test2
    226 Directory send OK.
    ftp>

    6. 虚拟用户权限配置

    管理员权限
    local_root=/data/vsftpd
    anon_world_readable_only=NO
    write_enable=YES
    anon_mkdir_write_enable=YES
    anon_upload_enable=YES
    anon_other_write_enable=YES
    
    只能读写不能修改删除
    local_root=/data/vsftpd/good
    anon_world_readable_only=NO
    write_enable=YES
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=NO
    virtual_use_local_privs=NO
    
    只能读
    local_root=/data/vsftpd
    anon_world_readable_only=NO

    参考文献:

    https://www.cnblogs.com/chenbaoli/p/8195697.html

    https://blog.csdn.net/xujin12368/article/details/80920246

    http://www.cnblogs.com/fengdejiyixx/p/9324689.html

    https://blog.csdn.net/programer_bei/article/details/52333586

  • 相关阅读:
    nagios监控oracle 表空间
    Oracle报错,ORA-28001: 口令已经失效
    存储基本知识【转载】
    通过shell查找访问日志中访问量最大的ip
    《Java程序设计》 第二周学习任务
    IntelliJ IDEA 激活
    破解某绝地和某DNF辅助
    SMMS:一个不错的免费图床
    Linux使用ASF云挂卡(挂游戏时长)
    Centos7手动编译安装apache
  • 原文地址:https://www.cnblogs.com/okshall/p/9668004.html
Copyright © 2020-2023  润新知