• Vsftp与PAM虚拟用户




    使用yum 安装vsftp

    1. yum install vsftpd pam pam-* db4 db4-* 


    创建一个保存用户及密码的文件

    1. cd /etc/vsftpd/ 
    2. touch virtual_login 


    添加用户(一行用户一行是密码

    1. vim  virtual_login 

    dongnan 
    nandong


    将文本内的帐号及密码添加到db4的数据库文件内

    1. db_load -T -t hash -f /etc/vsftpd/virtual_login /etc/vsftpd/virtual_login.db 


    将vsftpd原内容全部注释掉,并添加如下:

    1. sed -ir 's/^/#/g' /etc/pam.d/vsftpd 
    2.  
    3. echo -n ' 
    4. auth    required   /lib64/security/pam_userdb.so   db=/etc/vsftpd/virtual_login 
    5. account required   /lib64/security/pam_userdb.so   db=/etc/vsftpd/virtual_login 
    6. >> /etc/pam.d/vsftpd 


    创建一个vsftpd服务的用户vsftpd,你也可以使用-d来指定他的家目录

    1. useradd -s /sbin/nologin vsftpd 
    2. useradd -d /var/ftp/dongnan -s /sbin/nologin dongnan 


    更改 vsftpd的配置文件

    1. cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak 
    1. awk '! /^(#|$)/' /etc/vsftpd/vsftpd.conf.bak  

    #不允许匿名访问
    anonymous_enable=NO
    #设定本地用户可以访问。注意:主要是为虚拟宿主用户,如果该项目设定为NO那么所有虚拟用户将无法访问
    local_enable=YES
    #允许写操作
    write_enable=YES
    #创建或上传后文件的权限掩码
    local_umask=022
    #禁止匿名用户上传
    anon_upload_enable=NO
    #禁止匿名用户创建目录
    anon_mkdir_write_enable=NO
    #进入目录时可以显示一些设定的信息,可以通过message_file=.message来设置
    dirmessage_enable=YES
    #开启日志
    xferlog_enable=YES
    #主动连接的端口号
    connect_from_port_20=YES
    #设定禁止上传文件更改宿主
    chown_uploads=NO
    #日志路径,记得自己创建一下并且对这个文件进行chown  vsftpd.vsftpd /var/log/vsftpd.log
    xferlog_file=/var/log/vsftpd.log
    #就是格式话日志格式的,你懂得。使用wu ftp软件时设置yes就行
    xferlog_std_format=YES
    #因为我们把vsftpd的shell设置为nobody 了,所以 这个地方写vsftpd就可以啦!当然或者可以写成系统内的nobody
    nopriv_user=vsftpd
    #设定支持异步传输功能
    async_abor_enable=YES
    #设定支持ASCII模式的上传
    ascii_upload_enable=YES
    #设定支持ASCII模式的上传
    ascii_download_enable=YES
    #登陆欢迎语
    ftpd_banner=Welcome to dongnan FTP service.
    #限定在自己的目录内,不让他出去,就比如如果设置成NO,那么当你登陆到ftp的时候,可以访问服务器的其他一些有权限目录。设置为YES后即,锁定你的目录了
    chroot_list_enable=YES
    #待会要把用户写到这个里面,写到这里的用户乖乖的呆在家目录下吧
    chroot_list_file=/etc/vsftpd/chroot_list
    #以standalone方式来启动
    listen=YES
    #/etc/pam.d/下的vsftpd文件
    pam_service_name=vsftpd
    #在/etc/vsftpd/user_list中的用户将不得使用FTP
    userlist_enable=YES
    #支援 TCP Wrappers 的防火墙机制
    tcp_wrappers=YES
    #启用虚拟用户功能
    guest_enable=YES
    #虚拟用户的权限符合他们的宿主用户
    virtual_use_local_privs=YES
    #虚拟用户个人vsftpd的配置文件存放路径。vsftpd_config是文件夹啊。注意:配置文件名必须和虚拟用户名相同
    user_config_dir=/etc/vsftpd/vsftpd_config

    创建一下保存虚拟用户配置文件的目录

    1. mkdir /etc/vsftpd/vsftpd_config/ 


    创建vsftp日志文件

    1. touch /var/log/vsftpd.log 
    2. chmod 600 /var/log/vsftpd.log 
    3. chown vsftpd.vsftpd /var/log/vsftpd.log 


    创建要将哪些用户固定在家目录的配置文件

    1. touch /etc/vsftpd/chroot_list 


    将需要固定用户目录的用户名字写进去即可。

    1. cd /etc/vsftpd/vsftpd_config/ 
    1. cat > dongnan << EOF 
    2. #起用虚拟用户,centos下yes必须为小写字母 
    3. guest_enable=yes 
    4. #映射本地虚拟用户 
    5. guest_username=dongnan 
    6. #如果当时创建用户的时候锁定一个目录了,那就可以不写 
    7. local_root=/var/ftp/dongnan 
    8. #用户会话空闲后10分钟
    9. idle_session_timeout=600 
    10. #将数据连接空闲2分钟断 
    11. data_connection_timeout=120 
    12. #最大客户端连接数 
    13. max_clients=10 
    14. #每个ip最大连接数 
    15. max_per_ip=5 
    16. #限制上传速率,0为无限制 
    17. local_max_rate=0 
    18. EOF 


    启动vsftp

    1. /etc/init.d/vsftpd start 

    Starting vsftpd for vsftpd: 500 OOPS: bad bool value in config file for: anon_upload_enable
    注意: 这里出现了 500 OOPS 之类的错误,请使用以下命令去除"多余的空格",再次启动vsftp 即可。

    1. sed -ir 's/[ ]*$//g'  /etc/vsftpd/vsftpd.conf 
    2. sed -ir 's/[ ]*$//g'  /etc/vsftpd/vsftpd_config/dongnan 



    参考
    Vsftp服务安装搭建,虚拟用户配置
    http://kinggoo.com/app-installvsftpdconf.htm

    第二十一章、檔案伺服器之三: FTP 伺服器
    http://linux.vbird.org/linux_server/0410vsftpd.php

    9.4 帐号和组配置文件

    小知识:
    /sbin/nologin和/bin/false的区别 
    /bin/false是最严格的禁止login选项,一切服务都不能用,而/sbin/nologin只是不允许系统login,可以使用其他ftp等服务。

  • 相关阅读:
    span 固定宽度且与其它元素同一行的样式设置
    height、clientHeight、scrollHeight、offsetHeight区别
    jquery选择器多值情况处理(取select列表选项的值)
    用Javascript取float型小数点后两位,例22.127456取成22.13,如何做?
    【JS获取与设置】FCKeditor编辑器的值
    浅析java位运算符计算方式
    分治策略(算法)
    Java GUI入门教程
    Java面向对象知识总结
    数据结构(Java)——图的基础算法
  • 原文地址:https://www.cnblogs.com/little-white/p/3757939.html
走看看 - 开发者的网上家园