1、安装pure-ftp
centos下安装pure-ftp
yum install pure-ftpd -y
2、建立用户和组
groupadd ftpgroup useradd ftpuser -g ftpgroup -s /sbin/nologin -d /dev/null
3、创建虚拟用户
pure-pw useradd ftptest -u ftpuser -d /var/www/html pure-pw mkdb
ftptest是虚拟用户,这个用户的属主必须是ftpuser,否则会没有权限
虚拟用户生成的passwd文件在/etc/pure-ftpd/pureftpd.passwd
创建虚拟用户后要执行一句mkdb生成虚拟用户数据库,这样用户才有效
生成的文件在 “/etc/pure-ftpd/pureftpd.pdb”
4、使用FZ软件连接
这里连接的时候会提示一个530错误,解决办法:
vim pure-ftpd.conf PureDB /etc/pure-ftpd/pureftpd.pdb 开启这一项
5、基础命令
以下是常用的基本命令
pure-pw useradd 添加用户 pure-pw userdel 删除用户 pure-pw usermod 修改用户 pure-pw show 查看用户详细信息 pure-pw list 查看所有用户设置 pure-pw mkdb 生成数据文件
6、ftp配置参数
配置文件详解
ChrootEveryone yes #限制所有用户在其主目录中 BrokenClientsCompatibility no #兼容ie等比较非正规化的ftp客户端 MaxClientsNumber 50 #服务器总共允许同时连接的最大用户数 Daemonize yes #做为守护(doemon)进程运行(Fork in background) MaxClientsPerIP 8 #同一IP允许同时连接的用户数 VerboseLog no #如果你要记录所有的客户命令,设置这个指令为 "yes" DisplayDotFiles yes #即使客户端没有发送 '-a' 选项也列出隐藏文件 AnonymousOnly no #不允许认证用户 - 仅作为一个公共的匿名FTP。 NoAnonymous yes #不允许匿名连接,仅允许认证用户使用。 SyslogFacility ftp #缺省的功能( facility )是 "ftp"。 "none" 将禁止日志。 DontResolve yes #在日志文件中不解析主机名。 MaxIdleTime 15 #客户端允许的最大的空闲时间(分钟,缺省15分钟) PureDB /usr/local/pureftp-1.0.22/etc/pureftpd.pdb #PureDB 用户数据库 LimitRecursion 2000 8 #'ls' 命令的递归限制。第一个参数给出文件显示的最大数目。第二个参数给出最大的子目录深度。 AnonymousCanCreateDirs no #允许匿名用户创建新目录? MaxLoad 4 #如果系统被 loaded 超过下面的值,匿名用户会被禁止下载。 AntiWarez yes #不接受所有者为 "ftp" 的文件的下载。 Bind 10.10.10.10,21 #服务监听的IP 地址和端口。 Umask 133:022 #新建目录及文件的属性掩码值。<文件掩码>;:<目录掩码>; . MinUID 99 #认证用户允许登陆的最小组ID(UID) 。 AllowUserFXP yes #仅允许认证用户进行 FXP 传输。 AllowAnonymousFXP no #对匿名用户和非匿名用户允许进行匿名 FXP 传输。 ProhibitDotFilesWrite no #用户不能删除和写点文件(文件名以 '.' 开头的文件) ProhibitDotFilesRead no #禁止读点文件(文件名以 '.' 开头的文件) (.history, .ssh...) AutoRename no #永不覆盖文件。当上传的文件,其文件名已经存在时,自动重命名,如: file.1, file.2, file.3, ... AnonymousCantUpload no #不接受匿名用户上传新文件( no = 允许上传) AltLog clf #使用类似于Apache的格式创建一个额外的日志文件 MaxDiskUsage 99 #来保护日志文件。当所在磁盘分区使用超过百分之 X 时,将不在接受新的上传。 CustomerProof yes UnixAuthentication no #不起用 简单的 Unix系统 认证方式(/etc/passwd)。
7、创建pure-ftp用户脚本
#!/bin/bash read -p '添加一个描述:' comment read -p '指定工作目录:' directory user=$(tr -cd [a-z][A-Z][0-9] </dev/urandom | head -c 6) passwd=$(tr -cd [a-z][A-Z][0-9] </dev/urandom | head -c 16) (echo $passwd;echo $passwd) | pure-pw useradd $user -u ftpuser -d directory pure-pw mkdb echo '---------------------------' >> ./ftp_useradd.log echo '创建时间:' `date +%Y-%m-%d_%H:%M:%S` >> ./ftp_useradd.log echo '描述:' $comment >> ./ftp_useradd.log echo '用户:' $user >> ./ftp_useradd.log echo '密码': $passwd >> ./ftp_useradd.log echo '' >> ./ftp_useradd.log echo '' >> ./ftp_useradd.log