当前位置: 首页 > Linux

pure-ftpd采用虚拟用户安装-配置方式

时间:2023-04-06 03:38:21 Linux

pure-ftpd采用虚拟用户安装/配置方式运行环境/版本OS:16.04.2pure-ftpd:1.0.36-3.2build1installation#直接使用包管理器安装sudoapt-getinstallpure-ftpd创建相应的系统用户。虚拟用户需要与系统用户关联,才能获得对服务器上文件的访问控制权限。您可以使用多个虚拟用户与同一个系统用户关联,然后使用不同的访问目录。可以关联不同的系统用户,实现不同的权限控制。这里我使用第一种方法。#创建系统用户组sudogroupaddftpgroup#创建系统用户并加入新创建的组sudouseraddftpuser-gftpgroup-s/sbin/nologin#创建ftp存储目录并赋予相应系统用户权限sudomkdir-p/var/opt/ftp/user1sudomkdir-p/var/opt/ftp/user2sudochown-Rftpuser:ftpgroup/var/opt/ftp/创建虚拟用户虚拟用户可以通过安装自带的pure-pw工具sudo来管理pure-pwuseradduser1-uftpuser-gftpgroup-d/var/opt/ftp/user1#运行命令后,会要求在终端输入要设置的用户密码sudopure-pwuseradduser2-uftpuser-gftpgroup-d/var/opt/ftp/user2#创建用户后,需要运行以下命令来创建/更新用户数据库。或者在运行pure-pwuseradd等命令时加上-m参数,直接创建/更新数据库即可省略这一步。sudopure-pwmkdb这里有一个陷阱。安装了apt-get的pure-ftpd默认是不开启虚拟用户认证的,所以即使创建了虚拟用户,仍然无法登录ftp。pure-ftpd的默认配置文件位置在/etc/pure-ftpd文件夹中。要启用虚拟用户认证,需要在认证文件夹/etc/pure-ftpd/auth.conf中创建对应认证方式的软连接。cd/etc/pure-ftpd/auth/#创建虚拟用户认证的软连接sudoln-s../conf/PureDB60puredb#还需要查看设置中的虚拟用户模式是否开启cat60puredb#结果是/etc/pure-ftpd/pureftpd.pdb。内容为虚拟用户数据库文件后,重启pure-ftpd服务。sudosystemctlrestartpure-ftpd现在可以使用创建的虚拟用户通过ftp客户端进行连接。配置用户#常用用法如下#添加用户sudopure-pwuseradduser1-uftpuser-gftpgroup-d/var/opt/ftp/user1#修改密码sudopure-pwpasswduser2#显示用户列表sudopure-pwlist#生成/重新生成用户数据库文件sudopure-pwmkdb#更详细的用法参考manpure-pw其他配置prue-ftpd的配置文件与常见的vsftpd不同,它使用的是conf中的文件名文件夹作为配置项,使用文件的内容作为配置值。经过以上简单配置后,配置文件夹结构如下:$pwd/etc/pure-ftpd$tree.├──auth│├──60puredb->../conf/PureDB│├──65unix->../conf/UnixAuthentication│└──70pam->../conf/PAMAuthentication├──conf│├──AltLog│├──FSCharset│├──MinUID│├──NoAnonymous│├──PAMAuthentication│├──PureDB│├──TLSCipherSuite│└──UnixAuthentication├──db├──pureftpd-dir-aliases├──pureftpd.passwd└──pureftpd.pdb关闭系统用户权限使用虚拟用户模式访问ftp时,默认配置是限制根目录(chroot),系统用户使用pam认证登录后不限制ftp根目录,无形中增加了风险。因此,设置好虚拟用户后,最好关闭其他的认证方式。sudosh-c"echo'no'>conf/PAMAuthentication"sudosh-c"echo'no'>conf/UnixAuthentication"修改默认字符集选择使用pure-ftpd的原因之一是可以设置GBK字符集解决在Windows上传中文乱码问题。(可能是服务器在默认配置中明确指定了UTF-8,所以在我的WIN7资源管理器上可以正常显示中文,但是在IE浏览器中ftp还是乱码,具体使用字符集请参考需要另外,如果需要修改字符集,最好在FTP还是空的时候修改,以免因为上传文件的字符集和系统不同导致乱码设置。)sudosh-c"echo'GBK'>conf/FSCharset"修改用户的最小UID。在pure-ftpd设置中有一个conf/MinUID。只有UID大于等于该值的用户才能登录(包括虚拟用户对应的系统用户)。因此,当出现用户无法登录的问题时,也可能是用户的UID小于该值导致的。这种情况就需要修改这个值或者用户的UID来解决。sudosh-c"echo'1000'>conf/MinUID"不解析主机名设置这个可以加快ftp连接速度sudosh-c"echo'yes'>conf/DontResolve"更多配置#更多配置,请参考manpure-ftpd-wrapper因为我使用的是已经直接用服务包安装的pure-ftpd,所以我使用修改后的配置方式如上图。其他情况也可以在pure-ftpd服务启动时直接添加参数,具体见官网#以参数形式显示当前配置文件$pure-ftpd-wrapper--show-options-lpuredb:/etc/pure-ftpd/pureftpd.pdb-JALL:!aNULL:!SSLv3-E-Oclf:/var/log/pure-ftpd/transfer.log-8UTF-8-u1000-H-g/var/run/pure-ftpd/pure-ftpd.pid参考文档pure-ftpd服务安装及虚拟用户设置pure-ftpd服务安装及设置使用pureftpd+pureDB虚拟用户搭建一个简单安全(无数据库支持)的linuxftp网站