zoukankan      html  css  js  c++  java
  • vsftpd 虚拟用户限定在虚拟用户目录

    1.安装vsftpd

    yum -y install pam pam-devel db4 db4-tcl vsftpd

    2.更名默认配置文件,以便恢复

    cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak #主配置文件
    cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak #认证配置文件

    3.创建虚拟ftp账户和数据库文件

    vim /etc/vsftpd/vusers  #添加帐号和密码
    vuserone                              #一行帐户
    passwdone                           #一行密码
    vusertwo
    passwdtwo  

    4. 根据虚拟ftp账号密码文件创建数据文件(该文件是真正使用的)

    db_load -T -t hash -f /etc/vsftpd/vusers /etc/vsftpd/vusers.db

    4.创建ftp根目录及虚拟用户映射的系统账户

    mkdir -p /data
    useradd -d /data/ftp -s /sbin/nologin ftpuser #添加系统用户ftpuser

    5.创建虚拟用户认证文件

    >/etc/pam.d/vsftpd #清空认证文件
    vi /etc/pam.d/vsftpd       #添加以下内容,指定db认证文件
    #%PAM-1.0
    auth    sufficient      /lib64/security/pam_userdb.so    db=/etc/vsftpd/vusers
    account sufficient      /lib64/security/pam_userdb.so    db=/etc/vsftpd/vusers

    6.最后配置主配置文件

    >/etc/vsftpd/vsftpd.conf #清空原配置文件
    vim /etc/vsftpd/vsftpd.conf #修改成如下内容
    anonymous_enable=NO
    #设成YES,允许匿名用户登陆
    allow_writeable_chroot=YES
    #2.3.5以下版本不需要配置,否则无法启动,提示配置文件错误 #vsftpd 2.3.5之后增强了安全检查,不允许限定在主目录下的用户具有写权限,该命令声明可以具有写权限。 local_enable=YES #允许/禁止本地用户登陆 注意:主要是为虚拟宿主用户,如果该项目设定为NO那么所有虚拟用户将无法访问。 write_enable=YES #设定可以进行写操作。 local_umask=022 #设定上传后文件的权限掩码,文件644,文件夹755 dirmessage_enable=YES #设定开启目录标语功能 xferlog_enable=YES #设定开启日志记录功能。 connect_from_port_20=YES #设定端口20进行数据连接 xferlog_std_format=YES #设定日志使用标准的记录格式 listen=YES #开启独立进程vsftpd,不使用超级进程xinetd。设定该Vsftpd服务工作在StandAlone模式下。 pam_service_name=vsftpd #设定,启用pam认证,并指定认证文件名/etc/pam.d/vsftpd userlist_enable=YES #设定userlist_file中的用户将不得使用FTP tcp_wrappers=YES #设定支持TCP Wrappers chroot_local_user=YES #限制所有用户在主目录 #以下这些是关于Vsftpd虚拟用户支持的重要配置项目。默认Vsftpd.conf中不包含这些设定项目,需要自己手动添加配置 guest_enable=YES #设定启用虚拟用户功能 guest_username=www #指定虚拟用户的宿主用户 virtual_use_local_privs=YES #设定虚拟用户的权限符合他们的宿主用户 user_config_dir=/etc/vsftpd/vconf #设定虚拟用户个人Vsftp的配置文件存放路径

    7. 配置虚拟用户配置文件

    mkdir -p /etc/vsftpd/vconf #添加虚拟用户配置目录
    mkdir -p /data/ftp/vuserone #虚拟用户1对应存放数据目录
    mkdir -p /data/ftp/vusertwo #虚拟用户2对应存放数据目录
    chown -R ftpuser.ftpuser /data/ftp
    vim /etc/vsftpd/vconf/vuserone #编辑虚拟用户1的配置文件,添加如下内容
    local_root=/data/ftp/vuserone
    #指定虚拟用户的具体主路径
    anonymous_enable=NO
    #设定不允许匿名用户访问
    write_enable=YES
    #设定允许写操作
    local_umask=022
    #设定上传文件权限掩码
    anon_upload_enable=NO
    #设定不允许匿名用户上传
    anon_mkdir_write_enable=NO
    #设定不允许匿名用户建立目录
    idle_session_timeout=600
    #设定空闲连接超时时间
    data_connection_timeout=120
    #设定单次连续传输最大时间
    max_clients=10
    #设定并发客户端访问个数
    max_per_ip=5
    #设定单个客户端的最大线程数,这个配置主要来照顾Flashget、迅雷等多线程下载软件
    local_max_rate=50000
    #设定该用户的最大传输速率,单位b/s

    vim /etc/vsftpd/vconf/vusertwo #编辑虚拟用户2的配置文件,添加如下内容
    local_root=/data/ftp/vusertwo
    #指定虚拟用户的具体主路径
    anonymous_enable=NO
    #设定不允许匿名用户访问
    write_enable=YES
    #设定允许写操作
    local_umask=022
    #设定上传文件权限掩码
    anon_upload_enable=NO
    #设定不允许匿名用户上传
    anon_mkdir_write_enable=NO
    #设定不允许匿名用户建立目录
    idle_session_timeout=600
    #设定空闲连接超时时间
    data_connection_timeout=120
    #设定单次连续传输最大时间
    max_clients=10
    #设定并发客户端访问个数
    max_per_ip=5
    #设定单个客户端的最大线程数,这个配置主要来照顾Flashget、迅雷等多线程下载软件
    local_max_rate=50000
    #设定该用户的最大传输速率,单位b/s

    8.重启vsftpd 服务: service vsftpd restart

  • 相关阅读:
    PHP 操作MySQL时mysql_connect( )和Mysqli( )的两种报错机制
    OS + macOS Mojave 10.14.4 / sushi / ssh-keygen / ssh-copy-id
    script ajax / XHR / XMLHttpRequest
    java socket / No buffer space available
    OS + Ubuntu ARM Android
    mysql中批量替换数据库中的内容的sql
    linux下ubuntu系统安装及开发环境配置
    PHP 截取字符串专题
    在Ubuntu中用root帐号登录
    理解javascript的caller,callee,call,apply概念
  • 原文地址:https://www.cnblogs.com/cpy-devops/p/3997547.html
Copyright © 2011-2022 走看看