ftp安装和虚拟用户创建(终于搞清楚了)

之前领导叫我在Linux下搭建一个FTP服务器,搞一个公司内部人员文件结构,并对相应人员设置相应的访问权限,之前网上有很多安装方法,但是都是很傻瓜式地安装,用户简单地创建,而我当时也是用的最笨的方法创建了很多的本地用户,并对本地用户实现了领导布置的要求,但添加用户,并对用户地管理起来很麻烦,特别是添加新用户的时候,最终没有能够搞定简单实用的这个问题。知道这个问题出现在创建的是本地用户,而非虚拟用户,当时用的Ubuntu12.04的好像没有db_load 安装的时候,又没有对应的数据源,当时,就没有继续做下去了(当时就是问题解决了,但是不实用,所以没有用起来,也不想搞了,暂放一边了)。今天重新整理自己的知识时,又将该问题翻了出来,准备实践一遍。接下来就是给大家在网上找了一篇还行的文章,分享一下:

安装

  1.安装

  sudo apt-get install vsftpd

  2 查看安装结果

  安装完毕,检查vsftpd进程是否已启动,可以查看进程或者查看监听端口

  1.   ps  -eaf|grep  vsftpd
  2.   [email protected]:~$ ps -eaf | grep vsftpd
  3.   root      2244     1  0 21:08 ?        00:00:00 /usr/sbin/vsftpd
  4.   tony      2408  2104  0 21:11 pts/0    00:00:00 grep --color=auto vsftpd
  5.   netstat -tnl | grep :21
  6.   [email protected]:~$ netstat -tnl | grep :21
  7.   tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN
  8.   端口21正在被监听

  3. 尝试匿名用户登录

  安装完后不用做任何配置既可用匿名方式进行访问,默认的ftp文件夹为/srv/ftp。

  登录可以在浏览器中,文件夹输入框中以及类型windows/Linux终端中进行测试。

  建议使用windows/Linux终端测试,失败了会有错误输出,可以根据错误进行调试。

  更改配置文件vsftpd.conf

  anonymous_enable=YES

  匿名登录,用户名称ftp,密码不输入,直接回车

  1.   C:\Users\Tony>ftp 192.168.1.108
  2.   连接到 192.168.1.108。
  3.   220 (vsFTPd 2.2.2)
  4.   用户(192.168.1.108:(none)): ftp
  5.   331 Please specify the password.
  6.   密码:
  7.   230 Login successful.

  登录到的目录就是/srv/ftp目录,在里面的文件就能够查看到

  4. 使用ubuntu的账户登录

  此时就访问ftp账户,默认是linux的账户,使用cmd中登录。

  需要注意的是,ftp服务器端文件路径是用户的家目录

  1.   C:\Users\Tony>ftp 192.168.1.108
  2.   连接到 192.168.1.108。
  3.   220 (vsFTPd 2.2.2)
  4.   用户(192.168.1.108:(none)): tony
  5.   331 Please specify the password.
  6.   密码:
  7.   230 Login successful.

  5. 在ubuntu中,vsftpd的主要配置文件分布如下:

  1.   /etc/vsftpd.conf      vsftpd服务器的配置文件
  2.   /usr/sbin/vsftpd      vsftpd服务器的进程文件
  3.   /etc/pam.d/vsftpd     vsftpd服务器的PAM接口配置文件
  4.   /var/ftp              vsftpd服务器匿名用户的工作目录

  6. vsftpd的开始、关闭和重启

  1.   sudo /etc/init.d/vsftpd  start   #开始
  2.   sudo /etc/init.d/vsftpd  stop    #关闭
  3.   sudo /etc/init.d/vsftpd  restart #重启

