FTP(五)创建虚拟用户

创建虚拟用户

所谓虚拟用户就是,所有虚拟用户会统一赢谁为一个指定的系统普通账号:访问共享位置,即为此系统普通用户的家目录,当然每个虚拟用户也可被赋予不同的访问权限,通过匿名用户的权限控制参数进行指定

虚拟用户帐号的存储方式:

1,创建专门一个文件存放用户密码,但是该文件需要用hash格式。所以需要用下面的这条命令:

    db_load -T -t hash -f vusers.txt vusers.db 

实现步骤:

一,创建用户数据库文件

"注意该文件的格式:第一行 用户名,第二行 密码,以此类推"
    vim /etc/vsftpd/vusers.txt
    wang        #用户名
    wangpass    #密码
    mage        #用户名
    magepass    #密码

二,修改文件格式

 1,cd /etc/vsftpd/
 2,db_load -T -t hash -f vusers.txt vusers.db
 #为了安全修改文件权限
 3,chmod 600 vusers.db 

三,创建系统普通用户,和FTP访问目录

 1,创建用户
    useradd -d /var/ftproot -s /sbin/nologin vuser ?
 2,因为FTP是只能普通用户登入,所以普通用户需要对目录有读和执行权限,这样才能上传下载文件。
    chmod +rx /var/ftproot/
 3,因为FTP为了安全根目录不能有写权限,因为根目录有写权限,我们登入上去是不是就能根目录给删了对吧,所以需要执行下面的命令。
    chmod -w /var/ftproot/
   #为了能有个上传下载的目录单独在创建一个目录。
    mkdir /var/ftproot/upload
   #因为登入上来映射的用户都是vuser用户所以要给vuser用户对upload目录有完全控制的权限,所以可以给它ACL权限这样比较安全
    setfacl -m u:vuser:rwx /var/ftproot/upload 

四,创建PAM模块配置文件

因为现在的验证方式跟之前的不同了,所以需要自己创建一个PAM模块文件,然后在主配置文件中调用该文件

1,创建PAM模块文件

     vim /etc/pam.d/vsftpd.db
     文件内容如下:
     auth required pam_userdb.so db=/etc/vsftpd/vusers
     account required pam_userdb.so db=/etc/vsftpd/vusers 

2,重新指定PAM配置文件

    vim /etc/vsftpd/vsftpd.conf
    guest_enable=YES
    guest_username=vuser
    "pam_service_name=vsftpd.db"注意该项在配置文件中已经有需要修改一下     

六,SELinux设置

禁用SELinux或者 setsebool -P ftpd_full_access 1

七,重启服务

    如果是CentOS-7:systemctl restart vsftpd
    如果是CentOS-6:service vsftpd restart

八,测试

这时候登入就可以用刚才创建的vusers.txt文件里的用户名密码了

例如:
    [[email protected] ~]# ftp 192.168.136.7
    Connected to 192.168.136.7 (192.168.136.7).
    220 (vsFTPd 3.0.2)
    Name (192.168.136.7:root):  "wang"
    331 Please specify the password.
    Password:
    230 Login successful.
    Remote system type is UNIX.
    Using binary mode to transfer files.
    ftp> ls
    227 Entering Passive Mode (192,168,136,7,149,32).
    150 Here comes the directory listing.
    drwxrwxr-x    2 0        0               6 Feb 27 00:58 upload
    226 Directory send OK.

成功了,但是有一个不足就是每个用户登入上来都是一个权限一个目录这样不太灵活,下面实现每个虚拟用户登入上来各自对应不同的权限,并且还可让他登入上来对应的目录都不同一个。

九,实现虚拟用户不同权限

1,修改FTP主配置文件

    vim /etc/vsftpd/vsftpd.conf
    #下面这个选项,作用就是让虚拟用户支持独立的权限配置文件
    user_config_dir=/etc/vsftpd/vusers.d/ 

2,给每个虚拟用户创建一个独立的权限配置文件


    #创建配置文件存放的路径
    mkdir /etc/vsftpd/vusers.d/
    #进入此目录
    cd /etc/vsftpd/vusers.d
    #创建各自用户的权限配置文件

    vim wang
    anon_upload_enable=YES      #允许wang用户上传文件
    anon_mkdir_write_enable=YES #允许wang用户创建文件
    anon_other_write_enable=YES #允许wang用户删除文件
    local_root=/wangroot        #登录wang目录改变至指定wangroot目录里
    注意"wangroot这个目录手工创建,并且该目录不能有w权限,可以为wang用户单独创建一个共享目录并且权限也需要改为766,让Other具有读写权限"

    vim li
    anon_other_write_enable=YES  #允许li用户删除文件
    local_root=/liroot           #登录li目录改变至指定liroot目录里
    "同样liroot目录也需要手工创建,操作跟wang账号的一样"

