CentOS 5.5编译安装vsftpd-2.3.4配置虚拟用户

2012-02-22 17:18:15|  分类: rhel_vsftp|举报|字号 订阅

centos 5.5编译安装vsftpd-2.3.4配置虚拟用户

环境:centos 5.5+Vsftpd-2.3.4

一、下载当前vsftp最新版本

  1. wget ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.3.4.tar.gz
  2. 貌似最近官方都下不了,在补一个本站的下载地址:
  3. wget http://www.92csz.com/downloads/vsftpd-2.3.4.tar.gz

二、安装前准备

1、创建虚拟用户映射的本地用户wwwftp

  1. useradd wwwftp -d /data/www -s /sbin/nologin

2、创建自定义配置目录

  1. mkdir -p /data/soft/vsftpd/conf
  2. mkdir -p /data/soft/vsftpd/bin
  3. mkdir -p /data/soft/vsftpd/lib
  4. mkdir -p /data/soft/vsftpd/user_conf
  5. mkdir -p /data/soft/vsftpd/empty
  6. mkdir -p /data/soft/vsftpd/logs
  7. mkdir -p /data/www
  8. mkdir -p /data/www/user1
  9. mkdir -p /data/www/user2

3、对自定义目录设置权限

  1. chown -R wwwftp:www /data/www
  2. chmod -R 700 /data/soft/vsftpd/empty/
  3. chown -R wwwftp:wwwftp /data/soft/vsftpd/empty/

4、复制用于验证用户登录的库文件到自定义目录方便管理

  1. cp /lib/security/pam_userdb.so /data/soft/vsftpd/lib/

5、安装所需软件

  1. yum -y install gcc db4* pam*

三、解压安装vsftpd

  1. tar zxvf vsftpd-2.3.4.tar.gz
  2. cd vsftpd-2.3.4

源码安装默认不支持tcp_wrappers和ssl

需要修改builddefs.h

  1. /*默认值如下:*/
  2. #undef VSF_BUILD_TCPWRAPPERS  /*是否支持TCP WRAPPERS*/
  3. #define VSF_BUILD_PAM  /*是否支持自定义虚拟用户登录*/
  4. #undef VSF_BUILD_SSL  /*是否支持SSL传输*/
  5. /*支持则将对应项设为define,否则设为undef*/

编译vsftpd

  1. make

查看编译的vsftpd二进制文件是否加载了pam

  1. ldd vsftpd

如下:

  1. [root@CentOS5 vsftpd-2.3.4]# ldd vsftpd
  2. linux-gate.so.1 =>  (0x00628000)
  3. libwrap.so.0 => /lib/libwrap.so.0 (0x00cee000)
  4. libnsl.so.1 => /lib/libnsl.so.1 (0x0015f000)
  5. libpam.so.0 => /lib/libpam.so.0 (0x00fc4000)
  6. libdl.so.2 => /lib/libdl.so.2 (0x007dc000)
  7. libresolv.so.2 => /lib/libresolv.so.2 (0x008d8000)
  8. libutil.so.1 => /lib/libutil.so.1 (0x00110000)
  9. libcap.so.1 => /lib/libcap.so.1 (0x00d99000)
  10. libc.so.6 => /lib/libc.so.6 (0x0029a000)
  11. libaudit.so.0 => /lib/libaudit.so.0 (0x00114000)
  12. /lib/ld-linux.so.2 (0x004a2000)

看到libpam.so.0 => /lib/libpam.so.0 (0x00fc4000)表示已成功加载pam认证模块

  1. cp vsftpd /data/soft/vsftpd/bin

四、配置vsftpd

1、创建主配置文件

  1. vi /data/soft/vsftpd/conf/vsftpd.conf

