`
lingduxyz
  • 浏览: 21820 次
文章分类
社区版块
存档分类
最新评论

深入浅出 Linux Vsftpd 创建多虚拟用户教程

 
阅读更多

Vsftpd 是一款轻量级并有着安全与简易等特性的FTP服务器程序,破受欢迎。在 Linux 中一旦配置好 Vsftpd  环境就可以一劳永逸,任意的迁移到类似的服务器之上,因此我们对配置过程做个系统的了解也是有必要的。

本 文的任务是创建两个虚拟账户,第一个账户(bugxm_admin)拥有可读写指定目录文件、不可登陆系统权限,第二个(bugxm_general)只 拥有只读被绑定目录中文件的权限,依然不能登陆系统。新建一个虚拟用户并且合理分配权限、绑定目录,这和IDC商的虚拟主机效果是一样的。臭虫小明 为了方便,直接采用的  Root 账户操作。

1、安装 Vsftpd 程序,为了方便我们采用以下方式进行自动安装

yum install -y vsftpd

2、创建“bugxm_admin”与“bugxm_general”这两个账户,密码暂定为“123456”,其中奇数行表示账号,偶数行表示密码。

vi /etc/vsftpd/vm_user.txt

bugxm_admin

123456

bugxm_general

123456

2-1、创建 Vsftpd 认证文件

db_load -T -t hash -f /etc/vsftpd/vm_user.txt /etc/vsftpd/vm_user.db

注: 执行上条命令若提示:“bash: db_load: command not found”,请安装“db4-utils”,具体操作如下

yum install -y db4 db4-utils

注: 如果出现“db_load: unexpected end of input data or key/data pair、 db_load: odd  number of key/data pairs”提示,请在 vm_user.txt 最后一行添加空行,即回车一下。

3、编辑虚拟用户需要用到的PAM认证配置文件

rm -f /etc/pam.d/vsftpd

vi /etc/pam.d/vsftpd

3-1、PAM认证配置文件输入以下内容

auth required pam_userdb.so db=/etc/vsftpd/vm_user

account required pam_userdb.so db=/etc/vsftpd/vm_user

4、给 bugxm_admin、bugxm_general 这两个账户增加属性,控制访问目录、权限等,首先创建 bugxm_admin 账户

mkdir /etc/vsftpd/users

vi /etc/vsftpd/users/bugxm_admin

4-1、输入以下内容

local_root=/data/htdocs/bugxm_admin

write_enable=YES

anon_umask=022

anon_world_readable_only=NO

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

4-2、以下是对上面这步操作的注释补充

local_root=/data/htdocs/bugxm_admin #根目录绑定

write_enable=YES #表示拥有可写权限

anon_umask=022 #上传文件的权限,022表示文件夹755、文件644权限

anon_world_readable_only=NO #表示用户具有下载权限

anon_upload_enable=YES #表示用户有权限上传文件

anon_mkdir_write_enable=YES #表示用户具有创建和删除目录的权限

anon_other_write_enable=YES #表示用户具有文件改名和删除文件的权限

4-3、创建 bugxm_general 用户

vi /etc/vsftpd/users/bugxm_general

4-4、输入以下内容

local_root=/data0/htdocs/bugxm_general

anon_world_readable_only=NO

5、两个用户创建完成之后,开始配置 Vsftpd。

vi /etc/vsftpd/vsftpd.conf

5-1、为安全考虑,我们配置不允许匿名访问。

默认:anonymous_enable=YES

改成:anonymous_enable=NO

5-2、YES 表示用户不能离开被我们指定的上级的任何目录。

默认:#chroot_list_enable=YES

改成:chroot_list_enable=YES

5-3、允许用户使用ASCII上传文件。

默认:#ascii_upload_enable=YES

改成:ascii_upload_enable=YES

5-4、允许用户使用ASCII下载文件。

默认:#ascii_download_enable=YES

改成:ascii_download_enable=YES

5-5、在末尾添加以下内容

guest_enable=YES

guest_username=ftp

user_config_dir=/etc/vsftpd/users

6、 重新启动 Vsftpd (service vsftpd restart),出现 了 500 OOPS: could not open chroot()  list file:/etc/vsftpd/chroot_list 错 误,执行以下操作就可以解决问题。

touch /etc/vsftpd/chroot_list

service vsftpd restart

Shutting down vsftpd: [ OK ]

Starting vsftpd for vsftpd: [ OK ]

6-1、用软件连接 ftp 服务器时,出现了以下问题,防火墙开启 21 端口就能得到解决。

状态: 正在连接 192.168.182.128:21.

错误: 连接超时

错误: 无法连接到服务器

状态: 正在等待重试。

6-2、在防火墙中开启 21 端口

vi /etc/sysconfig/iptables

任意位置添加以下内容

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21-j  ACCEPT

重启防火墙

/sbin/service iptables restart

6-3、再次连接时出现了不能切换目录错误“500 OOPS: cannot change  directory:/data/htdocs/bugxm_admin”,执行以下操作即可解决。

setsebool -P ftpd_disable_trans 1

service vsftpd restart

6-4、终于连接上了!

状态: 读取目录列表。

命令: PORT 192,168,182,1,38,172

响应: 200 PORT command successful. Consider using PASV.

命令: LIST

响应: 150 Here comes the directory listing.

响应: 226 Directory send OK.

状态: 列出目录成功

6-5、登陆 bugxm_admin 账户试试能否上传文件,臭虫小明这里上传文件还存在权限问题。

4上传错误:553 Could not create file.

解决方法:

chmod 770 -R /data/htdocs

chown root:ftp -R /data/htdocs

6-6、再次上传,正确了。

28状态: 正在连接 192.168.182.128:21.

状态: 连接建立,等待欢迎消息。

响应: 220 (vsFTPd 2.0.5)

命令: USER bugxm_admin

响应: 331 Please specify the password.

命令: PASS ******

响应: 230 Login successful.

命令: OPTS UTF8 ON

响应: 200 Always in UTF8 mode.

状态: 已连接

状态: 开始上传 E:\Users\Desktop\index.htm

命令: CWD /

响应: 250 Directory successfully changed.

命令: TYPE I

响应: 200 Switching to Binary mode.

命令: PORT 192,168,182,1,40,46

响应: 200 PORT command successful. Consider using PASV.

命令: STOR index.htm

响应: 150 Ok to send data.

响应: 226 File receive OK.

状态: 文件传输成功,传输了 35,250 字节 (用时1 秒)

状态: 读取目录列表。

命令: PORT 192,168,182,1,40,47

响应: 200 PORT command successful. Consider using PASV.

命令: LIST

响应: 150 Here comes the directory listing.

响应: 226 Directory send OK.

状态: 列出目录成功

6-7、试试另外一个账号是不是实现了仅有下载权限需求。

状态: 正在连接 192.168.182.128:21.

状态: 连接建立,等待欢迎消息。

响应: 220 (vsFTPd 2.0.5)

命令: USER bugxm_admin

响应: 331 Please specify the password.

命令: PASS ******

响应: 230 Login successful.

命令: OPTS UTF8 ON

响应: 200 Always in UTF8 mode.

状态: 已连接

状态: 开始上传 E:\Users\Desktop\index.htm

命令: CWD /

响应: 250 Directory successfully changed.

命令: TYPE I

响应: 200 Switching to Binary mode.

命令: PORT 192,168,182,1,40,46

响应: 200 PORT command successful. Consider using PASV.

命令: STOR index.htm

响应: 150 Ok to send data.

响应: 226 File receive OK.

状态: 文件传输成功,传输了 35,250 字节 (用时1 秒)

状态: 读取目录列表。

命令: PORT 192,168,182,1,40,47

响应: 200 PORT command successful. Consider using PASV.

命令: LIST

响应: 150 Here comes the directory listing.

响应: 226 Directory send OK.

状态: 列出目录成功

状态: 已从服务器断开

状态: 正在连接 192.168.182.128:21.

状态: 连接建立,等待欢迎消息。

响应: 220 (vsFTPd 2.0.5)

命令: USER bugxm_general

响应: 331 Please specify the password.

命令: PASS ******

响应: 230 Login successful.

命令: SYST

响应: 215 UNIX Type: L8

命令: FEAT

响应: 211-Features:

响应: EPRT

响应: EPSV

响应: MDTM

响应: PASV

响应: REST STREAM

响应: SIZE

响应: TVFS

响应: UTF8

响应: 211 End

命令: OPTS UTF8 ON

响应: 200 Always in UTF8 mode.

状态: 已连接

状态: 读取目录列表。

命令: PWD

响应: 257 “/”

命令: TYPE I

响应: 200 Switching to Binary mode.

命令: PORT 192,168,182,1,40,56

响应: 200 PORT command successful. Consider using PASV.

命令: LIST

响应: 150 Here comes the directory listing.

响应: 226 Directory send OK.

状态: 列出目录成功

状态: 已从服务器断开

状态: 正在连接 192.168.182.128:21.

状态: 连接建立,等待欢迎消息。

响应: 220 (vsFTPd 2.0.5)

命令: USER bugxm_general

响应: 331 Please specify the password.

命令: PASS ******

响应: 230 Login successful.

命令: OPTS UTF8 ON

响应: 200 Always in UTF8 mode.

状态: 已连接

状态: 开始上传 E:\Users\Desktop\index.htm

命令: CWD /

响应: 250 Directory successfully changed.

命令: PWD

响应: 257 “/”

命令: TYPE I

响应: 200 Switching to Binary mode.

命令: PORT 192,168,182,1,40,59

响应: 200 PORT command successful. Consider using PASV.

命令: STOR index.htm

响应: 550 Permission denied.

错误: 严重文件传输错误

总结:Vsftpd  整个配置过程实际上比较简单,但初次配置总会遇到各种不解的难题,如果稍微耐心一些,这些问题都很容易得到解决。转载请注明出处http://www.bugxm.com/system/linux/534.html ,谢谢。

分享到:
评论

相关推荐

    python入门-30.寻找列表中只出现一次的数字-寻找单身狗.py

    python入门-30.寻找列表中只出现一次的数字——寻找单身狗.py

    布尔教育linux优化笔记

    linux优化笔记,配套视频:https://www.bilibili.com/list/474327672?sid=4496133&spm_id_from=333.999.0.0&desc=1

    知识付费系统-直播+讲师入驻+课程售卖+商城系统-v2.1.9版本搭建以及资源分享下载

    知识付费系统-直播+讲师入驻+课程售卖+商城系统-v2.1.9版本搭建以及资源分享下载,CRMEB知识付费分销与直播营销系统是由西安众邦科技自主开发的一款在线教育平台,该系统不仅拥有独立的知识产权,还采用了先进的ThinkPhp5.0框架和Vue前端技术栈,集成了在线直播教学及课程分销等多种功能,旨在为用户提供全方位的学习体验,默认解压密码youyacaocom

    美妆神域-JAVA-基于springBoot美妆神域设计与实现

    美妆神域-JAVA-基于springBoot美妆神域设计与实现

    原生js制作Google粘土logo动画涂鸦代码.zip

    原生js制作Google粘土logo动画涂鸦代码.zip

    golin 扫描工具使用, 检查系统漏洞、web程序漏洞

    golin 扫描工具使用, 检查系统漏洞、web程序漏洞

    原生态纯js图片网格鼠标悬停放大显示特效代码下载.zip

    原生态纯js图片网格鼠标悬停放大显示特效代码下载.zip

    用AWLUM进行灰色编码2^2n-QAM调制的精确率Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手

    去水印web端独立版web

    去水印web端独立版web

    原生js制作左侧浮动可折叠在线客服代码.zip

    原生js制作左侧浮动可折叠在线客服代码.zip

    Chrome 谷歌浏览器下载

    Chrome 谷歌浏览器下载

    亲测全新完整版H5商城系统源码 附教程

    全新完整版H5商城系统源码 自己花钱买的,亲测可用,需要自行下载 H5商城系统设置是实现商城基本功能的核心部分,涵盖了从网站配置、短信和支付配置,到商品、工单、订单、分站和提现管理等多个模块的设置。以下是详细的设置指南,帮助您快速上手并高效管理商城系统。 测试环境:Nginx+PHP7.0+MySQL5.6 1. 网站配置 设置商城名称、LOGO、标题、联系方式和SEO关键词等,确保商城专业和易于搜索。 2. 短信配置 配置短信接口和模板,用于发送订单通知、验证码等,提升用户体验。 3. 支付接口配置 配置微信、支付宝等支付接口,填写API密钥和回调地址,确保支付流畅。 4. 商品分类管理 对商品进行分类和排序,设置分类名称和图标,便于用户查找商品。 5. 商品管理 添加和管理商品信息、规格、图片等,确保商品信息准确丰富。 6. 工单管理 查看和回复用户工单,记录售后问题,提升用户服务质量。 7. 订单管理 查看订单详情,更新订单状态,支持批量导出,方便订单跟踪。 8. 分站管理 创建不同区域分站,设置权限,统一管理各区域市场。 9. 提现管理

    短信3.141592672893982398674234

    apk安装包

    原生js选项卡插件自定义图片滑动选项卡切换.zip

    原生js选项卡插件自定义图片滑动选项卡切换.zip

    1-宗教信息佛教佛寺寺庙庵堂相关数据-社科数据.zip

    宗教信息佛教佛寺寺庙庵堂相关数据集提供了全国各个地区省市县各个佛教寺庙的详细信息。这些数据不仅包括寺庙的名称和负责人姓名,还涵盖了所属省份、地级市、区县、具体地址、建立日期以及支派类别等关键信息。该数据集整理了超过3万条样本,为研究中国佛教寺庙的分布、历史和文化提供了丰富的第一手资料。这些信息有助于了解佛教在中国的传播和发展,以及寺庙在社会和文化中的作用。数据的整理和提供,对于宗教学、社会学、历史学和文化研究等领域的学者来说,是一个宝贵的资源。

    线性电阻网络的等效电阻计算Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手

    简单的 Python 版本管理.zip

    简单的 Python 版本管理pyenvpyenv 可让您轻松在多个 Python 版本之间切换。它简单、不引人注目,并遵循 UNIX 传统,即使用单一用途的工具来做好一件事。该项目由rbenv和 ruby​​-build分叉而来,并针对 Python 进行了修改。pyenv 的作用是什么......允许您根据每个用户更改全局 Python 版本。为每个项目的 Python 版本提供支持。允许您使用环境变量覆盖 Python 版本。一次搜索多个 Python 版本的命令。这可能有助于使用tox跨 Python 版本进行测试。与 pythonbrew 和 pythonz 相比,pyenv没有……依赖于Python本身。pyenv由纯shell脚本制作。不存在Python的引导问题。需要加载到你的 shell 中。相反,pyenv 的 shim 方法通过向你的 中添加目录来工作PATH。管理虚拟环境。当然,你可以自己创建虚拟环境 ,或者使用pyenv-virtualenv 来自动化该过程。目录安装获取 PyenvLinux/UNIX自动安装程序基本

    Notepad-v2.20工具,是替代Notepad++的首选工具

    Notepad-v2.20工具,是替代Notepad++的首选工具

    原生js随机图片拖拽排序代码.zip

    原生js随机图片拖拽排序代码.zip

    更快、更好、更稳定的Redis桌面(GUI)管理客户端,兼容Windows、Mac、Linux,性能出众,轻松加载海量键值

    更快、更好、更稳定的Redis桌面(GUI)管理客户端,兼容Windows、Mac、Linux,性能出众,轻松加载海量键值

Global site tag (gtag.js) - Google Analytics