创建虚拟账户

  1.安装生成虚拟帐号数据库工具db

  sudo apt-get install db4.8-util

  2. 更改vsftp.conf的配置

  修改配置之前,先备份当前配置

  sudo cp /etc/vsftp.conf /etc/vsftp.conf.old

  配置的服务器中 vsftpd.conf的参数使用如下:

  1.   listen=YES
  2.   #listen_ipv6=YES
  3.   anonymous_enable=NO //允许匿名用户访问,若禁止使用NO
  4.   local_enable=YES    //允许本地用户访问,若禁止则使用NO
  5.   write_enable=YES //表示是否允许本地用户有上传权限的,YES表示可以,NO表示禁止,也取决于客户端连接时使用的客户端工具
  6.   #local_umask=022 //设置本地用户上传建立文件时的权限掩码
  7.   #anon_upload_enable=YES //匿名用户上传文件使能
  8.   #anon_mkdir_write_enable=YES //匿名用户可以创建目录
  9.   dirmessage_enable=YES //用户切换进入目录时显示.message(如果存在)文件的内容
  10.   message_file=Welcome
  11.   xferlog_enable=YES      //是否开启传输日志的
  12.   connect_from_port_20=YES ////连接控制端口为20
  13.   chown_uploads=YES
  14.   chown_username=ftp
  15.   chroot_local_user=YES //所有的本地用户都被锁定在家目录下
  16.   chroot_list_enable=YES
  17.   chroot_list_file=/etc/vsftpd/vsftpd.chroot_list
  18.   xferlog_file=/var/log/vsftpd.log
  19.   xferlog_std_format=YES
  20.   idle_session_timeout=600
  21.   data_connection_timeout=120 //#数据连接的超时时间
  22.   #nopriv_user=ftpsecure
  23.   #async_abor_enable=YES
  24.   ascii_upload_enable=YES
  25.   ascii_download_enable=YES
  26.   ftpd_banner=Welcome to blah FTP service. //login欢迎信息
  27.   #deny_email_enable=YES
  28.   max_clients=10
  29.   max_per_ip=5
  30.   local_max_rate=256000
  31.   #hide_ids=YES
  32.   idle_session_timeout=3000
  33.   guest_enable=YES
  34.   guest_username=ftp
  35.   user_config_dir=/etc/vsftpd/vsftpd_user_conf
  36.   pam_service_name=vsftpd.vu

  3. 建立各账户的home目录

  在/home目录建立ftp的账户ftpdir目录

  1. cd /home/ftp/
  2.   sudo  mkdir  ftpdir

  然后在ftpdir目录下创建admin, tony目录

  1.   cd  ftpdir
  2.   sudo  mkdir admin tony

  4.为虚拟用户创建本地系统用户

  虚拟用户家目录为/home/ftpdir, 用户登录终端设为/bin/false(即使之不能登录系统)

  1.   sudo useradd ftp -d /home/ftpdir -s /bin/false
  2.   sudo chown -R ftp:ftp /home/ftpdir

  5. 创建虚拟用户数据库

  新建loguser.txt文件,

  sudo vi /home/loguser.txt

  里面输入虚拟用户名和密码,格式如下

  1.   admin
  2.   admin
  3.   tony
  4.   tony

  注意不要多空格和空行,其中奇数行为用户名,偶数行为密码。

  最后一行需要回车(否则建立数据库文件时无法识别最后一行,导致报奇数行错误)。

  1.   新建一个文件夹/etc/vsftpd,放置配置文件
  2.   sudo  mkdir  /etc/vsftpd
  3.   然后执行
  4.   sudo db4.8_load -T -t hash -f /home/loguser.txt /etc/vsftpd/vsftpd_login.db
  5.   最后设置一下数据库文件的访问权限
  6.   sudo chmod 600 /etc/vsftpd/vsftpd_login.db

  6. 配置PAM文件

  1.   新建/etc/pam.d/vsftpd.vu,并编辑,
  2.   sudo touch /etc/pam.d/vsftpd.vu
  3.   sudo vi /etc/pam.d/vsftpd.vu
  4.   输入内容如下:
  5.   auth  required  /lib/security/pam_userdb.so  db=/etc/vsftpd/vsftpd_login
  6.   account  required  /lib/security/pam_userdb.so  db=/etc/vsftpd/vsftpd_login

  7.新建etc/vsftpd /vsftpd_user_conf文件夹

  1.   sudo  mkdir  /etc/vsftpd/vsftpd_user_conf
  2.   现在,我们要把各个用户的配置文件放到目录/etc/vsftpd/vsftpd_user_conf中
  3.   cd  /etc/vsftpd/vsftpd_user_conf
  4.   sudo touch admin tony

  8. 配置admin虚拟用户

  权限:上传,下载删除,重命名.

  1.   sudo vi /etc/vsftpd/vsftpd_user_conf/admin
  2.   里面添加
  3.   write_enable=YES
  4.   anon_world_readable_only=NO
  5.   anon_upload_enable=YES
  6.   anon_mkdir_write_enable=YES
  7.   anon_other_write_enable=YES
  8.   local_root=/home/ftpdir

  9. 配置tony虚拟用户

  权限:上传,下载

  1.   sudo vi /etc/vsftpd/vsftpd_user_conf/tony
  2.   里面添加
  3.   write_enable=YES
  4.   anon_world_readable_only=NO
  5.   anon_upload_enable=YES
  6.   anon_mkdir_write_enable=NO
  7.   anon_other_write_enable=NO
  8.   local_root=/home/ftpdir/tony

  10. 新建/etc/vsftpd/vsftpd.chroot_list

  1.   sudo touch /etc/vsftpd/vsftpd.chroot_list
  2.   sudo vi /etc/vsftpd/vsftpd.chroot_list
  3.   里面添加
  4.   admin