如下:

  1. local_enable=YES
  2. anonymous_enable=NO
  3. anon_upload_enable=NO
  4. anon_other_write_enable=NO
  5. anon_mkdir_write_enable=NO
  6. ftpd_banner=Welcome to FTP service.
  7. listen=YES
  8. listen_port=21
  9. connect_from_port_20=YES
  10. nopriv_user=nobody
  11. tcp_wrappers=YES
  12. chroot_local_user=NO
  13. chroot_list_enable=YES
  14. chroot_list_file=/data/soft/vsftpd/chroot_list
  15. userlist_enable=yes
  16. userlist_deny=no
  17. userlist_file=/data/soft/vsftpd/allow
  18. dual_log_enable=YES
  19. vsftpd_log_file=/data/soft/vsftpd/logs/vsftpd.log
  20. xferlog_enable=YES
  21. xferlog_file=/data/soft/vsftpd/logs/xferlog
  22. pasv_enable=YES
  23. pasv_min_port=50000
  24. pasv_max_port=60000
  25. guest_enable=YES
  26. guest_username=wwwftp
  27. pam_service_name=vsftpd
  28. virtual_use_local_privs=YES
  29. use_localtime=YES
  30. user_config_dir=/data/soft/vsftpd/user_conf
  31. secure_chroot_dir=/data/soft/vsftpd/empty

2、创建允许登录ftp的用户文件

  1. vi /data/soft/vsftpd/allow

如下:

  1. user1
  2. user2

3、创建用于锁定用户目录的用户列表文件

  1. vi /data/soft/vsftpd/chroot_list

如下

  1. user1
  2. user2

4、配置vsftpd的pam认证模块(用于虚拟用户认证)

  1. vi /etc/pam.d/vsftpd

如下

  1. auth required /data/soft/vsftpd/lib/pam_userdb.so db=/data/soft/vsftpd/login
  2. account required /data/soft/vsftpd/lib/pam_userdb.so db=/data/soft/vsftpd/login

保存退出

5、创建用户名密码文本文件

  1. vi /data/soft/vsftpd/login.txt

如下:一行用户名一行密码

  1. user1
  2. 123456
  3. user2
  4. 654321

保存退出

6、用db_load生成用户数据库

  1. db_load -T -t hash -f /data/soft/vsftpd/login.txt /data/soft/vsftpd/login.db
  2. chmod 600 /data/soft/vsftpd/login.db
  3. rm -rf /data/soft/vsftpd/login.txt

7、配置虚拟用户自定义配置文件

  1. vi /data/soft/vsftpd/user_conf/user1

user1所有权限

  1. local_root=/data/www/user1
  2. write_enable=YES
  3. local_umask=022

保存退出

  1. vi /data/soft/vsftpd/user_conf/user2

user2只允许下载

  1. local_root=/data/www/user2
  2. write_enable=NO
  3. download_enable=YES
  4. local_umask=022

保存退出

8、启动vsftpd服务

  1. /data/soft/vsftpd/bin/vsftpd /data/soft/vsftpd/conf/vsftpd.conf &

五、测试
user1登录可读、写、删除、创建、修改一切权限
user2登录仅有下载权限

