vsftp or pureftpd

Posted defifind

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vsftp or pureftpd相关的知识,希望对你有一定的参考价值。

一、安装pureftpd
//这个软件比vsftp配置起来更加灵活和安全。

/*官网是 http://www.pureftpd.org/project/pure-ftpd*/
 
[[email protected] ~]# cd /usr/local/src/
[[email protected] src]# wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.32.tar.bz2
[[email protected] src]# tar jxf pure-ftpd-1.0.32.tar.bz2
[[email protected] src]# cd pure-ftpd-1.0.32
[[email protected] pure-ftpd-1.0.32]# ./configure --prefix=/usr/local/pureftpd --without-inetd --with-altlog --with-puredb --with-throttling --with-peruserlimits  --with-tls
[[email protected] pure-ftpd-1.0.32]# make 
[[email protected] pure-ftpd-1.0.32]# make install
[[email protected] pure-ftpd-1.0.32]# cd configuration-file
[[email protected] pure-ftpd-1.0.32]# mkdir -p /usr/local/pureftpd/etc/
[[email protected] configuration-file]# cp pure-ftpd.conf    /usr/local/pureftpd/etc/pure-ftpd.conf
[[email protected] configuration-file]# cp pure-config.pl    /usr/local/pureftpd/sbin/pure-config.pl
[[email protected] configuration-file]# chmod 755    /usr/local/pureftpd/sbin/pure-config.pl
[[email protected] configuration-file]# vim /usr/local/pureftpd/etc/pure-ftpd.conf
//拷贝
ChrootEveryone              yes
BrokenClientsCompatibility  no
MaxClientsNumber            50
Daemonize                   yes
MaxClientsPerIP             8
VerboseLog                  no
DisplayDotFiles             yes
AnonymousOnly               no
NoAnonymous                 no
SyslogFacility              ftp
DontResolve                 yes
MaxIdleTime                 15
PureDB                        /usr/local/pureftpd/etc/pureftpd.pdb
LimitRecursion              3136 8
AnonymousCanCreateDirs      no
MaxLoad                     4
AntiWarez                   yes
Umask                       133:022
MinUID                      100
AllowUserFXP                no
AllowAnonymousFXP           no
ProhibitDotFilesWrite       no
ProhibitDotFilesRead        no
AutoRename                  no
AnonymousCantUpload         no
PIDFile                     /usr/local/pureftpd/var/run/pure-ftpd.pid
MaxDiskUsage               99
CustomerProof              yes

//启动pureftpd
[[email protected] ~]# /usr/local/pureftpd/sbin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf

//启动成功,会显示一行长长的以Running开头的信息

//建立系统用户及它所属的目录
[[email protected] ~]# mkdir /data/www/
[[email protected] ~]# useradd www
[[email protected] ~]# chown -R www:www /data/www/

//建立虚拟用户,使其与系统用户关联起来

****因为如果用系统用户身份登录ftp服务器,则需要知道用户的用户名和密码,这样不安全。
所以创建一个虚拟用户,映射到系统用户,进入ftp服务器。但并不具有系统用户的权限,只可以进入系统用户对应的目录*******
[[email protected] ~]# /usr/local/pureftpd/bin/pure-pw useradd ftp_user1 -uwww -d /data/www/ //这里可将pure-pw这个命令做个别名 Password: Enter it again: [[email protected] ~]# /usr/local/pureftpd/bin/pure-pw mkdb //创建用户信息数据库文件 //再添加一个虚拟用户 [[email protected] ~]# /usr/local/pureftpd/bin/pure-pw useradd ftp_user2 -uwww -d /tmp [[email protected] ~]# /usr/local/pureftpd/bin/pure-pw mkdb //创建一个虚拟用户就要创建一个用户信息数据库文件 //列出当前的账号 [[email protected] ~]# /usr/local/pureftpd/bin/pure-pw list //删除账号 [[email protected] ~]# /usr/local/pureftpd/bin/pure-pw userdel ftp_user2
 编译时出现的错误!!! 
1.configure: error: OpenSSL headers not found.
解决方法: --》

pkg install -y openssl-devel
   二、测试pureftpd
//测试需要工具
[[email protected] ~]# pkg install -y lftp

//测试
[[email protected] ~]# touch /data/www/123.txt
[[email protected] ~]# lftp [email protected]
口令:
lftp [email protected]:~> ls
drwxr-xr-x    2 514        www              4096 Jun 12 11:14 .
drwxr-xr-x    2 514        www              4096 Jun 12 11:14 ..
-rw-r--r--    1 514        www                 0 Jun 12 11:14 123.txt

