本文主要内容有:linux中安装vsftpd(也就是FTP服务)。

1、使用匿名用户上传和下载文件。

2、使用身份验证的方式上传和下载文件。

3、建立虚拟用户(步骤比较多)。

4、为单独的用户建立单独的上传和下载机制(花那么多时间只是为了您知道“兂”这个字)。

首先是安装vsftpd服务(也就是FTP服务),安装完成之后使用rpm -qc vsftpd查看文件的安装目录,也可以使用grep命令过滤掉以#开头的注释文件并查看配置文件。

下面是关闭iptables防火墙和SElinux策略,然后使用echo在FTP站点中创建一个.txt文件。

如果说是匿名访问的话,此时就可以直接开启vsftpd服务,开启之后也可以检查FTP的21端口开启了没有。

下面可以使用win7客户机,访问linux的vsftpd服务,在命令行中切换到C盘下面。然后输入“ftp 加IP地址”服务器的IP地址,接着输入用户名ftp或者anonymous提供任意密码访问,然后使用get命令把111.txt文件下载到win7客户机上。

因为我切换到了C盘,所以打开C盘就可以看到下载下来的文件,修改个名字222.txt上传文件试一下,结果证明此时是不能上传的(没有设置权限和参数)。

此时使用vi /etc/vsftpd/vsftpd.conf命令编辑vsftpd的主配置文件。把下面三个允许匿名用户上传的参数前面的#号去掉,或添加上去。

现在设置目录权限,注意这里更改权限只能修改ftp下面的某个目录的权限,不能修改ftp目录的权限,一旦修改ftp目录权限,将所有用户都无法访问。我这里权限设置的是ftp目录下面的pub目录。

上面配置完成并且重启vsftpd服务后,回到win7客户机使用by退出登陆,然后再重新登陆cd切换到ftp下面的pub目录。使用put上传文件222.txt成功。同样使用

ftp> ls  //查看pub目录下的文件,ftp> delete 222.txt  //表示删除文件

下面做本地用户登陆访问,首先创建两个用户,并设置密码。

可以到客户机上先验证一下此时用户所能做的事情,可以看到用户zhangsan竟然可以切换到root根目录中,这样是很不安全的。

下面回到linux中编辑vsftpd的主配置文件,把其中的“chroot_local_user=YES”注释去掉(解释在图中)。重启服务。

Win7客户机上同样需要by退出后重新登录,显示随便怎么切换都是在自己的家目录而已。

另外在“/etc/vsftpd/”目录下,有个可以控制用户登陆的文件user_list默认这里面的用户是禁止登陆FTP的。可以使用echo命令把zhangsan用户追加进去。

再到win7客户机上面去登陆,表示登陆失败了。

同样的道理,如果把主配置文件里面的userlist_enable=YES改为deny=YES那么上面的user_list中的用户将只是允许登陆的用户。

下面创建虚拟用户,虚拟用户就是在FTP用户和系统用户之间建立映射关系,首先在/etc/vsftpd目录下编辑配置文件vuser,内容为:

jack       /*奇数行为用户*/

123123     /*偶数行为密码*/

jerry

123123

db_load -T -t hash -f vuser vuser.db /*把刚才创建的用户文件转换成数据库文件*/ chmod 600 vuser、chmod 600 vuser.db /*设置权限不让别人看见里面的用户名和密码信息*/(注意文件路径,文中使用的是绝对路径)。

useradd -d /opt/vuser -s /sbin/nologin vuser /*创建一个用户为vuser 指定家目录/opt/vuser 并切不使用shell登陆*/。

编辑pam认证模块支持虚拟用户的登陆vi /etc/pam.d/vsftpd.vu

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

account required pam_userdb.so db=/etc/vsftpd/vuser /*此处两个文件vuser并不是普通文件而是刚才创建的vuser.db数据库文件,此处必须省略不写*/

然后再vi /etc/vsftpd/vsftpd.conf编辑主配置文件,注释掉上面的pam认证服务文件,然后在下面编辑。

guest_enable=YES  //开启虚拟用户登陆。

guest_username=vuser  //指定虚拟用户。

pam_service_name=vsftpd.vu  //使用pam认证登陆

配置完成之后重启或者重新加载配置文件。这里最好也设置一下系统用户vuser的家目录文件权限(为了后面可以写入)。

然后使用win7客户机重新访问FTP服务,使用虚拟用户jack进行访问,put上传文件也是可以的(如果你可以上传但是ls看不到文件那是权限的问题)。

还可以对单独用户进行配置,进入主配置文件按G到末行插入user_config_dir=/etc/vsftpd/vu_dir  #单独用户配置文件夹位置。Mkdir创建上面配置文件中所指定的目录,vi进入创建jack用户配置文件,在里面编辑anon_umask=022  #指定上传文件的权限。

使用win7客户机进行访问,再次上传个文件。

回到linux查看刚才上传的文件的权限,能够看到已经是644权限。

