Linux-ftp虚拟用户配置

news/2024/7/1 3:28:30

云服务器ESC 部署vsftpd 虚拟用户

说明:云服务器部署和本地服务器部署一样,都需要开通指定的相应端口,只不过云服务器需要在安全组规则中打开相应的端口允许通过。

环境说明:

对应的用户对应不同的密码,对应不同的数据目录,如下图:

具体步骤

 1) 安装软件

# yum -y install vsftpd

2) 创建相应的ftp数据目录

# mkdir -p /opt/ftp/{come,out}

3) 创建一个用户提供给虚拟用户使用

# useradd -s /sbin/nologin virtual

4) 将ftp数据目录设置成virtual用户

# chown virtual. /opt/ftp/ -R
# ll /opt/ftp/
total 8
drwxr-xr-x 2 virtual virtual 4096 Apr 17 12:07 come
drwxr-xr-x 2 virtual virtual 4096 Apr 17 12:07 out

5) 创建虚拟帐号与密码的文本文件(一行账号,一行密码, 注意不要有多余的空格)

# vim /etc/vsftpd/logins.txt
ftpComeSsbq
ftp_come_#@UkieO9
ftpOutSsbq
ftp_out_#@45oUkie

6) 将创建好的密码文件txt格式转换db格式

# db_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/login.db

7) 定义db文件的权限

# chmod 600 /etc/vsftpd/login.db

8) 定义pam认证文件(注意:db=/etc/vsftpd/login 文件就是上面生成的login.db文件;省略后缀.db)

# vim /etc/pam.d/ftp
auth  required  /lib64/security/pam_userdb.so  db=/etc/vsftpd/login
account  required  /lib64/security/pam_userdb.so  db=/etc/vsftpd/login

9) 配置vsftpd主配置文件 (guest_username=virtual 对应上面创建的用户)

# vim /etc/vsftpd/vsftpd.conf
#禁止匿名登录FTP服务器
anonymous_enable=NO
#允许本地用户登录FTP服务器
local_enable=YES
#可以上传(全局控制) 
write_enable=NO
#匿名用户可以上传
anon_upload_enable=NO
#匿名用户可以建目录
anon_mkdir_write_enable=NO
#匿名用户修改删除
anon_other_write_enable=NO
#全部用户被限制在主目录
chroot_local_user=YES
#将所有用户看成虚拟用户guest
guest_enable=YES
#指定虚拟用户,也就是将guest用户映射到virtual用户
guest_username=virtual
#指定为独立服务
listen=YES
#指定监听的端口
listen_port=21
#开启被动模式
pasv_enable=YES
#FTP服务器公网IP
pasv_address=<FTP服务器公网IP>
#设置被动模式下,建立数据传输可使用port范围的最小值
pasv_min_port=10000
#设置被动模式下,建立数据传输可使用port范围的最大值
pasv_max_port=10088
#是否允许匿名用户下载全局可读的文件
anon_world_readable_only=NO
#指定虚拟用户配置文件的路径
user_config_dir=/etc/vsftpd/user_conf

10) 创建上面配置文件中指定的子配置文件目录 user_conf

# mkdir /etc/vsftpd/user_conf

11) 定义 ftpComeSsbq 用户的配置文件

# vim /etc/vsftpd/user_conf/ftpComeSsbq
write_enable=YES
anon_world_readable_only=no
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/opt/ftp/come

12) 定义 ftpOutSsbq 用户的配置文件

# vim /etc/vsftpd/user_conf/ftpOutSsbq
write_enable=YES
anon_world_readable_only=no
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/opt/ftp/out

13) 启动vsftpd

# service vsftpd start

