centos7 vsftp 虚拟账号,限制目录,上传下载权限

    (1)查看是否已经安装了vsfptd:  
          vsftpd -v

    (2)下载安装:                   
          yum -y install vsftpd

    (3)创建:chroot_list 文件:      
          touch /etc/vsftpd/chroot_list

    (4)安装 FTP 虚拟用户需要用到的软件及认证模块:  
          yum install pam* db4* --skip-broken –y

    (5)创建一个ftpusers.txt文件: 
          vim /etc/vsftpd/ftpusers.txt

    (6)写入账号及密码,用来保存虚拟用户账号及密码信息,格式是:比如第1行为账号,第2行就是秘密
        testftp
        12345
    
    (7)修改权限
          chmod 700 /etc/vsftpd/ftpusers.txt

    (8)生成虚拟用户数据库文件(注意:以后对虚拟用户的增删操作完之后需要再次执行此命令,使其生成新的数据文件):
          db_load -T -t hash -f /etc/vsftpd/ftpusers.txt /etc/vsftpd/vsftpd_login.db

    (9)修改权限:
          chmod 700 /etc/vsftpd/vsftpd_login.db

    (10)设置PAM验证文件,并制定虚拟用户数据库文件进行读取,对原验证文件备份后进行更改:
          cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.back
     
    (11)修改/etc/pam.d/vsftpd文件:vim /etc/pam.d/vsftpd
          在最顶部添加以下两项:
            auth       sufficient   pam_userdb.so db=/etc/vsftpd/vsftpd_login
            account    sufficient   pam_userdb.so db=/etc/vsftpd/vsftpd_login

    (12)创建虚拟用户配置目录,用来单独配置不同虚拟用户访问不同目录等。
            mkdir /etc/vsftpd/vsftpd_user_conf

    (13)创建一个与虚拟用户同名称的文件,用来单独配置这个虚拟用户的访问目录。
            vim /etc/vsftpd/vsftpd_user_conf/test1
            写入配置内容:
            local_root=/home/www/test1     #根据实际来写,目录不存在需创建
            write_enable=YES
            anon_world_readable_only=YES
            anon_upload_enable=YES
            anon_mkdir_write_enable=YES
            anon_other_write_enable=YES

    (14) 创建 vsftpd 映射本地用户:
           所有的 FTP 虚拟用户需要使用一个系统用户,这个系统用户不需要密码,也不需要登录。 主要用来做虚拟用户映射使用。
            useradd -d /home/www -s /sbin/nologin ftpuser

    (15) 设置主目录权限(否则无法写入)
            chown -R ftpuser:ftpuser /home/www


    (16) 备份vsftpd.conf文件:
            cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.back
           
           清空vsftpd.conf内容:
            > /etc/vsftpd/vsftpd.conf

          写入以下内容
            vim /etc/vsftpd/vsftpd.conf

            anonymous_enable=NO             # 禁止匿名登录
            local_enable=YES
            write_enable=YES
            local_umask=022
            dirmessage_enable=YES
            xferlog_enable=YES
            connect_from_port_20=YES
            xferlog_file=/var/log/vsftpd.log
            idle_session_timeout=600
            data_connection_timeout=6
            listen=YES
            listen_port=21
            allow_writeable_chroot=YES
            local_root=/home/www
            chroot_local_user=YES
            chroot_list_enable=YES
            chroot_list_file=/etc/vsftpd/chroot_list
            userlist_enable=YES
            userlist_deny=YES
            userlist_file=/etc/vsftpd/user_list
            pasv_enable=YES
            pasv_min_port=10240
            pasv_max_port=10260
            pam_service_name=vsftpd
            guest_enable=YES
            guest_username=ftpuser
            virtual_use_local_privs=YES
            user_config_dir=/etc/vsftpd/vsftpd_user_conf
            reverse_lookup_enable=NO

  (17)添加用户,加入组,设置访问目录,不能telnet登录:
        useradd -d /opt/test_ftp -g ftp -s /sbin/nologin testftp


   (18)允许用户修改密码,但是又没有telnet登录系统的权限:
        usermod -s /usr/bin/passwd testftp              //用户telnet后将直接进入改密界面

   (19)启动服务: service vsftpd start 

   (20) 加入开机启动: systemctl enable vsftpd.service

    (21)测试: ftp ip,根据提示输入用户名和密码

   如果修改用户密码:passwd testftp, 记得 db_load -T -t hash -f /etc/vsftpd/ftpusers.txt /etc/vsftpd/vsftpd_login.db

你可能感兴趣的:(linux/shell)