3,测试

一,wang账号测试
    登入测试:成功
        [[email protected] ~]# ftp 192.168.136.7
        Connected to 192.168.136.7 (192.168.136.7).
        220 (vsFTPd 3.0.2)
        Name (192.168.136.7:root): wang
        331 Please specify the password.
        Password:
    上传文件测试:成功
        ftp> !ls #查看本机文件
        anaconda-ks.cfg  Downloads          Music     Templates
        Desktop      f1     Pictures  Videos   Documents    Public
        ftp> put f1  #上传文件
        local: f1 remote: f1
        227 Entering Passive Mode (192,168,136,7,226,193).
        150 Ok to send data.
        226 Transfer complete.
        1073741824 bytes sent in 3.56 secs (301946.46 Kbytes/sec)
        ftp> ls  #查看目录列表
        227 Entering Passive Mode (192,168,136,7,40,213).
        150 Here comes the directory listing.
        -rw-------    1 1001     1001     1073741824 Feb 27 03:12 f1
    创建目录测试:成功
        ftp> mkdir wangdir #创建目录
        257 "/upload/wangfile" created
        ftp> ls             #查看目录列表
        227 Entering Passive Mode (192,168,136,7,208,167).
        150 Here comes the directory listing.
        -rw-------    1 1001     1001     1073741824 Feb 27 03:12 f1
        drwx------    2 1001     1001            6 Feb 27 03:12 wangdir
        226 Directory send OK.
    "下载文件测试:失败测试"
    "为什么呢,因为FTP默认,被下载的文件必须所有人都有读权限,如果想什么文件都能下载的话,"
    "需要修改主配置文件加上这一项: anon_world_readable_only=NO即可 (默认YES)"
        ftp> get f1
        local: f1 remote: f1
        227 Entering Passive Mode (192,168,136,7,74,156).
        550 Failed to open file.
    删除文件测试:成功
        ftp> delete f1
        250 Delete operation successful.
        ftp> ls
        227 Entering Passive Mode (192,168,136,7,130,109).
        150 Here comes the directory listing.
        drwx------    2 1001     1001            6 Feb 27 03:12 wangfile
        226 Directory send OK.

二,li账号测试
    登陆测试:成功
        [[email protected] ~]# ftp 192.168.136.7
        Connected to 192.168.136.7 (192.168.136.7).
        220 (vsFTPd 3.0.2)
        Name (192.168.136.7:root): li
        331 Please specify the password.
        Password:

    上传文件测试:失败
        ftp> put f1
        local: f1 remote: f1
        227 Entering Passive Mode (192,168,136,7,232,207).
        550 Permission denied.
    下载文件测试:成功。默认FTP就支持匿名下载所以限制不了
        ftp> get f1
        local: f1 remote: f1
        227 Entering Passive Mode (192,168,136,7,219,59).
        150 Opening BINARY mode data connection for f1 (1073741824 bytes).
        226 Transfer complete.
        1073741824 bytes received in 2.55 secs (421099.01 Kbytes/sec)
    删除文件测试:成功
        ftp> delete f1
        250 Delete operation successful.
        ftp> ls
        227 Entering Passive Mode (192,168,136,7,195,31).
        150 Here comes the directory listing.
        drwx------    2 1001     1001            6 Feb 27 03:34 a
    创建目录测试:失败
        ftp> mkdir lidir
        550 Permission denied.      

原文地址:http://blog.51cto.com/13598893/2073441

时间: 2024-10-01 21:17:04

FTP(五)创建虚拟用户的相关文章

ftp安装和虚拟用户创建(终于搞清楚了)

之前领导叫我在Linux下搭建一个FTP服务器,搞一个公司内部人员文件结构,并对相应人员设置相应的访问权限,之前网上有很多安装方法,但是都是很傻瓜式地安装,用户简单地创建,而我当时也是用的最笨的方法创建了很多的本地用户,并对本地用户实现了领导布置的要求,但添加用户,并对用户地管理起来很麻烦,特别是添加新用户的时候,最终没有能够搞定简单实用的这个问题.知道这个问题出现在创建的是本地用户,而非虚拟用户,当时用的Ubuntu12.04的好像没有db_load 安装的时候,又没有对应的数据源,当时,就没