14) 测试

  • 使用 lftp 测试,格式为:lftp 用户名:密码@ftp地址:传送端口(默认21端口,如果是21端口则可以不用添加)
    [root@srt_aliyun_39 ~]# lftp ftpComeSsbq:ftp_come_#@UkieO9@120.79.xx.xx
    lftp ftpComeSsbq@120.79.xx.xx:~> pwd
    ftp://ftpComeSsbq:ftp_come_#%40UkieO9@120.79.xx.xx
    lftp ftpComeSsbq@120.79.xx.xx:~> mkdir test
    mkdir ok, `test' created            
    lftp ftpComeSsbq@120.79.xx.xx:/> ls
    drwx------    2 506      506          4096 Apr 17 05:32 test
    lftp ftpComeSsbq@120.79.xx.xx:/> rm -rf test/
    rm ok, `test/' removed 
  • 使用 windows 文件夹测试 格式:ftp:ftp地址 (说明:打开ftp被动模式,控制面板 > 网络和Internet > Internet 选项 > 高级 。勾选 启用 FTP 文件夹视图,勾选 使用被动 FTP。

  

  • 浏览器测试:ftp://ftp地址

  

至此就完成了 ftp 虚拟用户的部署。

 

转载于:https://www.cnblogs.com/yanjieli/p/10723108.html


http://www.niftyadmin.cn/n/4820385.html

相关文章

Redis服务搭建和使用

Redis是什么&#xff1f; Redis – 缓存数据的工具之一 Redis服务的搭建&#xff1a; Redis在window平台安装&#xff1a; 1.到https://github.com/dmajkic/redis/downloads下载对应的redis安装包 2.解压后&#xff0c;包含文件&#xff1a; redis-server.exe&#xff1a…

百度贴吧...别人的日记.

设百度为首页 与百度对话 超级搜霸 进入贴吧 贴吧搜索 按作者检索 新 闻网 页贴 吧MP3图 片回复留言 | 精品区 | 申请吧主| 举报 | <script languagejavascript> document.write(""); </script> 登录 | <script languageJavaScript> url f_esc…

用 Emacs Muse 来制作测试结果报告

用 Emacs Muse 来制作测试结果报告文档选项未显示需要 JavaScript 的文档选项<script language"JavaScript" type"text/javascript"> </script>打印本页<script language"JavaScript" type"text/javascript"> </…

day正则表达式补充

# 2.正则 # 方法&#xff1a;findall | match | split | sub# a 10# print(a.__hash__())# def fn():# pass# print(fn.__name__)# import json# print(json.dumps([1,2,3]))import re # 全文匹配&#xff0c;返回值是列表res re.findall(\d*?, d1) # [, , ] | [, , 1, ]pri…

网络、HTTP相关学习总结

引言&#xff1a;上图是《图解 HTTP》这本书的目录&#xff0c;最近又重新读了一下这本书&#xff0c;然后打算写篇总结&#xff0c;来加深自己的理解&#xff0c;然而在做总结的时候觉得还是全面总结下网络相关的知识吧&#xff0c;所以又在网上找了大量的资料&#xff0c;最终…

sawfish-lisp-source_1.3.1-1_all.deb

sawfish-lisp-source_1.3.1-1_all.deb 的下载页面 如果您正在运行 Ubuntu&#xff0c;请尽量使用像 aptitude 或者 synaptic 一样的软件包管理器&#xff0c;代替人工手动操作的方式从这个网页下载并安装软件包。 您可以使用以下列表中的任何一个源镜像只要往您的 /etc/apt/sou…

TCL解释器与C++代码交互过程?

工 具 心 情 休 闲 博 客 论 坛 游客: 注册 | 登录 | 搜索 | 繁體中文 百思论坛 网络仿真软件 NS TCL解释器与C代码交互过程&#xff1f;上一主题下一主题 可打印版本 | 订阅主题 | 收藏主题 | 开通个人空间 <script type"text/javascript"> fun…

leetcode_654. Maximum Binary Tree

https://leetcode.com/problems/maximum-binary-tree/ 给定数组A&#xff0c;假设A[i]为数组最大值&#xff0c;创建根节点将其值赋为A[i]&#xff0c;然后递归地用A[0,i-1]创建左子树&#xff0c;用A[i1&#xff0c;n]创建右子树。 使用vector的assign函数,该函数的特性&#…