经验总结:用户名,编辑目录位置,服务开启加载状态等都是容易忘记和出错的地方。还有权限设置,一般匿名访问都是用于公共场合使用,建议不要给最大权限。用户身份验证的时候注意应该给用户的权限,不能让他权限太多。虚拟用户登陆时用户设置别搞错了。

好了,实验完成谢谢大家!

转载于:https://blog.51cto.com/zhang2015/1661086

linux中的FTP服务配置详解相关推荐

  1. Linux下的samba服务配置详解

    Linux下的samba服务配置详解 一.Samba介绍 二.Samba工具及特性 三.搭建环境介绍 四.Samba配置步骤 1.服务端操作 2.在客户端操作 五.测试用户的权限情况 一.Samba介 ...

  2. Linux中Nginx安装与配置详解及常见问题

    3 Nginx安装 3.1 安装前的准备     1)准备 pcre-8.12.tar.gz.该文件为正则表达式库.让nginx支持rewrite需要安装这个库.     2) 准备 nginx-1. ...

  3. 【Linux】循序渐进学运维-服务篇-FTP服务配置文件详解

    大家好,我是互联网老辛,本文是Linux运维-循序渐进学运维-服务篇的第14篇文章 文章目录 前言 ftp配置文件详解 1. 常见默认配置参数 2. 常见参数的含义 配置文件使用举例 1. 创建本地用 ...

  4. 从零开始的Nginx详解(3)【Nginx-Https服务配置详解】

    HTTP图片服务器及HTTPS 一.HTTP图片服务器 1.使用Nginx作为图片服务器 2.配置步骤 2.配置Nginx 3.测试 二.HTTPS详解 1.ssl简介: 2.HTTPS 三.Ngin ...

  5. linux中iptables配置文件及命令详解详解

    linux中iptables配置文件及命令详解详解 2018年05月04日 14:23:41 hxpjava1 阅读数 956 linux中iptables配置文件及命令详解详解 iptables配置 ...

  6. 服务器文件共享不同用户互访设置,samba配置_samba文件共享服务配置详解

    摘要 腾兴网为您分享:samba文件共享服务配置详解,之了课堂,央视影音,人人理财,平安证券等软件知识,以及游戏通用窗口化工具,福建省校讯通,净天之命1.71,teamviewer安卓,宝贝听听,手机 ...

  7. SpringBoot配置文件中spring.profiles.active配置详解

    SpringBoot配置文件中spring.profiles.active配置详解 1.多环境配置 我们在开发Spring Boot应用时,通常同一套程序会被应用和安装到几个不同的环境,比如:开发.测 ...

  8. linux PS -df,linux中ps跟df命令详解

    linux中ps和df命令详解 linux下PS命令 linux上进程有5种状态: 1.运行(正在运行或在运行队列中等待) 2.中断(休眠中,受阻,在等待某个条件的形成或接受到信号) 3.不可中断(收 ...

  9. Linux中/proc目录下文件详解

    Linux中/proc目录下文件详解(一) 声明:可以自由转载本文,但请务必保留本文的完整性. 作者:张子坚 email:zhangzijian@163.com 说明:本文所涉及示例均在fedora ...

最新文章

  1. [系统开发] Postfix 邮件管理系统
  2. 阿里智能对话交互实践与创新
  3. GitLab首席执行官Sid Sijbrandij畅谈当前开发实践
  4. Linux 软件管理工具之rpm、yum
  5. cdn收费方式有几种
  6. 一个电脑多个github、gitlab、oschina账户
  7. 谈谈我的编程之路---WAMP(二)
  8. hystrix是什么?
  9. 在 IntelliJ IDEA 中创建基本的 Maven 多模块项目
  10. [导入]Dreamweaver插入Flash参数
  11. 【LeetCode笔记】剑指 Offer 65. 不用加减乘除做加法(Java、位运算、二刷)
  12. jQuery.grep()
  13. 北冥有 Data,其名为鲲,鲲之大,一个 MySQL 放不下!
  14. 最小二乘法支持向量机一般用在什么场合_人工智能科普|机器学习重点知识——支持向量机SVM...
  15. 解决 ThinkPad x270 安装 ubuntu 14.04 后的网络问题
  16. 卸载有管理密码的瑞星企业版客户端
  17. 【CSDN软件工程师能力认证学习精选】Python网络编程(socket编程)
  18. RTK和RTD有什么区别
  19. mysql5.6配置文件详解(二)
  20. android 圆形头像

热门文章

  1. 一小段jQuery代码的分析与优化
  2. 前端面试题:算法-冒泡排序
  3. jenkins修改启动用户,解决执行脚本权限问题
  4. Swift的类,及存储属性,计算发发样码
  5. QTP的那些事--通过WMI获取session中的用户信息的验证码
  6. [小技巧] gcc attribute error 属性小试
  7. 浏览器允许的并发请求资源数是有限制的-分析
  8. Xcode bug: imageNamed:方法返回nil
  9. 基于Hash算法的高维数据的最近邻检索
  10. java数组简单介绍以及其方法