理论+实操:FTP服务详细介绍优化,创建虚拟用户

搭建FTP服务 一 :安装ftp服务 1.1 挂载镜像文件 安装vsftpd软件包 1.2 也可以使用yum仓库 [[email protected] ~]# yum install vsftpd-sysvinit.x86_64 -y Installed: vsftpd-sysvinit.x86_64 0:3.0.2-25.el7 Complete! 1.3 相关文件路径 [[email protected] ~]# cd /etc/vsftpd/ [[email protected] vsft

linux-第十二课时笔记-[FTP服务器搭建]-[虚拟用户FTP]-[03]

FTP虚拟用户服务器搭建: 创捷一个账号列表: [[email protected] vsftpd]# echo -e "msl23\n123\nbenet\n123" >> vusers.list [[email protected] vsftpd]# cat vusers.list msl23 123 benet 123 [[email protected] vsftpd]# 使用db_load把别表变为数据库: [[email protected] vsftpd]#

生产环境搭建ftp并配置虚拟用户

虚拟用户的特点是只能访问服务器为其提供的FTP服务,而不能访问系统的其它资源.所以,如果想让用户对FTP服务器站内具有写权限,但又不允许访问系统其它资源,可以使用虚拟用户来提高系统的安全性.在VSFTP中,认证这些虚拟用户使用的是单独的口令库文件(pam_userdb),由可插入认证模块(PAM)认证. 虚拟用户并非系统上的用户,但它必须映射到系统上的某个用户,虚用户的家目录属主和属组就这系统上的这个用户.并且每个虚用户有自己的用户名和密码,每个虚用户也可以单独设定对家目录的访问权限.使用文件的

Centos6下vsftpd基于mysql认证创建虚拟用户

一,安装环境以及安装的软件: 1,CentOS release 6.4 (Final) [IP:192.168.1.110] 2,vsftpd-2.2.2-13.el6_6.1.x86_64 3,pam_mysql-0.7-0.12.rc1.el6.x86_64 4,mysql-5.6.16(编译安装) 二,在数据库上创建登录ftp的账号和密码 1,创建对应的database,远程授权登录账号并创建表用来存储登录ftp账号密码. mysql> create database vsftpd; my

Linux-FTP服务器VSFTPD创建虚拟用户

安装软件包:yum install -y vsftpd vim /etc/vsftpd/vsftpd.conf anonymous_enable=NO #不允许匿名用户登录 local_enable=YES #允许本地用户登录 write_enable=YES #写入权限 local_umask=077 #本地用户创建文件的umask值 anon_upload_enable=NO #不允许匿名用户上传 anon_mkdir_write_enable=NO #不允许匿名用户创建目录 dirmess

实现FTP基于MYSQL虚拟用户认证

两台主机实现:一台作为ftp服务器,一台作为mysql服务器 host1 : 192.168.1.107 vsftpd pam_mysql.so host2 : 192.168.1.109 mariadb mariadb-server 一.准备数据库 1.安装数据库并启动mysql ~]# yum install mariadb mariadb-server -y ~]# systemctl start mariadb 2.创建vsftpd服务的虚拟数据库及用户列表 1)创建vsftp的数据库

ftp服务----基于虚拟用户的创建

虚拟用户是只创建一个系统账号将所有FTP账号映射到该用户访问FTP时使用的,需要为FTP传输服务单独建立用户数据库文件,这些帐号是在服务器系统中不存在的.虚拟的账号不直接使用系统账号安全性高,本地用户则是直接使用系统账号安全性相对要低. 实验目的:进行ftp访问使用,提高系统账户安全性 实验环境:一台redhat6.5 虚拟机 一台win7虚拟机 基本命令: /etc/vsftpd/vsftpd.conf 配置文件 netstat -ntl 查看端口开启状况 db_load -T -t hash

linux ftp创建虚拟用户及更改权限

第1步进入目录 cd /etc/vsftpd/ vim vuser.list //单数行为帐号,双数行为密码. 111 111111 222 222222 使用db_load命令用HASH算法生成FTP用户数据库文件 vuser.db: dbload -T -t hash -f vuser.list vuser.db 查看文件: file vuser.db FTP赋予权限: chmod 600 vuser.db 第2步创建用户virtual并设置为不允许登陆系统并定义该用户的home目录: us