首页 > 系统相关 >Linux下创建FTP虚拟用户的配置过程--非系统帐号登录FTP

Linux下创建FTP虚拟用户的配置过程--非系统帐号登录FTP

时间:2023-11-21 13:32:51浏览次数:33  
标签:FTP -- vsftpd 虚拟 Linux YES root localhost

前言        

       在日常的工作中经常会遇到这样的情况,为了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.         #上传成功。

标签:FTP,--,vsftpd,虚拟,Linux,YES,root,localhost
From: https://blog.51cto.com/u_1783322/8500669

相关文章

  • STM32使用SDIO模式和DMA实现SD卡的读写及擦除操作
    对于STM32操作SD卡来说,最重要的就算初始化、写操作、读操作、擦除这几个操作了。对于初始化部分上一篇文章已经分析,本篇就主要分析写、读、擦除操作。本篇函数来自于STM32提供的例程。参考野火的程序进行了解释,与野火函数有些不同。这几种函数完成之后,就是开始实现对SD卡进行操作了......
  • 无涯教程-Interactive Ruby (irb) −函数
    交互式Ruby或irb是Ruby附带的交互式编程环境。它是由石冢启十先生撰写的。使用语法要调用它,请在shell或命令提示符下键入irb,然后开始输入Ruby语句和表达式。使用退出或退出退出irb。$irb[.rb][options][programfile][arguments]这是options的完整列表-Sr.No.Comma......
  • 振弦式渗压计与振弦采集仪组成大坝水库监测
    振弦式渗压计与振弦采集仪组成大坝水库监测振弦式渗压计和振弦采集仪是两种常见的监测水库安全的仪器设备。振弦式渗压计能够测量土壤的渗压力,而振弦采集仪则能够实时采集和传输渗压计的数据。这两种仪器的联合使用可以组成一套完整的水库安全监测系统,能够实现以下功能:实时监测水库......
  • 振弦传感器渗压计与振弦采集仪组成大坝水库安全监测的案例
    振弦传感器渗压计与振弦采集仪组成大坝水库安全监测的案例振弦式渗压计是一种常用的水文地质监测仪器,主要用于测量土体中的渗流压力、水位变化等参数。而振弦采集仪则是一种数据采集和传输装置,可以将振弦式渗压计采集到的数据进行处理和传输。在大坝水库安全监测中,振弦式渗压计和振......
  • TCP 协议有哪些主要特点?
    TCP(TransmissionControlProtocol)是一种面向连接的、可靠的传输层协议,它在计算机网络中负责提供可靠的数据传输服务。以下是TCP协议的主要特点:面向连接:TCP是一种面向连接的协议,通信双方在传输数据之前需要先建立连接。连接建立后,数据的传输是可靠的。可靠性:TCP提供可靠的数据......
  • ORB_SLAM2中的Sim3优化
     https://www.guyuehome.com/356791.单目尺度漂移单目SLAM的尺度漂移,简单来说就是单目获得的单张图片无法知道拍摄物体到相机的距离,必须通过对极几何求的两张图片的位姿,然后三角化出来尺度信息。而这些都依赖的是两帧图像之间的逆深度求解。任选两张图(设为第0帧和第1帧),先提......
  • 给大家推荐一个免费的云平台-阿贝云
    在这里给大家推荐一个免费的云平台-阿贝云:搭建一个属于自己的服务器,写APP的服务端,给自用的APP提供网络服务。我用来同步课程表和课程任务。有很多好处: 1、放置公司网站和电子商务平台随着越来越多的公司开始通过互联网开发业务渠道,许多公司将选择将其网站放置在云服......
  • 隐私计算真的是一项变革性技术么?
    原文地址:TheBusinessCaseforPrivacyEnhancingTechnologies原文作者:EllisonAnneWilliams翻译&整理:开放隐私计算&PrimiHub在一个科技热点层出不穷的时代,当一项技术被描述为变革性技术时,其实人们第一时间反而是警惕,然后是质疑。最近几年变革性技术这个标签落在了隐......
  • HDFS与MAPREDUCE操作
     HDFS文件操作在分布式文件系统上验证HDFS文件命令,如下。hadoopfs[genericOpitions][-ls<path>] //显示目标路径当前目录下的所有文件[-lsr<path>] //递归显示目标路径下的所有目录及文件(深度优先)[-du<path>] //以字节为单位显示目录中所有文件的大小,或该文......
  • 可视化学习:利用向量计算点到线段的距离并展示
    本文可配合本人录制的视频一起食用。引言最近我在学可视化的东西,借此来巩固一下学习的内容,向量运算是计算机图形学的基础,这个例子就是向量的一种应用,是利用向量来计算点到线段的距离,这个例子中可视化的展示采用Canvas2D来实现。说起向量,当时一看到这个词,我是一种很模糊的记忆;这......