CentOS 5.5编译安装vsftpd-2.3.4配置虚拟用户的更多相关文章

  1. CentOS 7.0编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14

    准备篇: CentOS 7.0系统安装配置图解教程 http://www.osyunwei.com/archives/7829.html 一.配置防火墙,开启80端口.3306端口 CentOS 7. ...

  2. centos 7.0 编译安装php 7.0.3

    php下载页面 http://cn2.php.net/downloads.php 7.0.3多地区下载页面 http://cn2.php.net/get/php-7.0.3.tar.gz/from/a ...

  3. CentOS 6.6编译安装Nginx1.6.2+MySQL5.6.21+PHP5.6.3

    http://www.osyunwei.com/archives/8867.html 一.配置防火墙,开启80端口.3306端口 vi /etc/sysconfig/iptables #编辑防火墙配置 ...

  4. CentOS 6.2编译安装Nginx1.2.0+MySQL5.5.25+PHP5.3.13

    CentOS 6.2编译安装Nginx1.2.0+MySQL5.5.25+PHP5.3.132013-10-24 15:31:12标签:服务器 防火墙 file 配置文件 written 一.配置好I ...

  5. CentOS 6.4 下安装vsftpd

    概述: vsftpd是Linux下比较著名的FTP服务器,搭建FTP服务器当然首选这个. 本文介绍了在CentOS 6.4下安装vsftpd.配置虚拟用户登录FTP的过程. 正文: 一:安装vsftp ...

  6. CentOS 6.2编译安装Nginx1.2.0+MySQL5.5.25+PHP5.3.13+博客系统WordPress3.3.2

    说明: 操作系统:CentOS 6.2 32位 系统安装教程:CentOS 6.2安装(超级详细图解教程): http://www.osyunwei.com/archives/1537.html 准备 ...

  7. CentOS 6.4编译安装淘宝web服务器Tengine

    Tengine 是由淘宝核心系统部基于Nginx开发的Web服务器,它在Nginx的基础上,针对大访问量网站的需求,添加了很多功能和特性.Tengine的性能和稳定性已经在大型的网站如淘宝网,淘宝商城 ...

  8. CentOS 6.8编译安装httpd2.2.31+MySQL5.6.31+PHP5.3.27

    CentOS 6.8编译安装httpd2.2.31+MySQL5.6.31+PHP5.3.27   说明:   操作系统:CentOS 6.8 32位 准备篇: 一.系统约定    软件源代码包存放位 ...

  9. CentOS 7.0编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14方法分享

    一.配置防火墙,开启80端口.3306端口 CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop fi ...

  10. Centos 6.8编译安装LNMP环境

    Centos 6.8编译安装LNMP环境 参考资料: http://www.jb51.net/article/107429.htm https://phperzh.com/articles/1360 ...

随机推荐

  1. 按值传递,引用传递 浅析java String ,对象与对象引用的区别

    目录 一.前言 二.何谓对象? 三.何谓对象引用? 四.创建对象 Vehicle veh1 = new Vehicle(); 五.参数传值 六.Java Sting 最后!有错误的地方欢迎指正 一.前 ...

  2. vue3使用路由keep-alive和监听路由实现transition

    随着vue3.0的发布,vue-router发布了4.0版本,文档 很明了,提供了vue2路由到vue3的变化和写法指导. vue2: // transition <transition nam ...

  3. 重新认识 tag 快照 git (项目临时添加需求,之前有分支合并,导致从节点拉分支不行了,因为没有tag快照)

    之前的tag认知 之前一直以为tag就是在git的提交commit上打一个标,然后可以拉出分支.之前没太重视. 因为我觉得 可以直接从某个commit直接拉出分支,这打不打tag无所谓 翻车现场 今天 ...

  4. tooltip 可算修复了~ view-design 的 table 的cell.vue

    tooltip 可算修复了~ view-design 的 table 的cell.vue 就这个bug可是有年头了,可算是修复了 ViewUI/src/components/table/cell.vu ...

  5. mybatis之Mapped Statements collection does not contain value for...错误原因分析

    错误原因有几种:  1.mapper.xml中没有加入namespace:  2.mapper.xml中的方法和接口mapper的方法不对应:  3.mapper.xml没有加入到mybatis-co ...

  6. CMake 用法总结(转载)

    原文地址 什么是 CMake All problems in computer science can be solved by another level of indirection. David ...

  7. 云VR:虚拟现实专业化的下一步

    传统的VR通常需要功能强大的计算机和其他高性能设备来提供良好的用户体验.但是,如果有一种方法可以从任何设备和任何地方处理VR内容呢?这就是云VR对VR用户的承诺.随着5G和其他网络的到来,VR技术的未 ...

  8. Android优化总结

    目录介绍 1.OOM和崩溃优化 1.1 OOM优化 1.2 ANR优化 1.3 Crash优化 2.内存泄漏优化 2.0 动画资源未释放 2.1 错误使用单利 2.2 错误使用静态变量 2.3 han ...

  9. 记录-JS简单实现购物车图片局部放大预览效果

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 一.实现效果 二.代码实现 代码不多,先看一下 HTML 里面结构很简单,初始化 MagnifyingGlass 对象来关联一个 IMG  ...

  10. 记录--uni-app App端半屏连续扫码

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 本文用一个简单的 demo 讲解 App端 半屏连续扫码 的实现方式,包括(条形码.二维码等各种各样的码). 我会从实现思路讲起,如果你比 ...