CentOS7.2安装pure-ftpd 及其配置项
CentOS7.2安装FTP(pure-ftpd-1.0.43)
[日期:2016-10-12] |
一、下载最新安装包并解压
cd /usr/local/src
wget ftp://ftp.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.43.tar.gz
tar -vxf pure-ftpd-1.0.43.tar.gz
cd pure-ftpd-1.0.43
二、准备环境
yum -y install gcc #安装编译器
yum -y install openssl openssl-devel #安装依赖文件
三、配置编译参数并安装
./configure \
--prefix=/usr/local/pureftpd \ #安装目录
--without-inetd \
--with-altlog \
--with-puredb \
--with-throttling \
--with-peruserlimits \
--with-tls
make && make install
四、配置pure-ftpd
cd configuration-file
mkdir -p /usr/local/pureftpd/etc/
cp pure-ftpd.conf /usr/local/pureftpd/etc/pure-ftpd.conf
cp pure-config.pl /usr/local/pureftpd/sbin/pure-config.pl
chmod 755 /usr/local/pureftpd/sbin/pure-config.pl
vim /usr/local/pureftpd/etc/pure-ftpd.conf
修改如下两处存放目录:
PureDB /usr/local/pureftpd/etc/pureftpd.pdb
PIDFile /usr/local/pureftpd/var/run/pure-ftpd.pid
MinUID 10
pure-ftpd.conf文件中配置参数说明:
ChrootEveryone yes # 启用chroot
BrokenClientsCompatibility yes # 兼容不同客户端
Daemonize yes # 后台运行
MaxClientsPerIP 8 # 每个ip最大连接数
VerboseLog yes # 记录日志
DisplayDotFiles no # 显示隐藏文件
AnonymousOnly no # 只允许匿名用户访问
NoAnonymous no # 不允许匿名用户连接
SyslogFacility none # 不将日志在syslog日志中显示
DontResolve yes # 不进行客户端DNS解析
MaxIdleTime 15 # 最大空闲时间
LimitRecursion 2000 8 # 浏览限制,文件2000,目录8层
AnonymousCanCreateDirs no # 匿名用户可以创建目录
MaxLoad 4 # 超出负载后禁止下载
PassivePortRange 45000 50000 # 被动模式端口范围
#AnonymousRatio 1 10 # 匿名用户上传/下载比率
UserRatio 1 10 # 所有用户上传/下载比率
AntiWarez yes # 禁止下载匿名用户上传但未经验证的文件
#AnonymousBandwidth 200 # 匿名用户带宽限制(KB)
UserBandwidth 8 # 所有用户最大带宽(KB)
Umask 133:022 # 创建文件/目录默认掩码
MinUID 10 # 可以登陆 用户的最小UID限制
AllowUserFXP no # 仅运行用户进行FXP传输
AllowAnonymousFXP no # 对匿名用户和非匿名用户允许进行匿名 FXP 传输
ProhibitDotFilesWrite no # 不能删除/写入隐藏文件
ProhibitDotFilesRead no # 禁止读取隐藏文件
AutoRename yes # 有同名文件时自动重新命名
AnonymousCantUpload yes # 不允许匿名用户上传文件
AltLog clf:/var/log/pureftpd.log # clf格式日志文件位置
PureDB /usr/local/pure-ftpd/etc/pureftpd.pdb # 用户数据库文件
MaxDiskUsage 99 # 当磁盘使用量打到99%时禁止上传
CreateHomeDir yes # 如果虚拟用户的目录不存在则自动创建
CustomerProof yes # 防止命令误操作
五、启动pure-ftpd
[root@localhost configuration-file]# /usr/local/pureftpd/sbin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf
Running: /usr/local/pureftpd/sbin/pure-ftpd -A -c50 -B -C8 -D -fftp -H -I15 -lpuredb:/usr/local/pureftpd/etc/pureftpd.pdb -L10000:8 -m4 -s -U133:022 -u100 -g/usr/local/pureftp/var/run/pure-ftpd.pid -k99 –Z
如果是启动成功,会显示一行长长的以Running开头的信息,否则那就是错误信息。
六、建立账号
mkdir -p /data/ftp/
mkdir /data/ftp2/
useradd ftp
chown -R ftp:ftp /data/ftp/
chown -R ftp:ftp /data/ftp2/
/usr/local/pureftpd/bin/pure-pw useradd ftp_user1 -uftp -d /data/ftp/
Password:
Enter it again:
/usr/local/pureftpd/bin/pure-pw useradd ftp_user2 -uftp -d /data/ftp2/
Password:
Enter it again:
上两行中,-u将虚拟用户ftp_user1与系统用户ftp关联在一起,也就是说使用ftp_user1账号登陆ftp后,会以ftp的身份来读取文件或下载文件。-d 后边的目录为ftp_user1账户的家目录,这样可以使ftp_user1只能访问其家目录/data/ftp/,ftp_user2相同,到这里还未完成,还有最关键的一步,就是创建用户信息数据库文件:
/usr/local/pureftpd/bin/pure-pw mkdb
pure-pw还可以列出当前的ftp账号,也可以删除某个账号:
/usr/local/pureftpd/bin/pure-pw list
/usr/local/pureftpd/bin/pure-pw userdel ftp_user2
七、安装lftp在客户端访问
yum install -y lftp
lftp ftp_user1@192.168.222.200
正常登陆后可以使用help命令查询可用命令:
lftp ftp_user1@192.168.222.200:~> help
其中:get 为下载命令,put为上传命令。
八、启动pureFTPd服务及开机启动
# /usr/local/pureftpd/sbin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf
若要pureFTPd随系统启动,将命令加入到 /etc/rc.local文件中,如下
# echo "/usr/local/pureftpd/sbin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf" >> /etc/rc.local
pure-pw命令的格式及功能介绍
pure-pw useradd <login> [-f <passwd file>] -u <uid> [-g <gid>]
-D/-d <home directory> [-c <gecos>]
[-t <download bandwidth>] [-T <upload bandwidth>]
[-n <max number of files>] [-N <max Mbytes>]
[-q <upload ratio>] [-Q <download ratio>]
[-r <allow client host>[/<mask>][,…]
[-R <deny client host>[/<mask>][,…]
[-i <allow local host>[/<mask>][,…]
[-I <deny local host>[/<mask>][,…]
[-y <max number of concurrent sessions>]
[-z <hhmm>-<hhmm>] [-m]
例如:
pure-pw useradd joe -u ftpuser -d /home/ftpusers/joe
回车后提示输入两次密码
使用 -d 参数指定一个用户的home目录后,该用户就被固定到这个目录了,其不能切换到上级目录如果要想让用户可以访问到别的目录,那么使用-D参数来指定hone目录。
如果pureFTPd的配置文件中指定了CreateHomeDir yes 的话,/home/ftpusers/joe 目录是没有必要手动创建的。当用户首次登录时如果目录不存在程序会自动创建相应的目录。
使用-z参数可以指定用户只能在一天中的某个时间段可以登陆ftp服务器。例如 -z 0900-1800那么joe只能在早上9点和下午6点这个时间段登陆。注意:如果设置登陆时间的用户已经通过验证登陆到ftp服务器上了,那么所做的登陆时间限制只能在他下次登陆验证的时候才能生效。
-r 与 -R 参数是约束用户从哪些IP登陆的。可以使用IP/mask的形式,如-r 192.168.1.0/24多个段用逗号隔开,如:-r 192.168.1.0/24,10.1.0.0/16,127.0.0.1/32 。单独的IP:-r 192.168.1.4,10.1.1.5主机名:-r bla.bla.net,yopcitron.com。以及一些相兼容的格式。
-y 参数是限制同一时刻一个用户最多能发起多少个会话(sessions)。”或0 代表无限制。该选项可以降低系统负载。效果同配置文件中的 MaxClientsPerIP
ok,现在用户 “joe” 已经创建成功了默认的虚拟用户列表文件存储在 安装目录的/etc/目录下,可以使用-f参数指定文件的存储路径
查看一下文件内容
# cat /usr/local/pure-ftpd/etc/pureftpd.passwd
joe:$1$ocfl1XW0$R0JaEh3CjGFByGbdN7qNy/:501:501::/home/ftpusers/joe/./::::::::::::
密码字段是经过加密的。
●更改用户信息
虚拟用户创建之后,你也可以通过pure-pw命令来修改其相关的信息,如限制下载
带宽、磁盘配额、用户全名、下载上传率等等
例如:我要修改用户joe的最大文件数为1000个,大小为10MB,命令如下:
# pure-pw usermod joe -n 1000 -N 10
查看一下虚拟用户列表文件
# cat /usr/local/pure-ftpd/etc/pureftpd.passwd
joe:$1$ocfl1XW0$R0JaEh3CjGFByGbdN7qNy/:501:501::/home/ftpusers/joe/./::::::1000:10485760:::::
●重置用户属性
要禁用文件数配额,执行 pure-pw usermod -n ”
要禁用文件大小配额,执行 pure-pw usermod -N ”
要禁用上传/下载比率,执行 pure-pw usermod -q ” -Q ”
要禁用下载带宽限制,执行 pure-pw usermod -t ”
要禁止上传带宽限制,执行 pure-pw usermod -T ”
要禁止IP地址过滤,使用 pure-pw usermod <-i,-I,-r or -R> ”
要禁止登陆时间限制,执行 pure-pw usermod -z ”
要禁止最大并发数控制,执行 pure-pw usermod -y ”
●删除用户
使用pure-pw userdel 命令可以删除一个已经存在的用户
pure-pw userdel <login> [-f <passwd file>] [-m]
如:pure-pw userdel joe
用户home目录中的文件不会被删除,需要手动删除
●更改密码
更改用户密码的命令
# pure-pw passwd <login> [-f <passwd file>] [-m]
●利用pure-pw命令查看用户信息
# pure-pw show joe
问题处理:
1、不能连接服务端
[root@localhost home]# lftp ftp_user1@192.168.222.200
口令:
lftp ftp_user1@192.168.222.200:~> ls
`ls' at 0 [重新连接前延时: 12]
出现连接不上,而服务端用lftp ftp_user1@127.0.0.1自己连接自己可以 ,可能服务器防火墙没有配置好,或者关闭防火墙后再试
systemctl stop firewalld.service
2、登陆后访问目录出现:pureftpd 530 Sorry, but I can't trust you
不受信任,可能一个原因是访问的用户名的ID在pure-ftpd.conf文件中配置参数(MinUID 100 # 可以登陆 用户的最小UID限制)导致
先查用户ID
[root@localhost data]# id ftp
uid=14(ftp) gid=50(ftp) 组=50(ftp)
然后
vim /usr/local/pureftpd/etc/pure-ftpd.conf
找到并如下修改
MinUID 10
PureFtp+PureAdmin:实现基于虚拟账号的FTP服务器 http://www.linuxidc.com/Linux/2013-06/85728.htm
PureFtp+PureAdmin安装配置 http://www.linuxidc.com/Linux/2014-06/103267.htm
Vsftpd虚拟用户的配置及PureFtp配置解析 http://www.linuxidc.com/Linux/2012-12/76502.htm
CentOS7.2安装pure-ftpd 及其配置项的更多相关文章
- centos7 docker 安装 mysql5.7.24 导入12G的sql
先在CentOS7里面安装docker Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker .通过 uname - ...
- 在centos7上安装Jenkins
在centos7上安装Jenkins 安装 添加yum repos,然后安装 sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins ...
- CentOS7 Jenkins安装
CentOS7 Jenkins安装 CentOS7 Jenkins安装 Download 从Jenkins下载apache-tomcat-8.0.18.tar.gz Install 安装 上传RPM文 ...
- 在 CentOS7 上安装 zookeeper-3.4.9 服务
在 CentOS7 上安装 zookeeper-3.4.9 服务 1.创建 /usr/local/services/zookeeper 文件夹: mkdir -p /usr/local/service ...
- 在 CentOS7 上安装 MongoDB
在 CentOS7 上安装 MongoDB 1 通过 SecureCRT 连接至 CentOS7 服务器: 2 进入到 /usr/local/ 目录: cd /usr/local 3 在当前目录下创建 ...
- 在 CentOS7 上安装 MySQL5.7
在 CentOS7 上安装 MySQL5.7 1 通过 SecureCRT 连接到阿里云 CentOS7 服务器: 2 进入到目录 /usr/local/ 中: cd /usr/local/ 3 创建 ...
- 在 CentOS7 上安装 Tomcat9
在 CentOS7 上安装 Tomcat9 1 通过 SecureCRT 连接到阿里云 CentOS7 服务器: 2 进入到目录 /usr/local/ 中: cd /usr/local/ 3 创建目 ...
- 在CentOS7上安装JDK1.8
在CentOS7上安装JDK1.8 1 通过 SecureCRT 连接到阿里云 CentOS7 服务器: 2 进入到目录 /usr/local/ 中: cd /usr/local/ 3 创建目录 to ...
- centos7.0 安装字体库
最近在centos7.0下用itextpdf将word文档转成pdf时出现字体丢失的情况.网上找了很多资料,各式各样的原因和解决方法.后来经过一番测试发现是centos7.0 minimal没有安装相 ...
随机推荐
- Pig拒绝连接错误
运行Pig时出现错误: Pig Stack Trace --------------- ERROR 1066: Unable to open iterator for alias visit. Bac ...
- Porting .Net RSA xml keys to Java
byte[] expBytes = Base64.decodeBase64(exponentElem.getText().trim())); byte[] modBytes = Base64.deco ...
- V-rep学习笔记:碰撞检测与距离计算
V-REP可以在几何组件中快速判断各种干扰与碰撞,以及计算多个组件间的最小距离. 碰撞检测 V-REP可以检测两个碰撞体实体(Collidable objects are objects that c ...
- django之创建第11个项目-页面整合
目的:将如下众多html页面整合到一个index.html页面中. 百度云盘:django之创建第11个项目-页面整合 用下面的方式实现: <!DOCTYPE html> <head ...
- django之创建第8个项目-数据库配置及同步研究
1.sqlitestudio-2.1.5数据库可视化工具--百度云盘下载 2.编写C:\djangoweb\helloworld\blog\models.py文件 # Create your mode ...
- grep命令-v参数过滤以井号、分号开头的注释信息行及空白行
grep命令-v参数(反向选择)分别去掉所有以#(井号)和;(分号)开头的注释信息行,对于剩余的空白行可以再用^$来表示并反选过滤 [root@rhel7 samba]# cat smb.conf | ...
- Spring Cloud开发实践 - 03 - 接口实现和下游调用
接口实现 Scot Commons Impl 接口实现模块 scot-commons-impl, 一方面实现了 scot-commons-api 的接口, 一方面将自己暴露为 REST 服务. 有4个 ...
- Spring Cloud开发实践 - 02 - Eureka服务和接口定义
服务注册 EurekaServer Eureka服务模块只有三个文件, 分别是pom.xml, application.yml 和 EurekaServerApplication.java, 内容如下 ...
- C#几个小知识点
一.float数据类型 小数在C#中需要用浮点型表示,浮点值就是.后面的小数点.C#语言中有两种小数类型,分别为32位单精度浮点型(float) 和64位双精度浮点型(double).其中精度指的是小 ...
- 使用requests库实现多线程下载
多线程下载主要用到http请求中的header Content-Length:资源长度,用于确认资源的总长度,从而便于规划每个线程的任务量 Range:bytes=beg1-end1;beg2-end ...