当前位置: 首页 > 工具软件 > Pure-FTPd > 使用案例 >

linux pure-ftpd的安装和配置说明

法景明
2023-12-01

1.安装pure-ftpd

准备pure-ftpd

#cd /usr/local/src/
#wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.22.tar.gz
#tar –xzvf pure-ftpd-1.0.22.tar.gz

编译和安装

#cd pure-ftpd-1.0.22
#.configure \
–prefix=/usr/local/pureftpd \ //pureftpd安装目录
–with-everything \ //安装几乎所有的功能,包括altlog、cookies、throttling、ratios、ftpwho、upload script、virtual users(puredb)、quotas、virtual hosts、directory aliases、external authentication、Bonjour、privilege separation本次安装只使用这个选项。
--with-cookie \ //当用户登录时显示指定的横幅
--with-diraliases \ //支持目录别名,用快捷方式代cd命令
--with-extauth \ //编译支持扩展验证的模块,大多数用户不使用这个选项
--with-ftpwho \ //支持pure-ftpwho命令,启用这个功能需要更多的额外内存
--with-language=english \ //修改服务器语言,默认是英文,如果你要做修改,请翻译‘src/messages_en.h’文件
--with-ldap \   //LADP目录支持,需要安装openldap
--with-minimal \ //FTP最小安装,最基本的功能
--with-mysql \ //MySQL支持,如果MySQL安装在自定义目录上,你需要使用命令—with-mysql=/usr/local/mysq这类
--with-nonroot \   //不需要root用户就可以启动服务
#make
#make install

安装配置文件

#cd /usr/local/src/pure-ftpd-1.0.22 //切换到源码目录
#cd configuration-files        //切换到这个目录
#chmod 755 pure-config.pl   //让用户有完全权限(因为默认没有执行权限)
#cp pure-config-pl /usr/local/pureftpd/bin    //把执行文件复制到bin目录下
#mkdir /usr/local/pureftpd/etc              //新建FTP的配置文件夹目录
#cp pure-ftpd.conf /usr/local/pureftpd/etc   //复制ftp配置文件到etc中
#cd ..     //切换到/pure-ftpd-1.0.22目录中
#cp pureftpd-ldap.conf /usr/local/pureftpd/etc     //相关配置文件复制到etc中
#cp pureftpd-mysql.conf /usr/local/pureftpd/etc //相关配置文件复制到etc中
#cp pureftpd-pgsql.conf /usr/local/pureftpd/etc   //相关配置文件复制到etc中

pure-ftpd配置文件

ChrootEveryone              yes           //锁定所有用户到家目录中
# TrustedGID                    100 //信任组ID100,可以不锁定
MaxClientsNumber            50           //最大的客户端数量
MaxClientsPerIP             8        //同一个IP允许8个链接
DisplayDotFiles             no //不显示隐藏文件
AnonymousOnly               no   //只允许匿名用户
NoAnonymous                 yes//不允许匿名用户
DontResolve                 yes    //禁止反向解析
MaxIdleTime                 10    //最大空闲10分钟
# LDAPConfigFile                /etc/pureftpd-ldap.conf    //LDAP配置文件目录
# MySQLConfigFile               /etc/pureftpd-mysql.conf//MySQL配置文件目录
# PGSQLConfigFile               /etc/pureftpd-pgsql.conf //PGSQL配置文件目录
PureDB                        /usr/local/pureftpd/etc/pureftpd.pdb //虚拟用户数据库
# UnixAuthentication            yes //主机认证
LimitRecursion              2000 8       //别表最大显示2000个文件,最深8个目录
AnonymousCanCreateDirs      no     //是否允许匿名用户创建目录
#MaxLoad                     4   //最多可下载的数量
# PassivePortRange          30000 50000      //主动连接的端口范围
ForcePassiveIP                192.168.0.1   //这个地址总是直到匿名目录
# AnonymousRatio                1 10         //匿名用户上传下载速度比率
# UserRatio                 1 10                  //用户上传下载速度比率
# Bind                      127.0.0.1,21     //绑定IP和端口
# AnonymousBandwidth            8             //匿名用户带宽8KB
# UserBandwidth             8                     //用户带宽8KB
Umask                       133:022         //文件和目录的umask
MinUID                      1000             //用户ID至少要大于1000才能登陆
AllowUserFXP                no           //是否允许用户使用FXP协议登陆
AllowAnonymousFXP           no         //是否允许匿名用户使用FXP协议
ProhibitDotFilesWrite       no                 //是否允许写入点文件
ProhibitDotFilesRead        no                //是否允许读取点文件
AnonymousCantUpload         yes         //不允许匿名用户上传
#NoChmod                     yes     //不允许用户改变权限
#KeepAllFiles                yes           //允许用户断点续传
#Quota                       1000:10//磁盘配额
#MaxDiskUsage               99   //磁盘的最大利用率
#NoRename                  yes //不允许自动重命名
IPV4Only                 yes    //只允许使用IPV4协议

