• FTP(虚拟用户,并且每个虚拟用户可以具有独立的属性配置)


               VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP
    首先安装

    172451384.png

     

    主配置文件:/etc/vsftpd/vsftpd.conf

    【匿名用户】
    anonymous_enable=yes 是否可以匿名访问

    anon_umask=022  设置匿名用户所上传文件的默认权限掩码值

    anon_root=/var/ftp 设置匿名用户的FTP根目录(缺省为/var/ftp/)

    anon_upload_enable=yes  是否可以匿名用户上传文件

    anon_mkdir_write_enable=yes  是否可以匿名用户有创建目录的写入权限

    anon_other_write_enable=yes   是否可以匿名用户有其他写入权限。如对问件改名、覆盖、删除文件等

    anon_max_rate=0  限制匿名用户的最大传输速率(0为不限制),单位为字节/秒

    【本地用户】
    local_enable=yes 是否可以本地系统用户访问

    local_umask=022 设置本地用户所上传文件的默认权限掩码值

    local_root=/var/ftp 设置本地用户的ftp根目录(缺省为用户的宿主目录)

    chroot_local_user=yes 是否将ftp本地用户禁锢在宿主目录中

    local_max_rate=0  限制本地用户的最大传输速率(0为不限制),单位为字节/秒

    【全局配置】
    listen=yes 是否以独立运行的方式监听服务

    listen_address=0.0.0.0 设置监听ftp服务的IP地址

    listen_port=21 设置监听FTP服务的端口号

    write_enable=yes 启用任何形式的写入权限(如上传,删除文件等)都需要开启此项

    download_enable=yes 是否可以下载文件(建立仅限浏览,上传的ftp服务器时可将其设为“no”)

    dirmessage_enable=yes  用户切换进入目录时显示.message文件(如果存在)的类容

    xferlog_enable=yes  启用xferlog日志,默认记录到/var/log/xferlog

    xferlog_std_format=yes 启用标准的xferlog日志格式,若禁用此项,将使用vsftpd自己的日志格式

    connect_from_port_20=yes 同意服务器主动模式(从20端口建立数据连接)

    pasv_enable=yes 同意被动模式连接

    pasv_max_port=24600 设置用于被动模式的服务器最大端口号

    pasv_min_port=24500 设置用于被动模式的服务器最小端口号

    pam_service_name=vsftpd 设置用于用户认证PAM文件位置(/etc/pam.d/目录中对应的文件名)

    userlist_enable=yes 是否启用user_list用户列表文件  /etc/vsftpd/ptpusers

    userlist_deny=yes 是否禁用user_list列表文件中的用户账号 /etc/vsftpd/uer_list

    max_clients=0 最多同意多少个客户端同是连接(0为不限制)

    max_per_ip=0 对来自同一个ip地址的客户端,最多同意多少个并发连接(0为不限制)

    tcp_wrappers=yes 是否启用TCP_Wrappers主机访问控制

    开启虚拟用户
    guest_enable=YES   启用用户隐射功能  
    guest_username=share  映射的系统用户名字 本地用户
    pam_service_name=share  指定 pam认证文件
    user_config_dir=/etc/vsftpd/share_dir
     
    开启匿名或者本地用户登录FTP 都是给一样的权限,要么就是一起把权限去了,不方便管理,所以vsftp的一个功能就是 虚拟用户 
     
    这里我把思路理清 全部写出来!
    要求匿名用户可以浏览,下载但是不能上传!本地用户不能登录
    虚拟用户 chenhao有下载上传写入 但是不能删除
    虚拟用户 fenglei 有浏览下载权限但是不能上传
    虚拟用户:首先创建虚拟用户列表
    vi /etc/vsftpd/share(名字随便填)
    第一行 名字 第二行 密码

    172502456.png

    创建数据库DB
    cd /etc/vsftpd/
    db_load -T -t (类型)hash -f share share.db(转换后名字)

    file share.db 查看格式    

    172515430.png

    然后把文件隐藏起来 chmod 600 /etc/vsftpd/share* 

    172858275.png

    把权限给最低

     

     

    然后加用户测试 :useradd -d 指定家目录 -s 指定shell /sbin/nologin 用户名share 不给登陆到系统

    173044432.png

    创建虚拟用户支持

    建立PAM认证文件
    vi /etc/pam.d/share 名字随便起 但是要知道什么意思 跟上面名字一样 方便一些

    auth       required     pam_userdb.so    db=/etc/vsftpd/share   (DB在哪里)后缀DB直接隐藏了 
    account       required     pam_userdb.so    db=/etc/vsftpd/share

    173248196.png新建配置文件保存 
    最后修改主配置文件 vi /etc/vsftpd/vsftpd.conf  加4条语句 并且把匿名的语句注释了和一些权限放到最低,直接给子文件配置

    guest_enable=YES   启用用户隐射功能   
    guest_username=share  映射的系统用户名字 本地用户
    pam_service_name=share  指定 pam认证文件
    user_config_dir=/etc/vsftpd/share_dir

    180635583.png

    创建子文件 mkdir /etc/vsftpd/share_dir 随便建的子目录 在里面建子文件
    cd /etc/vsftpd/share_dir 切换进去
    然后建子文件 就是用户的需求 可以给那些权限
    比如 chenhao 用户可以登录 能够正常浏览,下载文件,也可以上传文件,但是不能够删除,新建目录

    vi chenhao

    local_root=/home/share  指定的家目录
    anon_upload_enable=yes  可以上传文件 但是不能进行删除或者新建 因为 没有给他权限

    173933112.png

    (必须锁在家目录 让他不能去系统别的地方)
    chroot_local_user=yes 是否将ftp本地用户禁锢在宿主目录中


    并且linux 主机中的系统用户无法登陆FTP
    并且匿名用户只能下载 不能上传

    测试结果:

    175224216.png

    174526502.png

     

    174526349.png

     

     

    183904427.png

    183904162.png测试虚拟用户

    211731680.png

    上传下载都可以

    211732247.png

    211732187.png上传不可以 下载可以!

    211733871.png

    211734746.png

    211857829.png

     

     

    在主配置文件上必须要添加这句话!后面跟的是你子文件夹!

    183904528.png

    必须要加这句话!

    启用独立配置文件

     注意:权限一定要给755 否则会发现无法浏览目录等情况!做实验发现
    [root@localhost ~]# chmod 775 /home/share/

    [root@localhost ~]# chown share:share /home/share/

    然后按需求 复制上面的参数保存退出就可以!

     

    达到不同用户不同权限更方便企业管理员管理每个用户账户,并且很安全,权限可以自由分配!

     

    修改完成后 重新启动服务!service vsftpd reload 重新加载!
     
     
    本文转自 cs312779641 51CTO博客,原文链接:http://blog.51cto.com/chenhao6/1219713
     

  • 相关阅读:
    C++编程开发学习的50条建议(转)
    编程思想:我现在是这样编程的(转)
    Linux系统编程@多线程与多进程GDB调试
    字符串分割函数 STRTOK & STRTOK_R (转)
    C语言指针与数组的定义与声明易错分析
    C语言 a和&a的区别
    C语言二重指针与malloc
    【C语言入门】C语言的组成结构(基础完整篇)!
    程序员吐槽女友败家:开酒店必须400元起步,工资却不到自己的一半!
    怎样才能和编程语言对上眼?你需要做些准备以及...
  • 原文地址:https://www.cnblogs.com/augusite/p/10038010.html
Copyright © 2020-2023  润新知