在按照以上的过程去安装,有可能Linux的数据源里面根本就找不到对应的安装包,可以通过手动安装的方法;网上找了篇db4的安装问题,分享一下:

1、下载安装文件:


下载地址直达:http://cz.archive.ubuntu.com/ubuntu/pool/universe/d/db4.8/

2、dpkg - i  db4.8-util_4.8.30-11ubuntu1_amd64.deb

即可

命令使用:这里针对Vsftpd虚拟用户的创建

sudo db4.8_load -T -t hash -f /home/user.txt /etc/vsftpd_login.db

当然也有命令安装db的方法:

已解决了  sudo apt-get install  db-util

       在这又不得不来句粗口,尼玛,之前找了那么久的解决办法,原来是没有找对方法,网上一大堆也是无用的,有些方法更本用不了,回头想想当你的知识积累起来了之后,你就会忽然想起来这问题的解决方法,自己都会被自己惊呆,当年这么简单的问题居然都不会,当年真是傻呆笨啊!

总结:知识积累是多么地重要啊!

原文地址:https://www.cnblogs.com/cqlb/p/9540747.html

时间: 2024-08-30 06:11:38

ftp安装和虚拟用户创建(终于搞清楚了)的相关文章

ftp服务----基于虚拟用户的创建

虚拟用户是只创建一个系统账号将所有FTP账号映射到该用户访问FTP时使用的,需要为FTP传输服务单独建立用户数据库文件,这些帐号是在服务器系统中不存在的.虚拟的账号不直接使用系统账号安全性高,本地用户则是直接使用系统账号安全性相对要低. 实验目的:进行ftp访问使用,提高系统账户安全性 实验环境:一台redhat6.5 虚拟机 一台win7虚拟机 基本命令: /etc/vsftpd/vsftpd.conf 配置文件 netstat -ntl 查看端口开启状况 db_load -T -t hash

Centos下安装FTP并进行虚拟用户访问方式配置

1.准备工作 yum install pam* yum install db4* 首先安装PAM(用于用户认证)和DB4(用于生成虚拟用户的用户名密码的db文件). 2.安装vsftpd yum install vsftpd 设置vsftpd开机启动: chkconfig vsftpd on 通过chkconfig --list 查看启动项 3. 配置vsftpd.conf anonymous_enable=NO local_enable=YES write_enable=YES local_u

Linux FTP虚拟用户创建

