vsftpd虚拟用户  

2012-05-19 15:46:59|  分类: GNU/Linux |  标签:ubuntu  vsftpd  ftp  虚拟用户  |举报|字号 订阅

我们登录FTP有三种方式:匿名登录、本地用户登录和虚拟用户登录。

匿名登录:在登录FTP时使用默认的用户名,一般是ftp或anonymous,密码为空;

本地用户登录:使用系统用户登录,用户信息保存在/etc/passwd中;

虚拟用户登录:FTP虚拟用户是FTP服务器的专有用户,使用虚拟用户登录FTP,只能访问FTP服务器提供的资源,大大增强了系统的安全。

下面以Ubuntu 12.04 LTS为例演示vsftpd的配置。

1.打开Ubuntu软件中心,下载安装vsftpd

2.添加虚拟用户口令文件

sudo vi /etc/vsftpd/vftpuser.list

该文件奇数行表示用户名,随后的偶数行表示对应的密码

第一行填写:v1

第二行填写:passwd

保存关闭该文件

3.生成虚拟用户口令认证文件

将刚编写的vftpuser.list换成系统识别的口令认证文件,

需要使用命令db_load

如果没有安装,我的系统会提示安装db-util这个软件包

(或者是db5.1-util这个包,记不清了)

sudo apt-get install db-util

安装完成后,使用db_load命令生成认证文件

sudo db_load -T -t hash -f/etc/vsftpd/vftpuser.list /etc/vsftpd/vftpuser.db

4.编辑vsftpd的PAM认证文件

可以建立新的pam认证文件,然后在vsftpd.conf中指向新的文件;

也可以直接打开vsftpd默认的认证文件修改

sudo vi /etc/pam.d/vsftpd

将里面其他的都注释掉,添加下面这两行:

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

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

5. 建立本地映射用户

FTP虚拟用户需要使用一个系统用户,安全起见,该用户被禁止登录系统。

sudo useradd  vftpuser

sudo usermod -d /var/vftp vftpuser

sudo usermod -s /sbin/nologin vftpuser

理论上来说,上述3条指令本可使用1条指令完成的

sudo useradd -d /var/vftp -s /sbin/nologinvftpuser

但是我输入上述指令后,用户没有创建成功

系统只给了个useradd的使用说明,但没有任何错误提示,

暂时没搞明白原因

6.配置vsftpd.conf

很多人的vsftpd.conf默认路径是/etc/vsftpd/vsftpd.conf,我的不一样

sudo vi /etc/vsftpd.conf

打开文件后修改相关参数:

anonymous_enable=NO

#匿名账户可以不禁用的,但是我还是喜欢禁用掉

#另外,上面这行直接注释掉,例如:“#anonymous_enable=YES”

#好像不能禁用匿名,需要将其值改为“NO”

local_enable=YES

guest_enable=YES #开启虚拟用户

guest_username=vftpuser #FTP虚拟用户对应的系统用户

pam_service_name=vsftpd #PAM认证文件

7.重启vsftpd服务

sudo service vsftpd restart

查看该服务的状态,可使用以下指令:

service vsftpd status

服务重启后,相关的配置信息就生效了

远程机器能够使用最初编写的用户“v1”登录

8.设置共享目录权限

在/var/vftp目录下建立一个pub目录,将其修改为所有人可读写的权限

sudo mkdir /var/vftp/pub

sudo chmod 777 /var/vftp/pub

这样以来,远程用户可以完全操作pub子目录

对根目录只有读的权限

