之前用vsftpd做虚拟用户,线上登陆用户多了,密码是明文存储的不太安全。网上大多数pureftp的文章都是结合mysql来安装的,还要装lamp环境太繁琐了。所以经过研究不用存储在mysql里面密码也是可以加密的。见下文详细安装:
cd /opt;wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.36.tar.gz
解压缩包并安装
tar zxvf pure-ftpd-1.0.36.tar.gz
cd pure-ftpd-1.0.36
./configure --prefix=/usr/local/pureftpd/ --with-puredb
make
make install
配置
mkdir -p /usr/local/pureftpd/etc 【创建配置文件的存放目录】
cd configuration-file/
cp pure-ftpd.conf /usr/local/pureftpd/etc/ 【创建主配置文档】
chmod 755 pure-config.pl 【赋予执行权限】
cp pure-config.pl /usr/local/pureftpd/sbin/ 【启动服务时调用的文件】
cd ../contrib/
cp redhat.init /etc/init.d/pureftpd【创建启动脚本】
chmod 755 /etc/init.d/pureftpd 【赋予执行权限】
vim /etc/init.d/pureftpd 【修改几处绝对路径】
18行修改为:fullpath=/usr/local/pureftpd/sbin/$prog
19行修改为:pureftpwho=/usr/local/pureftpd/sbin/pure-ftpwho
24行修改为:/usr/local/pureftpd/etc/pure-ftpd.conf --daemonize
(以上修改的位置实际上是编译的时候prefix=的位置)
mkdir /ftproot
chmod -R 777 /ftproot
useradd virtualftp -d /ftproot -s /sbin/nologin -M 【创建虚拟用户映射的系统账户】
chown virtualftp:virtualftp /ftproot 【将虚拟账号的根目录文件夹/ftproot的组与用户设置为virtualftp组和virtualftp用户】
创建ftp用户:
/usr/local/pureftpd/bin/pure-pw useradd virtualftp -f /usr/local/pureftpd/etc/pureftpd.passwd -u 500 -g 500 -d /ftproot
(500是/etc/passwd里面的uid和gid)
cat /usr/local/pureftpd/etc/pureftpd.passwd 密码是加密的
(如果创建的user不是/etc/passwd已经存在的话,把ftp所在目录给777权限才能上传文件)
修改用户密码:
/usr/local/pureftpd/bin/pure-pw passwd virtualftp -f /usr/local/pureftpd/etc/pureftpd.passwd -m
刷新数据库使添加的用户生效:(注意每次添加删除账号都要刷新一次)
/usr/local/pureftpd/bin/pure-pw mkdb /usr/local/pureftpd/etc/pureftpd.pdb -f /usr/local/pureftpd/etc/pureftpd.passwd
修改配置文件
vim /usr/local/pureftpd/etc/pure-ftpd.conf
20行:ChrootEveryone yes 每个用户进入都会呆在自己的目录中
40行:MaxClientsNumber 50 同时在线最大的用户数量
71行:AnonymousOnly no 仅仅允许匿名
77行:NoAnonymous yes 不允许匿名
104行:MaxIdleTime 客户端允许的最大的空闲时间(分钟,缺省15分钟)
126行:PureDB /usr/local/pureftpd/etc/pureftpd.pdb (这里没有用mysql存储所以要修改下)
246行:AllowUserFXP yes 仅允许认证用户进行 FXP 传输
279行:AnonymousCantUpload yes 不接受匿名用户上传新文件( no = 允许上传)
336行:CreateHomeDir yes 用户主目录不存在的话,自动创建。
chkconfig --add pureftpd 【将pureftpd服务加入系统管理】
chkconfig pureftpd on 【将pureftpd设置为开机自启动】
service pureftpd start 【启动服务】
本文出自 “技术成就梦想” 博客,请务必保留此出处http://hxl2009.blog.51cto.com/779549/1009153