Linux下创建FTP虚拟用户的配置过程--非系统账户登陆FTP

目录

前言        

一、检查vsftpd是否安装        

二、建立vsftpd虚拟用户

2.1、添加虚拟用户口令文件

2.2、生成虚拟用户口令认证文件

2.3、编辑vsftpd的PAM认证文件

2.4、建立本地映射用户

三、配置vsftpd

3.1、配置vsftpd.conf

3.2、创建虚拟用户权限目录

3.3、对虚拟用户设置上传下载根目录

3.4、重启vsftp服务

四、测试虚拟用户登录FTP

4.1、虚拟用户登陆FTP测试

4.2、测试上传或下载


前言        

        在日常的工作中经常会遇到这样的情况,为了ftp的用户的登录安全,需要创建一些FTP账户来连接或登录FTP服务,而又不想让用户拥有系统级别的账号。

        尽管也可以在FTP服务器设置让一些用户无法登陆系统,如果需要创建很多ftp用户的需求的话,那和创建这么多的用户也是不友好的,对系统而言也是不安全的。

        为了解决以上这种问题,在日常的工作中可以采取配置FTP的虚拟用户来连接或是登录FTP服务,这些账户还不是系统上的帐号,在维护方便的前提下,还保证了系统的安全性。

        如下是以FTP虚拟用户来连接或是登陆FTP服务的操作方法,供大家学习和使用。

一、检查vsftpd是否安装        

        先要检查要做FTP服务器的主机上有没有安装vsftpd,如果没有安装的话,需要先进行vsftpd服务的安装。

        [root@localhost ~]# yum -y install vsftpd。

        注:如果是yum安装的话,首先要把操作系统的系统盘挂载到系统中,并且配置好yum源才可以使用。挂载和配置yum的方法如下:

        [root@localhost ~]# monut /dev/sr0 /mnt

        注:sr0也可以写成cdrom,sr0是cdrom的一个连接。

        [root@localhost ~]# vi /etc/yum.repos.d/rhel.repo

        [iso]
        name=centos-iso
        baseurl=file:///mnt
        enabled=0
        gpcheck=1

二、建立vsftpd虚拟用户

2.1、添加虚拟用户口令文件

        [root@localhost ~]# vi /etc/vsftpd/vftpuser.txt

        ftpuser #用户名

        123456 #密码

        注:添加虚拟用户名和密码,一行用户名,一行密码,以此类推。

2.2、生成虚拟用户口令认证文件

        将刚添加的vftpuser.txt虚拟用户口令文件转换成系统识别的口令认证文件,首先查看系统有没有安装生成口令认证文件所需的软件db4-utils,如果没有安装进行安装之后再生成口令认证文件。

        [root@localhost ~]# db_load -T -t hash -f /etc/vsftpd/vftpuser.txt /etc/vsftpd/vftpuser.db

2.3、编辑vsftpd的PAM认证文件

        [root@localhost ~]# cd /etc/pam.d

        [root@localhost ~]# cp vsftpd vsftpd.YYYYMMDD

        YYYYMMDD代表年月日

        [root@localhost ~]# vi vsftpd

        可以把原文件里面的内容都注释掉,添加以下2行内容:

        auth required  /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser

        account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser

2.4、建立本地映射用户

        所有的FTP虚拟用户需要使用一个系统用户,但这个系统用户不需要密码和登录权限

        [root@localhost ~]# useradd -d /home/ftpuser -s /sbin/nologin ftpuser

三、配置vsftpd

3.1、配置vsftpd.conf

        [root@localhost ~]# cd /etc/vsftpd

        [root@localhost ~]# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.YYYYMMDD

        YYYYMMDD代表年月日

        [root@localhost ~]# vi vsftpd.conf

        找到如下内容进行修改:

        anonymous_enable=NO

        local_enable=YES

        local_umask=022

        #dirmessage_enable=YES

        xferlog_enable=YES

        connect_from_port_20=YES

        #xferlog_file=/var/log/vsftpd.log

        xferlog_std_format=YES

        #chroot_list_file=/etc/vsftpd/chroot_list

        listen=YES

        write_enable=YES

        anon_upload_enable=YES

        anon_mkdir_write_enable=YES

        anon_other_write_enable=YES

        chroot_local_user=YES

        ftpd_banner=Welcome to FTP service.        #此参数可用可不用,就是一个登录ftp服务时的一句欢迎语。

        anon_world_readable_only=NO

        guest_enable=YES

        guest_username=vftpuser

        pam_service_name=vsftpd

        user_config_dir=/etc/vsftpd/userconf         #代表对虚拟用户分配不能根目录的配置目录,需要在vsftpd目录创建此目录。

3.2、创建虚拟用户权限目录

        [root@localhost ~]# cd /etc/vsftpd

        [root@localhost ~]# mkdir userconf

3.3、对虚拟用户设置上传下载根目录

        [root@localhost ~]# cd /etc/vsftpd/userconf

        [root@localhost ~]# vi ftpuser         #此文件一定要和你的虚拟用户名保持一致。

        write_enable=YES

        anon_world_readable_only=NO

        anon_upload_enable=YES

        anon_mkdir_write_enable=YES

        anon_other_write_enable=YES

        local_root=/home/ftpuser/ftpdir         #此目录是虚拟用户设置的根目录,上传下载的文件都会锁定到此目录下。

        [root@localhost ~]# chown -R ftpuser.ftpuser /home/ftpuser/ftpdir         #设置目录权限为虚拟用户,防止没有权限上传或下载。

3.4、重启vsftp服务

        [root@localhost ~]# service vsftpd restart

四、测试虚拟用户登录FTP

4.1、虚拟用户登陆FTP测试

        [root@localhost ~]# ftp 192.168.10.2

        Connected to 192.168.10.2.

        220 Welcome to FTP service.

        Name (192.168.10.2:root):ftpuser

        331 Please specify the password.

        Password:        #输入虚拟账号的密码。

        230 Login sucessful.         #代表虚拟用户已经成功的登录到了FTP服务器上。

4.2、测试上传或下载

        [root@localhost ~]# ftp 192.168.10.2

        Connected to 192.168.10.2.

        220 Welcome to FTP service.

        Name (192.168.10.2:root):ftpuser

        331 Please specify the password.

        Password:         #输入虚拟账号的密码。

        230 Login sucessful.

        Remote system type is UNIX.

        Using binary mode to transfer files.

        ftp>put 1.txt

        local:1.txt remote:1.txt

        150 Ok to send data.

        226 Transfer complete.         #上传成功。

        ftp>get 2.txt

        local:2.txt remote:2.txt

        150 Opening BINARY mode data connection for t (1140 bytes).

        226 Transfer complete.         #上传成功。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值