{"id":2680,"date":"2023-12-06T11:14:48","date_gmt":"2023-12-06T03:14:48","guid":{"rendered":"https:\/\/www.xiaobo.li\/notes\/?p=2680"},"modified":"2023-12-06T11:14:48","modified_gmt":"2023-12-06T03:14:48","slug":"pure-ftpd","status":"publish","type":"post","link":"https:\/\/www.xiaobo.li\/notes\/archives\/2680","title":{"rendered":"pure-ftpd"},"content":{"rendered":"<h3>1\u3001pure-ftpd.conf\u914d\u7f6e\u6587\u4ef6\u8bf4\u660e<\/h3>\n<pre class=\"pure-highlightjs\">ChrootEveryone              yes\r\nBrokenClientsCompatibility no\r\nMaxClientsNumber            50\r\nDaemonize                   yes\r\nMaxClientsPerIP             8\r\nVerboseLog                 no\r\nDisplayDotFiles             yes\r\nAnonymousOnly               no\r\nNoAnonymous                 no\r\nSyslogFacility             ftp\r\nDontResolve                 yes\r\nMaxIdleTime                 15\r\nPureDB                       \/usr\/local\/pureftpd\/etc\/pureftpd.pdb\r\nLimitRecursion              10000 8\r\nAnonymousCanCreateDirs     no\r\nMaxLoad                     4\r\nAntiWarez                   yes\r\nUmask                       133:022\r\nMinUID                      100\r\nAllowUserFXP               no\r\nAllowAnonymousFXP           no\r\nProhibitDotFilesWrite       no\r\nProhibitDotFilesRead       no\r\nAutoRename                 no\r\nAnonymousCantUpload         no\r\nPIDFile                     \/usr\/local\/pureftpd\/var\/run\/pure-ftpd.pid\r\nMaxDiskUsage                99\r\nCustomerProof               yes<\/pre>\n<p>2. pure-ftpd.conf\u914d\u7f6e\u6587\u4ef6\u8bf4\u660e<\/p>\n<table width=\"683\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr class=\"firstRow\">\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"273\" height=\"19\">\u53c2\u6570<\/td>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"409\" height=\"19\">\u8bf4\u660e<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"273\" height=\"19\">ChrootEveryone yes<\/td>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"409\" height=\"19\">\u542f\u7528chroot\uff0c\u9650\u5236\u6240\u6709\u7528\u6237\u5728\u5176\u4e3b\u76ee\u5f55\u4e2d<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"273\" height=\"19\">BrokenClientsCompatibility yes<\/td>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"409\" height=\"19\">\u517c\u5bb9\u4e0d\u540c\u5ba2\u6237\u7aef\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"273\" height=\"19\">Daemonize yes<\/td>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"409\" height=\"19\">\u540e\u53f0\u8fd0\u884c\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"273\" height=\"19\">MaxClientsPerIP 20<\/td>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"409\" height=\"19\">\u6bcf\u4e2aip\u6700\u5927\u8fde\u63a5\u6570\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"273\" height=\"19\">VerboseLog yes<\/td>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"409\" height=\"19\">\u8bb0\u5f55\u65e5\u5fd7\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"273\" height=\"19\">DisplayDotFiles no<\/td>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"409\" height=\"19\">\u663e\u793a\u9690\u85cf\u6587\u4ef6\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"273\" height=\"19\">AnonymousOnly no<\/td>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"409\" height=\"19\">\u53ea\u5141\u8bb8\u533f\u540d\u7528\u6237\u8bbf\u95ee\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"273\" height=\"19\">NoAnonymous yes<\/td>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"409\" height=\"19\">\u4e0d\u5141\u8bb8\u533f\u540d\u7528\u6237\u8fde\u63a5\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"273\" height=\"19\">SyslogFacility none<\/td>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"409\" height=\"19\">\u4e0d\u5c06\u65e5\u5fd7\u5728syslog\u65e5\u5fd7\u4e2d\u663e\u793a\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"273\" height=\"19\">DontResolve yes<\/td>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"409\" height=\"19\">\u4e0d\u8fdb\u884c\u5ba2\u6237\u7aefDNS\u89e3\u6790\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"273\" height=\"19\">MaxIdleTime 15<\/td>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"409\" height=\"19\">\u6700\u5927\u7a7a\u95f2\u65f6\u95f4\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"273\" height=\"19\">LimitRecursion 2000 8<\/td>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"409\" height=\"19\">\u6d4f\u89c8\u9650\u5236\uff0c\u6587\u4ef62000\uff0c\u76ee\u5f558\u5c42\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"273\" height=\"19\">AnonymousCanCreateDirs no<\/td>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"409\" height=\"19\">\u533f\u540d\u7528\u6237\u53ef\u4ee5\u521b\u5efa\u76ee\u5f55\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"273\" height=\"19\">MaxLoad 4<\/td>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"409\" height=\"19\">\u8d85\u51fa\u8d1f\u8f7d\u540e\u7981\u6b62\u4e0b\u8f7d\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"273\" height=\"19\">PassivePortRange 45000 50000<\/td>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"409\" height=\"19\">\u88ab\u52a8\u6a21\u5f0f\u7aef\u53e3\u8303\u56f4\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"273\" height=\"19\">AnonymousRatio 1 10<\/td>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"409\" height=\"19\">\u533f\u540d\u7528\u6237\u4e0a\u4f20\/\u4e0b\u8f7d\u6bd4\u7387\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"273\" height=\"19\">UserRatio 1 10<\/td>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"409\" height=\"19\">\u6240\u6709\u7528\u6237\u4e0a\u4f20\/\u4e0b\u8f7d\u6bd4\u7387\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"273\" height=\"19\">AntiWarez yes<\/td>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"409\" height=\"19\">\u7981\u6b62\u4e0b\u8f7d\u533f\u540d\u7528\u6237\u4e0a\u4f20\u4f46\u672a\u7ecf\u9a8c\u8bc1\u7684\u6587\u4ef6\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"273\" height=\"19\">AnonymousBandwidth 200<\/td>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"409\" height=\"19\">\u533f\u540d\u7528\u6237\u5e26\u5bbd\u9650\u5236\uff08KB\uff09\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"273\" height=\"19\">UserBandwidth 8<\/td>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"409\" height=\"19\">\u6240\u6709\u7528\u6237\u6700\u5927\u5e26\u5bbd\uff08KB\uff09\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"273\" height=\"19\">Umask 133:022<\/td>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"409\" height=\"19\">\u521b\u5efa\u6587\u4ef6\/\u76ee\u5f55\u9ed8\u8ba4\u63a9\u7801\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"273\" height=\"19\">MinUID 100<\/td>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"409\" height=\"19\">\u6700\u5927UID\u9650\u5236\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"273\" height=\"19\">AllowUserFXP no<\/td>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"409\" height=\"19\">\u4ec5\u8fd0\u884c\u7528\u6237\u8fdb\u884cFXP\u4f20\u8f93\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"273\" height=\"19\">AllowAnonymousFXP no<\/td>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"409\" height=\"19\">\u5bf9\u533f\u540d\u7528\u6237\u548c\u975e\u533f\u540d\u7528\u6237\u5141\u8bb8\u8fdb\u884c\u533f\u540d FXP \u4f20\u8f93\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"273\" height=\"19\">ProhibitDotFilesWrite no<\/td>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"409\" height=\"19\">\u4e0d\u80fd\u5220\u9664\/\u5199\u5165\u9690\u85cf\u6587\u4ef6\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"273\" height=\"19\">ProhibitDotFilesRead no<\/td>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"409\" height=\"19\">\u7981\u6b62\u8bfb\u53d6\u9690\u85cf\u6587\u4ef6\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"273\" height=\"19\">AutoRename yes<\/td>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"409\" height=\"19\">\u6709\u540c\u540d\u6587\u4ef6\u65f6\u81ea\u52a8\u91cd\u65b0\u547d\u540d\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"273\" height=\"19\">AnonymousCantUpload yes<\/td>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"409\" height=\"19\">\u4e0d\u5141\u8bb8\u533f\u540d\u7528\u6237\u4e0a\u4f20\u6587\u4ef6\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"273\" height=\"19\">AltLog clf:\/var\/log\/pureftpd.log clf<\/td>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"409\" height=\"19\">\u683c\u5f0f\u65e5\u5fd7\u6587\u4ef6\u4f4d\u7f6e\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"273\" height=\"19\">LDAPConfigFile \/etc\/pureftpd-ldap.conf<\/td>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"409\" height=\"19\">LDAP \u914d\u7f6e\u6587\u4ef6<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"273\" height=\"19\">MySQLConfigFile \/etc\/pureftpd-mysql.conf<\/td>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"409\" height=\"19\">MySQL \u914d\u7f6e\u6587\u4ef6 (\u53c2\u8003 README.MySQL)<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"273\" height=\"19\">PGSQLConfigFile \/etc\/pureftpd-pgsql.conf<\/td>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"409\" height=\"19\">Postgres \u914d\u7f6e\u6587\u4ef6 (\u53c2\u8003 README.PGSQL)<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"273\" height=\"19\">PureDB \/etc\/pure-ftpd\/pureftpd.pdb<\/td>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"409\" height=\"19\">\u7528\u6237\u6570\u636e\u5e93\u6587\u4ef6\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"273\" height=\"19\">MaxDiskUsage 99<\/td>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"409\" height=\"19\">\u5f53\u78c1\u76d8\u4f7f\u7528\u91cf\u6253\u523099%\u65f6\u7981\u6b62\u4e0a\u4f20\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"273\" height=\"19\">CreateHomeDir yes<\/td>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"409\" height=\"19\">\u5982\u679c\u865a\u62df\u7528\u6237\u7684\u76ee\u5f55\u4e0d\u5b58\u5728\u5219\u81ea\u52a8\u521b\u5efa\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"273\" height=\"19\">CustomerProof yes<\/td>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"409\" height=\"19\">\u9632\u6b62\u547d\u4ee4\u8bef\u64cd\u4f5c\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"273\" height=\"19\">LogPID yes<\/td>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"409\" height=\"19\">\u5982\u679c\u4f60\u8981\u4e3a\u65e5\u5fd7\u6bcf\u4e00\u884c\u6dfb\u52a0 PID \u53bb\u6389\u4e0b\u9762\u884c\u7684\u6ce8\u91ca\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"273\" height=\"19\">NoChmod yes<\/td>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"409\" height=\"19\">\u4e0d\u63a5\u53d7 CHMOD \u547d\u4ee4\u3002\u7528\u6237\u4e0d\u80fd\u66f4\u6539\u4ed6\u4eec\u6587\u4ef6\u7684\u5c5e\u6027\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"273\" height=\"19\">KeepAllFiles yes<\/td>\n<td valign=\"bottom\" nowrap=\"nowrap\" width=\"409\" height=\"19\">\u5141\u8bb8\u7528\u6237\u6062\u590d\u548c\u4e0a\u4f20\u6587\u4ef6\uff0c\u5374\u4e0d\u5141\u8bb8\u5220\u9664\u4ed6\u4eec<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>3\u3001pure-pw\u5e38\u7528\u547d\u4ee4<\/p>\n<p>pure-pw --help \u83b7\u53d6\u547d\u4ee4\u5e2e\u52a9<br \/>\npure-pw mkdb \u521b\u5efa\u7528\u6237\u4fe1\u606f\u6570\u636e\u5e93<br \/>\npure-pw useradd \u589e\u52a0\u4e00\u4e2a\u865a\u7528\u6237<br \/>\npure-pw usermod \u4fee\u6539\u7528\u6237\u4fe1\u606f<br \/>\npure-pw userdel \u5220\u9664\u4e00\u4e2a\u865a\u7528\u6237<br \/>\npure-pw passwd \u4fee\u6539\u7528\u6237\u5bc6\u7801<\/p>\n<p>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>1\u3001pure-ftpd.conf\u914d\u7f6e\u6587\u4ef6\u8bf4\u660e ChrootEveryone ye &hellip; <a href=\"https:\/\/www.xiaobo.li\/notes\/archives\/2680\">\u7ee7\u7eed\u9605\u8bfb <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[287],"tags":[],"class_list":["post-2680","post","type-post","status-publish","format-standard","hentry","category-linux"],"_links":{"self":[{"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/posts\/2680","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/comments?post=2680"}],"version-history":[{"count":1,"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/posts\/2680\/revisions"}],"predecessor-version":[{"id":2681,"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/posts\/2680\/revisions\/2681"}],"wp:attachment":[{"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/media?parent=2680"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/categories?post=2680"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/tags?post=2680"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}