Linux 中实现文件传输服务(二)

继续上章vsftpd,介绍vsftpd的虚拟用户配置

一、背景需求
 
当有多个用户需要不同的权限时,本地用户、匿名用户都无法控制那么精细,这时候可以考虑下虚拟用户了,例如有如下要求。

家目录 删除 是否允许切换目录
tom /myftp/tom × × ×
jerry /myftp/jerry × ×
admin /myftp

二、详细配置

```
    a. 安装程序:
        [[email protected] ~]# yum -y install vsftpd

    b. 创建配置文件:
        [[email protected] ~]# cp /etc/vsftpd/vsftpd.conf{,.bak}
        [[email protected] ~]# vim  /etc/vsftpd/vsftpd.conf
        #关闭匿名用户,本地用户必须开启,否则虚拟用户无法正常运行
        anonymous_enable=NO
        local_enable=YES
        write_enable=YES
        #设置禁锢用户,默认开启后/etc/vsftpd/chroot_list文件中的用户都被禁锢
        chroot_list_enable=YES
        chroot_list_file=/etc/vsftpd/chroot_list
        #设置虚拟用户相应功能(虚拟用户对应的本地用户、
        guest_enable=YES
        guest_username=virtual
        pam_service_name=vsftpd.pam
        user_config_dir=/etc/vsftpd/vuser_conf.d
        #设置数据连接(被动模式)的端口范围
        pasv_min_port=30000
        pasv_max_port=30999
        #关闭反向域名解析,用于加速访问
        reverse_lookup_enable=NO
    c.创建pam认证文件,并指定虚拟用户的账号、密码数据库位置
        注意:如果是32位的系统pam_userdb.so模块不在lib64目录下,详情可通过 rpm -ql  pam  |   grep userdb 得知
        [[email protected] ~]# vim /etc/pam.d/vsftpd.pam
        auth required /lib64/security/pam_userdb.so db=/etc/vsftpd_login
        account required /lib64/security/pam_userdb.so db=/etc/vsftpd_login

    d.创建用户密码数据库,奇数行位用户名、偶数行位密码
        [[email protected] ~]# vim /etc/vsftpd_login
        tom
        123
        jerry
        123
        admin
        123
        [[email protected] ~]# db_load -t hash -T -f /etc/vsftpd_login /etc/vsftpd_login.db 

    e.为每个虚拟用户创建不同的权限
        [[email protected] ~]# mkdir /etc/vsftpd/vuser_conf.d
        #TOM用户权限设置:
        [[email protected] ~]# vim /etc/vsftpd/vuser_conf.d/tom
        local_root=/myftp/tom
        anon_world_readable_only=YES
        anon_upload_enable=NO
        anon_mkdir_write_enable=NO
        anon_other_write_enable=NO
        [[email protected] ~]# mkdir /myftp/tom
        [[email protected] ~]# touch /myftp/tom/tom.read
        #Jerry用户权限配置:
        [[email protected] ~]# cp /etc/vsftpd/vuser_conf.d/{tom,jerry}
        [[email protected] ~]# vim /etc/vsftpd/vuser_conf.d/jerry
            local_root=/myftp/jerry
            anon_world_readable_only=YES
            anon_upload_enable=YES
            anon_mkdir_write_enable=YES
            anon_other_write_enable=NO
        [[email protected] ~]# mkdir /myftp/jerry
        [[email protected] ~]# touch /myftp/jerry/jerry.read.write
        #Admin用户权限配置:
        [[email protected] ~]# cp /etc/vsftpd/vuser_conf.d/{jerry,admin}
        [[email protected] ~]# vim /etc/vsftpd/vuser_conf.d/admin
        local_root=/myftp/tom
        anon_world_readable_only=YES
        anon_upload_enable=YES
        anon_mkdir_write_enable=YES
        anon_other_write_enable=YES
        [[email protected] ~]# mkdir /myftp/admin
        [[email protected] ~]# touch /myftp/admin/admin.read.write.delete.no_chroot
        #禁锢用户
        [[email protected] ~]# vim /etc/vsftpd/chroot_list
        tom
        jerry
        #设置目录权限
        [[email protected] ~]# chown virtual  -R  /myftp/
        #重启服务
        [[email protected] ~]# !sys
        systemctl restart vsftpd 

三、测试效果
Tom用户测试结果:

Jerry用户测试结果:

Admin用户测试结果:

Admin用户也被禁锢了...

原文地址:http://blog.51cto.com/jying/2151259

时间: 2024-10-08 11:13:22

Linux 中实现文件传输服务(二)的相关文章

工具WinSCP:windows和Linux中进行文件传输

工具WinSCP:windows和Linux中进行文件传输 2016-09-21 [转自]使用WinSCP软件在windows和Linux中进行文件传输 当我们的开发机是Windows,服务器是Linux时,如何在windows操作系统和linux操作系统之间进行文件传输呢?大部分使用ScureCRT或者putty远程登录,使用scp.wget等命令拷贝文件,也有不怕麻烦的在服务器上安装FTP服务器,或者启用samba甚至NFS.只是用Linux作为网页服务器,因为性能更好,更加安全稳定.这个时

Linux中常用文件传输命令及使用方法

sftp sftp即Secure Ftp 是一个基于SSH安全协议的文件传输管理工具.由于它是基于SSH的,会在传输过程中对用户的密码.数据等敏感信息进行加密,因此可以有效的防止用户信息在传输的过程中被窃取不仅可以传输文件数据,而且可以进行远程的文件管理. 建立连接: # sftp [email protected] 从本地上传文件: # put localpath 下载文件: # get remotepath 与远程相对应的本地操作,只需要在命令前加上”l” 即可,方便好记. 例如:lcd l

Linux系统FTP文件传输服务

1.FTP连接及传输模式     FTP服务器默认使用TCP协议的20,21端口与客户端进行通信.20端口用于建立数据连接,并传输文件数据:21端口用于建立控制连接,并传输FTP控制命令. FTP数据连接分为主动模式和被动模式 ■ 主动模式:服务器主动发起数据连接. ■ 被动模式:服务被动等待数据连接. 客户端与服务器建立好数据连接以后,在传输文件时,根据是否进行字符转换,分为文本模式和二进制模式. ◆ 文本模式:又称为ASCII(American Standard Code for Infor

Linux网络服务04——FTP文件传输服务

Linux网络服务04--FTP文件传输服务 一.FTP连接及传输模式 1.控制连接:TCP 21,用于发送FTP命令信息 2.数据连接:TCP 20,用于上传.下载数据 3.数据连接的建立类型: (1)主动模式:服务器主动发起数据连接 首先由客户端向服务端的21端口建立FTP控制连接.当需要传输数据时,客户端以PORT命令告知服务器"我打开了某端口,你过来连接我",预算服务器从20端口向客户端的该端口发送请求并建立数据连接. (2)被动模式:服务器被动等待数据连接 如果客户端所在网络

运维学习之Linux系统中的文件传输、归档、压缩

不同系统之间的文件传输 1.文件归档 1. 文件归档,就是把多个文件变成一个归档文件 2. tar c ##创建 f ##指定归档文件名称 t ##显示归档文件中的内容 r ##向归档文件中添加文件 --get ##取出单个文件 --delete ##删除单个文件 x ##取出归档文件中的所有内容 -C ##指定解档目录 -z ##gz格式压缩 -j ##bz2格式压缩 -J ##xz格式压缩 2.压缩 gz gzip etc.tar ##压缩成gz格式 gunzip  etc.tar.gz #

详解“FTP文件传输服务”安装配置实例

"FTP文件传输服务"安装配置实例 家住海边喜欢浪:zhang789.blog.51cto.com 目录 简介 ftp工作原理 常见的FTP服务 Vsftpd服务器的安装 Vsftpd.conf配置文件详解 配置FTP服务器实例 实例:配置匿名用户 实例:配置本地用户登录 实例:配置虚拟用户登录(MySQL认证) 实例:控制用户登录 实例:设置欢迎信息 分析vsftpd日志管理 FTP服务器配置与管理 简介 FTP 是File Transfer Protocol(文件传输协议)的英文简

Linux中删除文件,磁盘空间未释放问题追踪

在客户使用我们产品后,发现一个问题:在删除了文件后,磁盘空间却没有释放.是有进程在打开这个文件,还是其他情况?我们一起来看看一下两个场景 一. 场景一:进程打开此文件 当一个文件正在被一个进程使用时,用户删除此文件,文件只会从目录结构中删除,但并没有从磁盘删除.当使用这个文件的进程结束后,文件才会真正的从磁盘删除,释放占有的空间. 我们发现剩余磁盘空间比较少时,回去删除一些大的临时文件或者log文件,如果删除之后会发现磁盘空间并未减少,那么可以通过"lsof"命令去查看正在使用该文件的

FTP文件传输服务

FTP文件传输服务 需求描述: ? 采用FTP虚拟用户的方式,添加三个用户:zhangsan.lisi.wangwu. ? 用户访问及文件权限控制 u 开放匿名访问,任何用户均可下载服务器/var/ftp/soft/目录中的软件资料. u 用户zhangsan可以对服务器的/var/ftp/soft/目录进行上传.删除等操作. u 用户lisi可以下载服务器/var/market/目录中的市场活动.销售方案的资料. u 用户wangwu可以对服务器/var/market/目录进行上传.删除等操作

linux中Makefile文件相关内容

第一章.概述什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional(专业)的程序员,makefile还是要懂.这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义.特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力.因为,makefile关系到了整个