2.pure-ftpd账户管理

pure-pw常命名用于管理pure-ftp账户

pure-pw命令找不到的解决方案

  1. 报没找到命令是因为pure-pw所在的目录没有加到PATH环境变量中。
    解决办法有两个:
    a)把这个目录加到PATH环境变量里
    比如 export PATH=$PATH:/usr/local/pureftpd/bin,想永久生效的话得修改用户的profile
    2)用绝对路径访问pure-pw
    比如 /usr/local/pureftpd/bin/pure-pw
    附上用户删除命令:
    #/usr/local/pureftp/bin/pure-pw userdel widebright222 -f /usr/local/pureftp/pure-ftpd.passwd
    附上用户宿主目录修改命令
    #/usr/local/pureftp/bin/pure-pw usermod widebright -d 新目录 -f /usr/local/pureftp/pure-ftpd.passwd

  2. 确认pureftpd使用的是这个配置文件,确认修改配置文件以后重新启动pureftpd
    安装后nginx或apache改变ftpftp的宿主目录,以及widebright上传路径,
    改变ftpftp用户的宿主目录为/usr/local/nginx/html ,这里ningx的站点目录为/usr/local/nginx/html/
    #usrmod -d /usr/local/nginx/html ftpftp
    改变上传路径
    #/usr/local/pureftp/bin/pure-pw --help 查看help看到修改用户上传路径用pure-pw usrmod -d
    #/usr/local/pureftp/bin/pure-pw usermod widebright -d 新目录 -f /usr/local/pureftp/pure-ftpd.passwd
    然后重启pure-ftp, 不知怎么重启, ps查看pure-ftp的进程结束掉,然后
    #pure-pw mkdb /usr/local/pureftp/pure-ftpd.pdb -f /usr/local/pureftp/pure-ftpd.passwd 重新生成数据库密码
    #/usr/local/pureftp/sbin/pure-ftpd -l puredb:/usr/local/pureftp/pure-ftpd.pdb & 再启动

ftp账户管理

查询ftp类型,得到ftp为pure-ftpd

[root@iZbp1eutrttwr0pd34v4a2Z /]# ps -ef|grep ftp
root      2466     1  0 Dec04 ?        00:00:00 pure-ftpd (SERVER)

查询用户信息

pure-pw list     #列出所有的ftp用户以及访问权限目录
[root@iZbp1eutrttwr0pd34v4a2Z aegis]# pure-pw show all
Unable to fetch info about user [all] in file [/www/server/pure-ftpd/etc/pureftpd.passwd]

打开用户表,查询所有用户

[root@iZbp1eutrttwr0pd34v4a2Z etc]# vim pureftpd.passwd

添加用户

ure-pw useradd test -u ftpuser -d  /home/www/web

ure-pw useradd 账号 -u ftpuser -d 路径
回车后,设置密码,会提示再次设置 Enter it again:

删除用户

pure-pw userdel test

pure-pw userdel 删除的账号

修改密码

pure-pw password test

pure-pw passwd 修改的账号


示例

#   *修改账户test的密码*
[root@localhost bin]#  ./pure-pw passwd test   #修改密码
Password: 
Enter it again: 
[root@localhost bin]# ./pure-pw mkdb        #生成数据库文件
[root@localhost bin]#  ./pure-pw show test     #查看用户信息

Login              : test
Password           : $6$QLTs2O0C3ujD/Ud0$MmV.N7P7MiIA8alOx3hPU7vqNJNu8m89Z73x0MdCYwLe.Mct5FqFeH/hzkAZtBtP2IdcnPrfjcIii/KxhjMrU1
UID                : 503 (ftpuser)
GID                : 504 (ftpgroup)
Directory          : /home/ftpuser/test/./
...
#     *修改账户test的上传路径*
[root@localhost bin]# pure-pw usermod test -d /var/www/web
[root@localhost bin]# pure-pw mkdb
[root@localhost bin]# pure-pw show test

Login              : test
Password           : $6$QLTs2O0C3ujD/Ud0$MmV.N7P7MiIA8alOx3hPU7vqNJNu8m89Z73x0MdCYwLe.Mct5FqFeH/hzkAZtBtP2IdcnPrfjcIii/KxhjMrU1
UID                : 503 (ftpuser)
GID                : 504 (ftpgroup)
Directory          : /var/www/web/./
...

设置完成后重要的一步:

生成数据库文件

pure-pw mkdb  
  • 若遗漏此步,即使重启pureftpd服务,改动也不会生效。
  • 配置完成后重启pureftpd服务,否则改动不会生效。
 类似资料: