`

ubuntu下安装和配置vsftp,同时支持本地用户和虚拟用户登录

 
阅读更多

我的ubuntu是12.04服务器版本,我的文章绝对都是自己从新手的角度考虑,不是东抄西凑随便胡弄大家的

一、直接命令安装

apt-get install vsftpd

   安装完成之后,会生成一个/srv/ftp目录

   用如下命令都可以查看到是否安装成功

ps -e | grep vsftp
显示结果:
 1366 ?        00:00:00 vsftpd
或者
netstat -nat
有21端口记录:
tcp        0      0 0.0.0.0:21              0.0.0.0:*

   这样就可以使用如下命令,进行vsftp的操作了

service vsftpd start
service vsftpd restart
service vsftpd stop

 

二、我期望指定一个本地用户tong,只能对/var/www目录上传下载文件

     设置以下几项即可

vi /etc/vsftpd.conf
anonymous_enable=NO  #禁止匿名登录
local_enable=YES   #开启本地用户访问ftp
local_root=/var/www  #访问ftp的默认路径
write_enable=YES  #开启上传、写功能

保存退出,继续
useradd -r -g www -d /var/www tong  
#我将tong用户的默认目录指定在了/var/www,用户组为www,其实这里直接用useradd tong也没关系
#给用户赋初始密码
passwd tong
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

保存退出

    重启vsftpd服务

/etc/init.d/vsftpd restart

   测试是否能成功访问

 

ftp localhost
Name (localhost:root): tong
Password:
230 Login successful.登录成功

ftp> pwd查看当前所处目录,这里显示是"/"
ftp> ls查看当前目录下的文件,确定是在/var/www目录下
    到此本地用户访问ftp就已经成功

 

    大家可以再增加个用户,测试一下是否可以登录到/var/www目录下,也可以用其他ftp工具连接,

    效果是一  样的!!

 

三、支持虚拟用户登录

    上面我们只是支持了本地用户登录,但是一个项目组创建太多的系统用户,总感觉没必要,特别是团队特别大的时候,所以虚拟用户很有必要。其他网上大多数都讲到了虚拟用户怎么配,但是他们不明白的是,虚拟用户可以了,系统用户又不行了;或者系统用户可以了,虚拟用户又不行了;其实配置两种方式同时公用,只在一点捅破,下面来

    vsftpd的认证方式都是通过pam认证的,我这里只讲关键,有愿意研究pam机制的,可以看这里http://kuliuheng.blogbus.com/logs/38544503.html   这里讲的比较详细

   我打算创建一个虚拟用户vtong,密码是vtong,来访问/var/www目录

   创建虚拟用户列表文件,其实就是一个预编辑文件,路径随便,文件名也命名!

 

cd /home
vi loguser.txt
输入内容,一行是用户名,一行是密码,如果要增加多个虚拟用户,以此类推。
【这里是可以随时添加或减少的,改变之后只要重新生成一下虚拟用户库即可,后面有介绍】
vtong
vtong
保存退出
   安装生成数据库的linux工具包db_utile,你可以用apt-get下载最新的,最新的可以这样看

 

 

apt-get install db想看当前源source最新的db-utile,按tab键补全,显示如下
db4.7-util        dbar              dbtoepub
db4.8-util        dbconfig-common   dbus
db4otool          dbeacon           dbus-1-dbg
db5.1-doc         dbench            dbus-1-doc
db5.1-sql-util    dbf2mysql         dbus-java-bin
db5.1-util        dblatex           dbus-test-runner
dbacl             dbndns            dbus-x11
dballe            dbs               db-util
dballe-common     dbskkd-cdb        dbview
这样我们知道db5.1-util是最新版本,你的或许是别的版本,然后安装

apt-get install db5.1-util
    安装好之后执行以下命令,根据刚才的文件loguser.txt生成库文件

 

 

db5.1_load -T -t hash -f /home/loguser.txt /etc/vsftpd_login.db
    设置一下数据库文件访问权限

 

 

chmod 600 /etc/vsftpd_login.db
    配置PAM文件/etc/pam.d/vsftpd,大家查看/etc/vsftpd.conf就会发现pam_service_name参数就是指定该认证文件的
vi /etc/pam.d/vsftpd
将以下两行放到文件的最开头,其余的都不用改变
auth sufficient pam_userdb.so db=/etc/vsftpd_login
account sufficient pam_userdb.so db=/etc/vsftpd_login

切记,不是下面两行,网上其他地方都写的是如下形式
auth required pam_userdb.so db=/etc/vsftpd_login
account required pam_userdb.so db=/etc/vsftpd_login
    sufficient和required的有很大区别,PAM认证有介绍,如下表,不想了解可直接跳过

----------------------------------------------

                                                         模块控制标识以及返回值表
控制标志                    成功结果                                                                    失败结果
----------------------------------------------
requisite              堆栈继续执行                                                         堆栈立刻以失败方式中断
required              堆栈继续执行                                                         堆栈继续执行,但是以失败方式中断
sufficient              堆栈立刻以成功方式中断,除非之前模块失败了    堆栈继续执行
optional               堆栈继续执行                                                         堆栈继续执行,只有当模块丢失或者给出
----------------------------------------------
   继续,为虚拟用户创建本地用vsftpd,我们以后添加的所有虚拟用户,都依赖与该vsftpd本地用户
useradd vsftpd -d /home/vsftpd -s /bin/false  #如果没有/home/vsftpd目录可手动创建
chown vsftpd:vsftpd /home/vsftpd
    最后,编辑/etc/vsftpd.conf文件,确保以下两个变量有配置
guest_enable=YES 
guest_username=vsftpd
保存退出
    所有配置完成
    重启vsftpd
service vsftpd restart
ftp localhost
用刚才的虚拟用户名和密码登陆,访问成功,路径正确
    至此,我们的vsftpd就可以本地用户和虚拟用户同时登录了,其他vsftpd相关的参数配置可以查看man vsftpd.conf文件,谢谢大家!
 
分享到:
评论

相关推荐

    linux 下安装 vsftp 图解

    本篇文章将详细介绍如何在Linux环境下安装和配置VSFTPD,以帮助用户建立自己的FTP服务。 首先,我们需要了解安装VSFTPD的基本步骤: 1. **更新系统**: 在开始安装任何新软件之前,确保你的Linux系统是最新状态,这...

    安装vsftp服务器借鉴.pdf

    例如,为了启用本地用户登录,需确保`local_enable=YES`。 三、系统设置 为了安全起见,通常需要关闭匿名访问,设置`anonymous_enable=NO`。同时,可配置监听端口,如`listen_port=21`。确保防火墙允许FTP流量通过...

    Ubuntu 10.04 搭建vsftpd 2.2.2

    安装时,软件会创建一个配置文件“vsftpd.conf”在/etc 目录下,并创建一个系统用户“ftp”,该用户的密码为“ftp”。同时,软件还会在/srv 目录下创建一个 ftp 文件夹,该文件夹的所有者是“root”,群组是“ftp”...

    vsFTP服务器初步管理

    - `local_enable=YES`:允许本地用户登录。 - `write_enable=YES`:允许用户上传文件。 - `user_sub_token=$USER`:在配置文件中动态替换用户名称。 以上就是关于vsFTP服务器初步管理的一些关键知识点。通过理解和...

    vsftpd ubuntu14.04服务端配置手册

    本文档将详细介绍如何在 Ubuntu 14.04 系统上安装和配置 vsftpd 服务,包括必要的软件安装、虚拟用户的添加及管理、权限配置等方面,以确保服务的安全性和稳定性。 #### 二、安装必要软件 首先,确保服务器已更新...

    Linux VSFTP服务器

    VSFTP以其安全特性著称,支持用户隔离、虚拟主机、SSL/TLS加密以及Chroot jail功能,限制用户只能访问其主目录,从而提高系统安全性。此外,它还提供了匿名FTP访问,便于用户分享文件而无需登录。 二、安装VSFTP 在...

    基于webmin的vsftpd服务器

    - 配置本地用户和虚拟用户的访问规则。 - 定制FTP目录的权限,限制特定用户的上传和下载操作。 - 启用SSL/TLS加密,增强FTP连接的安全性。 4. 测试和优化:完成配置后,务必测试FTP服务器的功能,确保一切按照...

    vsFTPd-for-starter.rar_vsftp_vsftpd

    vsFTPd支持用户隔离,这意味着每个用户只能访问其主目录,不能访问其他用户的文件。这可以通过在vsftpd.conf中设置`user_sub_token=$USER`和`local_root=/home/$USER`来实现。 6. **SSL/TLS安全连接** 要启用SSL/...

    vsftpd FTP服务器架设

    为了限制本地用户的FTP访问,可以通过设置`local_enable=YES`来启用,同时可以通过`chroot_local_user=YES`将用户限制在他们的主目录内,增强安全性。 `login.txt`可能是一个用于记录FTP登录信息的日志文件。在...

    Linux网络服务配置详解

    - **本地用户工作目录限制**:如何限制本地用户的登录目录。 #### 九、综合案例 - **BIND服务器的view视图案例**:展示如何根据不同客户端的IP地址返回不同的DNS解析结果。 - **网络自动安装服务器构架**:通过DHCP...

    vsftpd-2.1.0.tar.gz

    4. **支持虚拟用户**:可以通过pam或MySQL等认证方式实现虚拟用户管理。 **安装与配置** 在Linux系统中,如Ubuntu、CentOS等,通常可以通过包管理器如apt或yum安装vsftpd。安装完成后,需要编辑`/etc/vsftpd/...

Global site tag (gtag.js) - Google Analytics