//登陆后,使用 ls 命令可以列出当前目录都有什么文件。
 ====================我是分割线。================
 
 一、vsftpd
1.安装源码包
[[email protected] ~]# pkg install -y vsftpd db4-utils
2.建立系统用户
[[email protected] ~]# useradd -s /sbin/nologin virftp //建立虚拟账号相关联的系统账号 3.建立虚拟用户信息文件
[[email protected] ~]# vim /etc/vsftpd/vsftpd_login //建立虚拟账户相关的文件 //加入 /*此文件单行为用户名, 双行为密码*/ test1 123456 test2 abcdef 4.修改文件权限
[[email protected] ~]# chmod 600 /etc/vsftpd/vsftpd_login 5.生成库文件
[[email protected] ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db //生成对应的库文件 6.建立装虚拟用户配置文件的文件夹
[[email protected] ~]# mkdir /etc/vsftpd/vsftpd_user_conf //建立虚拟账号相关的目录以及配置文件 [[email protected] ~]# vim /etc/vsftpd/vsftpd_user_conf/test1 //创建用户test1对应的配置文件 //加入 local_root=/home/virftp/test1 anonymous_enable=NO write_enable=YES local_umask=022 anon_upload_enable=NO anon_mkdir_write_enable=NO idle_session_timeout=600 data_connection_timeout=120 max_clients=10 max_per_ip=5 local_max_rate=50000 7.建立虚拟用户的ftp文件夹 [[email protected] ~]# mkdir -p /home/virftp/test1 //用户名test1的ftp文件夹 [[email protected] ~]# chown -R virftp:virftp /home/virftp
8.将虚拟用户的文件配置到pam上
[[email protected] ~]# vim /etc/pam.d/vsftpd //在开头添加两行,在这里配置存放账号密码的文件 /*如果Linux系统是64位的,改为/lib64/security/pam_userdb.so*/ auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login 9.修改vsftpd的配置文件
[[email protected] ~]# vim /etc/vsftpd/vsftpd.conf //按要求修改 ... ... anonymous_enable=YES改为anonymous_enable=NO #anon_upload_enable=YES 改为 anon_upload_enable=NO #anon_mkdir_write_enable=YES 改为 anon_mkdir_write_enable=NO #chroot_local_user=YES 将注释去掉 ... ... #文件最尾部加入 guest_enable=YES guest_username=virftp virtual_use_local_privs=YES user_config_dir=/etc/vsftpd/vsftpd_user_conf
10.启动服务 [[email protected] ~]# /etc/init.d/vsftpd start

****启动失败****
如果同时有两个ftp在服务器上,检查是否21端口被占用

**************
 二、测试vsftpd
[[email protected] ~]# pkg install -y lftp 
[[email protected] ~]# cat /etc/vsftpd/vsftpd_login
test1
123456
test2
abcdef
[[email protected] ~]# lftp [email protected]
口令:
lftp [email protected]:~> ls
lftp [email protected]:~> quit
[[email protected] ~]# cd /home/virftp/test1
[[email protected] ~]# touch 2.txt
[[email protected] ~]# mkdir 123
[[email protected] ~]# lftp [email protected]
口令:
lftp [email protected]:~> ls
drwxr-xr-x    2 0        0            4096 Apr 16 13:39 123
-rw-r--r--    1 0        0               0 Apr 16 13:39 2.txt
  配置vsftpd遇到的错误: 
lftp [email protected]:~> ls          
ls: 登录失败: 500 OOPS: bad bool value in config file for: anon_upload_enable

-->  因为你的那个YES/NO 布尔值(bool value)后边加了一个空格,即:
      anon_upload_enable=NO空格

查看/etc/vsftpd/vsftpd.conf 和 /etc/vsftpd/vsftpd_user_conf/test1 中
anon_upload_enable=NO后有无空格 

正确的格式应该是:
anon_world_readable_only=NO(无空格)!!!!!!
注意,NO后边的空格,要用退格键将其删除。

以上是关于vsftp or pureftpd的主要内容,如果未能解决你的问题,请参考以下文章

ftp服务

vsftpd详解

如何包装所有片段(不在里面)or) with?

centos7 Pure-ftpd

centos7 Pure-ftpd

[异常解决] Make nRF51 DFU Project Appear "fatal error: uECC.h: No such file or directory"(代码片段