Ubuntu 12.04 LTS为例演示vsftpd虚拟用户 的配置的更多相关文章

  1. Lamp(Ubuntu 12.04 LTS) 之 htaccess的使用

    环境说明:Ubuntu 12.04 LTS Lamp (以apt方式分别安装) 一.明确目标:要确保.htaccess文件起作用,只需要三个重要点: 1.开启apache rewrite模块: (1) ...

  2. Installing OpenCV 2.4.10 in Ubuntu 12.04 LTS

    转自 http://www.samontab.com/web/2012/06/installing-opencv-2-4-1-ubuntu-12-04-lts/ EDIT: I published a ...

  3. (转)Ubuntu 12.04 LTS 构建高可用分布式 MySQL 集群

    本文的英文版本链接是 http://www.mrxuri.com/index.php/2013/11/20/install-mysql-cluster-on-ubuntu-12-04-lts.html ...

  4. MOUNT MACBOOK DISK (OSX / HFS+) ON UBUNTU 12.04 LTS WITH READ/WRITE

    MOUNT MACBOOK DISK (OSX / HFS+) ON UBUNTU 12.04 LTS WITH READ/WRITE So you want to mount your HFS+ ( ...

  5. 【转】ubuntu 12.04 LTS将关闭最大化最小化移动到右上角

    原文网址:http://www.4byte.cn/learning/114801.html ubuntu 12.04 LTS将关闭最大化最小化移动到右上角   还是按下“ALT +F2”组合键,输入g ...

  6. Ubuntu 12.04 LTS 构建高可用分布式 MySQL 集群

    本文的英文版本链接是 http://xuri.me/2013/11/20/install-mysql-cluster-on-ubuntu-12-04-lts.html MySQL Cluster 是 ...

  7. 如何让Ubuntu 12.04 LTS更炫更具吸引力

    Ubuntu 12.04 LTS震撼发布   适逢七周岁生日之际,Ubuntu正式推出了第四个LTS长期支持版本,开发代号Precise Pangolin的Ubuntu 12.04在2012年4月26 ...

  8. Ubuntu 12.04 LTS(64 bit) + RTL8188CU无线网卡驱动

    . . . . . 之前家里台式机上安装的是win7+CentOS双系统,但是CentOs的无线网卡驱动不知为何无论如何都安装不上,再加上这段时间一直很忙,所以一直使用着win.这几天事情忙得差不多了 ...

  9. ubuntu 12.04 LTS server 中文乱码【转】

    ubuntu 12.04 LTS server 中文乱码 最近装了一台ubuntu 12.04 server装完后是没有桌面的,后来又手动安装了桌面,但进行后发现桌面是乱码,应该是缺少字体在googl ...

随机推荐

  1. 希尔排序(Shell Sort)

    一.思路 希尔排序是基于插入排序算法,通过允许不相邻的元素进行交换这一简单的改进,使数组变为局部有序,最终再用插入排序. 希尔排序的思想是使数组中任意间隔h的元素都是有序的.这样的数组被称为h有序数组 ...

  2. 【转载】Dom4j的使用(全而好的文章)

    Dom4j的使用(全而好的文章) Dom4j 使用简介 作者:冰云 icecloud(AT)sina.com 时间:2003.12.15   版权声明: 本文由冰云完成,首发于CSDN,未经许可,不得 ...

  3. HDU 4001 To Miss Our Children Time(2011年大连网络赛 A 贪心+dp)

    开始还觉得是贪心呢... 给你三类积木叫你叠楼房,给你的每个积木包括四个值:长 宽(可以互换) 高 类型d d=0:你只能把它放在地上或者放在 长 宽 小于等于 自己的积木上面 d=1:你只能把它放在 ...

  4. Sobel导数

    Sobel 导数 目标 本文档尝试解答如下问题: 如何使用OpenCV函数 Sobel 对图像求导. 如何使用OpenCV函数 Scharr 更准确地计算  核的导数. 原理 Note 以下内容来自于 ...

  5. R语言矩阵运算

    R语言矩阵运算 主要包括以下内容:创建矩阵向量:矩阵加减,乘积:矩阵的逆:行列式的值:特征值与特征向量:QR分解:奇异值分解:广义逆:backsolve与fowardsolve函数:取矩阵的上下三角元 ...

  6. BZOJ 2527 [Poi2011]Meteors:整体二分

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2527 题意: 有n个国家和m个空间站,每个空间站都属于一个国家,一个国家可以有多个空间站, ...

  7. SpringMVC 文件上传及下载

    首先需要导入jar包 创建一个jsp页面 package cn.happy.Controller; import java.io.File; import javax.servlet.http.Htt ...

  8. 理解javascript this 值

    如何确定this的值 this值会被传递给所有函数,this的值是基于运行时调用函数的上下文. 例如:从全局作用域调用sayFoo函数时,this引用window对象 当它作为myObject的一种方 ...

  9. 机器学习(十四)— kMeans算法

    参考文献:https://www.jianshu.com/p/5314834f9f8e # -*- coding: utf-8 -*- """ Created on Mo ...

  10. 修改(python) mysql 数据库 使其可以支持插入中文

    先建立一个数据库,名字叫xsk #!/usr/bin/python3 # -*- coding:utf-8 -*- import pymsql # 打开数据库连接(本机,用户,密码,数据库名) db ...