(1)cd /etc/vsftpd/(2)vim vuser.list创建用户zhaosi和liwu 密码均为redhat(奇数行为帐户名,偶数行为密码)(3)db_load -T -t hash -f vuser.list vuser.db(4)file vuser.db(5)chmod 600 vuser.db(6)rm -f vuser.list(7)设置/var/ftproot/为本地用户家目录(8)chmod -Rf 755 /var/ftproot/赋予家目录权限(9)vim /et

Ubunton下搭建ftp服务器 实现虚拟用户、本地用户、匿名用户的登陆及权限

#在ubunton系统下安装和配置ftp可以说是比较简单的 本篇教程是为了解决一下问题 需要搭建ftp服务器实现三种用户的登陆及权限管理 其中 anon可以自由的到特定的目录里下载东东: stu则可以到特定的目录里上传东东; 而tearcher,则可以对特定的目录里上传.下载东东; admin则可以对stu.teacher的数据进行统一的管理. 另外,做为系统上已经有的本地用户则可以登录自己的home目录. 针对上面的需求,ftp需要开通对匿名用户.本地用户.及虚拟用户的支持.并且特别对虚拟用户

生产环境搭建ftp并配置虚拟用户

虚拟用户的特点是只能访问服务器为其提供的FTP服务,而不能访问系统的其它资源.所以,如果想让用户对FTP服务器站内具有写权限,但又不允许访问系统其它资源,可以使用虚拟用户来提高系统的安全性.在VSFTP中,认证这些虚拟用户使用的是单独的口令库文件(pam_userdb),由可插入认证模块(PAM)认证. 虚拟用户并非系统上的用户,但它必须映射到系统上的某个用户,虚用户的家目录属主和属组就这系统上的这个用户.并且每个虚用户有自己的用户名和密码,每个虚用户也可以单独设定对家目录的访问权限.使用文件的

Pure-ftpd服务安装及虚拟用户设置

之前一直用的vsftpd,但换了工作之后,发现公司用的是pure-ftpd,然后对比看了下,发现pure-ftpd还是功能强大很多,但配置相对复杂些.然后工作中经常要开ftp账号,供其他同事使用.故简单做些记录. 安装: sudo apt-get install pure-ftpd 虚拟用户设置: 首先,可以在系统中添加相应的用户和组,如用户ftpuser 和组ftpgroup . groupadd ftpgroup useradd ftpuser -g ftpgroup -d /home/ft

linux下ftp和ftps以及ftp基于mysql虚拟用户认证服务器的搭建

1.FTP协议:有命令和数据连接两种 命令连接,控制连接:21/tcp 数据连接: 主动模式,运行在20/tcp端口 和 被动模式,运行在随机端口 数据传输模式(自动模式):有二进制(mp3,jpg等)和文本(html)两种传输模式 ftp服务器端程序:wu-ftpd:vsftpd pureftpd Filezilla Serv-U ftp客户端程序:CLI文本模式命令:ftp lftp GUI图形界面软件:gftpd FlashFXP Cuteftp Filezilla vsftpd:命名为V

实现FTP基于MYSQL虚拟用户认证

两台主机实现:一台作为ftp服务器,一台作为mysql服务器 host1 : 192.168.1.107 vsftpd pam_mysql.so host2 : 192.168.1.109 mariadb mariadb-server 一.准备数据库 1.安装数据库并启动mysql ~]# yum install mariadb mariadb-server -y ~]# systemctl start mariadb 2.创建vsftpd服务的虚拟数据库及用户列表 1)创建vsftp的数据库

linux vsftpd 配置安装 (虚拟用户)

linux vsftp创建虚拟用户 FTP有三种登录方式:匿名登录.本地系统用户登录和虚拟用户登录. 虚拟用户是ftp服务器的专用用户,它的特点是只能访问服务器为其提供的FTP服务,而不能访问系统的其它资源.所以,如果想让用户对FTP服务器站内具有写权限,但又不允许访问系统其它资源,可以使用虚拟用户来提高系统的安全性.在VSFTP中,认证这些虚拟用户使用的是单独的口令库文件(pam_userdb),由可插入认证模块(PAM)认证.使用这种方式更加安全,并且配置更加灵活. vsftp 配置安装 -