{"id":807,"date":"2018-05-01T11:00:32","date_gmt":"2018-05-01T03:00:32","guid":{"rendered":"http:\/\/www.haku.studio\/?p=807"},"modified":"2018-12-30T16:29:12","modified_gmt":"2018-12-30T08:29:12","slug":"centos7%e4%b8%80%e9%94%ae%e5%ae%89%e8%a3%85vsftp%e8%84%9a%e6%9c%ac","status":"publish","type":"post","link":"https:\/\/bloo.heing.fun\/?p=807","title":{"rendered":"CentOS7\u4e00\u952e\u5b89\u88c5vsftp\u811a\u672c"},"content":{"rendered":"<p>\u539f\u6587\u5730\u5740\uff1a<a href=\"http:\/\/blog.51cto.com\/66332211\/1957961\">http:\/\/blog.51cto.com\/66332211\/1957961\u00a0 \u00a0 <\/a><\/p>\n<p>\u672c\u6587\u6709\u6539\u52a8\u3002<\/p>\n<p>&nbsp;<\/p>\n<p>\u4e00\uff0c\u4f7f\u7528\u65b9\u5f0f<\/p>\n<p>1\uff0c\u5b89\u88c5vsftp<\/p>\n<div>\n<div id=\"highlighter_635903\" class=\"syntaxhighlighter bash\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"bash plain\">sh\u00a0auto_install_vsftp.sh\u00a0<\/code><code class=\"bash functions\">install<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>2\uff0c\u65b0\u5efaftp\u7528\u6237<\/p>\n<div>\n<div id=\"highlighter_990971\" class=\"syntaxhighlighter bash\">\n<p>\u4e0b\u9762\u7684www\u4e3aauto_install_vsftp.sh\u4e2d\u6307\u5b9a\u7684ftp\u6743\u9650\u8d26\u53f7\uff0c\u4e0b\u9762\u7684password\u6539\u4e3a\u81ea\u5df1\u60f3\u8981\u7684\u5bc6\u7801\u3002<\/p>\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"bash plain\">sh\u00a0auto_install_vsftp.sh\u00a0<\/code><code class=\"bash functions\">useradd<\/code>\u00a0<code class=\"bash plain\">www password\u00a0\u00a0\u00a0\u00a0<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>3\uff0c\u521b\u5efa\u6587\u4ef6\u5939 \/data\/wwwroot\/www,\u5171\u9700\u521b\u5efa3\u4e2a\u6587\u4ef6\u5939\uff0c\u63a5\u7740\u5728data\u76ee\u5f55\u4e0b\uff1a<\/p>\n<p>mkdir \/data<\/p>\n<p>mkdir \/data\/wwwroot<\/p>\n<p>mkdir \/data\/wwwroot\/www<\/p>\n<p>cd \/data<\/p>\n<p>chmod -R 777 *<\/p>\n<p>3.5:<\/p>\n<p>\u5f00\u653e\u7aef\u53e3\uff1a<\/p>\n<p>firewall-cmd &#8211;zone=public &#8211;add-port=21\/tcp &#8211;permanent<\/p>\n<p>firewall-cmd &#8211;zone=public &#8211;add-port=20\/tcp &#8211;permanent<\/p>\n<p>firewall-cmd &#8211;reload<\/p>\n<p>4.\u8fde\u63a5\u5230ftp\u53ef\u4f7f\u7528\u8f6f\u4ef6FileZilla,\u00a0 <a href=\"https:\/\/download.filezilla-project.org\/client\/FileZilla_3.34.0_win32-setup_bundled.exe\">\u70b9\u51fb\u4e0b\u8f7dFileZilla window 32bit<\/a>\u00a0 \u00a0,<a href=\"https:\/\/filezilla-project.org\/download.php?type=client\">\u70b9\u51fb\u8fdb\u5165FileZilla\u5b98\u7f51<\/a>\u3002\u6ce8\u610f\uff0cFileZilla\u6709\u670d\u52a1\u5668\u7aef\u7248\u672c\uff0c\u4e5f\u6709\u5ba2\u6237\u7aef\u7248\u672c\uff0c\u4e0d\u80fd\u4e0b\u8f7d\u9519\u4e86<\/p>\n<p>5. \u5982\u679c\u8fde\u63a5\u62a5\u9519220 auth tle ,\u8bf7\u5728filezalla\u7684\u7ad9\u70b9\u7ba1\u7406\u5668\u91cc\u7684\u52a0\u5bc6\u9009\u62e9\uff1a\u4f7f\u7528\u660e\u6587ftp<\/p>\n<p>\u4e8c\uff0cauto_install_vsftp.sh\u811a\u672c\u5185\u5bb9<\/p>\n<div>\n<div id=\"highlighter_32565\" class=\"syntaxhighlighter bash\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<div class=\"line number4 index3 alt1\">4<\/div>\n<div class=\"line number5 index4 alt2\">5<\/div>\n<div class=\"line number6 index5 alt1\">6<\/div>\n<div class=\"line number7 index6 alt2\">7<\/div>\n<div class=\"line number8 index7 alt1\">8<\/div>\n<div class=\"line number9 index8 alt2\">9<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<div class=\"line number16 index15 alt1\">16<\/div>\n<div class=\"line number17 index16 alt2\">17<\/div>\n<div class=\"line number18 index17 alt1\">18<\/div>\n<div class=\"line number19 index18 alt2\">19<\/div>\n<div class=\"line number20 index19 alt1\">20<\/div>\n<div class=\"line number21 index20 alt2\">21<\/div>\n<div class=\"line number22 index21 alt1\">22<\/div>\n<div class=\"line number23 index22 alt2\">23<\/div>\n<div class=\"line number24 index23 alt1\">24<\/div>\n<div class=\"line number25 index24 alt2\">25<\/div>\n<div class=\"line number26 index25 alt1\">26<\/div>\n<div class=\"line number27 index26 alt2\">27<\/div>\n<div class=\"line number28 index27 alt1\">28<\/div>\n<div class=\"line number29 index28 alt2\">29<\/div>\n<div class=\"line number30 index29 alt1\">30<\/div>\n<div class=\"line number31 index30 alt2\">31<\/div>\n<div class=\"line number32 index31 alt1\">32<\/div>\n<div class=\"line number33 index32 alt2\">33<\/div>\n<div class=\"line number34 index33 alt1\">34<\/div>\n<div class=\"line number35 index34 alt2\">35<\/div>\n<div class=\"line number36 index35 alt1\">36<\/div>\n<div class=\"line number37 index36 alt2\">37<\/div>\n<div class=\"line number38 index37 alt1\">38<\/div>\n<div class=\"line number39 index38 alt2\">39<\/div>\n<div class=\"line number40 index39 alt1\">40<\/div>\n<div class=\"line number41 index40 alt2\">41<\/div>\n<div class=\"line number42 index41 alt1\">42<\/div>\n<div class=\"line number43 index42 alt2\">43<\/div>\n<div class=\"line number44 index43 alt1\">44<\/div>\n<div class=\"line number45 index44 alt2\">45<\/div>\n<div class=\"line number46 index45 alt1\">46<\/div>\n<div class=\"line number47 index46 alt2\">47<\/div>\n<div class=\"line number48 index47 alt1\">48<\/div>\n<div class=\"line number49 index48 alt2\">49<\/div>\n<div class=\"line number50 index49 alt1\">50<\/div>\n<div class=\"line number51 index50 alt2\">51<\/div>\n<div class=\"line number52 index51 alt1\">52<\/div>\n<div class=\"line number53 index52 alt2\">53<\/div>\n<div class=\"line number54 index53 alt1\">54<\/div>\n<div class=\"line number55 index54 alt2\">55<\/div>\n<div class=\"line number56 index55 alt1\">56<\/div>\n<div class=\"line number57 index56 alt2\">57<\/div>\n<div class=\"line number58 index57 alt1\">58<\/div>\n<div class=\"line number59 index58 alt2\">59<\/div>\n<div class=\"line number60 index59 alt1\">60<\/div>\n<div class=\"line number61 index60 alt2\">61<\/div>\n<div class=\"line number62 index61 alt1\">62<\/div>\n<div class=\"line number63 index62 alt2\">63<\/div>\n<div class=\"line number64 index63 alt1\">64<\/div>\n<div class=\"line number65 index64 alt2\">65<\/div>\n<div class=\"line number66 index65 alt1\">66<\/div>\n<div class=\"line number67 index66 alt2\">67<\/div>\n<div class=\"line number68 index67 alt1\">68<\/div>\n<div class=\"line number69 index68 alt2\">69<\/div>\n<div class=\"line number70 index69 alt1\">70<\/div>\n<div class=\"line number71 index70 alt2\">71<\/div>\n<div class=\"line number72 index71 alt1\">72<\/div>\n<div class=\"line number73 index72 alt2\">73<\/div>\n<div class=\"line number74 index73 alt1\">74<\/div>\n<div class=\"line number75 index74 alt2\">75<\/div>\n<div class=\"line number76 index75 alt1\">76<\/div>\n<div class=\"line number77 index76 alt2\">77<\/div>\n<div class=\"line number78 index77 alt1\">78<\/div>\n<div class=\"line number79 index78 alt2\">79<\/div>\n<div class=\"line number80 index79 alt1\">80<\/div>\n<div class=\"line number81 index80 alt2\">81<\/div>\n<div class=\"line number82 index81 alt1\">82<\/div>\n<div class=\"line number83 index82 alt2\">83<\/div>\n<div class=\"line number84 index83 alt1\">84<\/div>\n<div class=\"line number85 index84 alt2\">85<\/div>\n<div class=\"line number86 index85 alt1\">86<\/div>\n<div class=\"line number87 index86 alt2\">87<\/div>\n<div class=\"line number88 index87 alt1\">88<\/div>\n<div class=\"line number89 index88 alt2\">89<\/div>\n<div class=\"line number90 index89 alt1\">90<\/div>\n<div class=\"line number91 index90 alt2\">91<\/div>\n<div class=\"line number92 index91 alt1\">92<\/div>\n<div class=\"line number93 index92 alt2\">93<\/div>\n<div class=\"line number94 index93 alt1\">94<\/div>\n<div class=\"line number95 index94 alt2\">95<\/div>\n<div class=\"line number96 index95 alt1\">96<\/div>\n<div class=\"line number97 index96 alt2\">97<\/div>\n<div class=\"line number98 index97 alt1\">98<\/div>\n<div class=\"line number99 index98 alt2\">99<\/div>\n<div class=\"line number100 index99 alt1\">100<\/div>\n<div class=\"line number101 index100 alt2\">101<\/div>\n<div class=\"line number102 index101 alt1\">102<\/div>\n<div class=\"line number103 index102 alt2\">103<\/div>\n<div class=\"line number104 index103 alt1\">104<\/div>\n<div class=\"line number105 index104 alt2\">105<\/div>\n<div class=\"line number106 index105 alt1\">106<\/div>\n<div class=\"line number107 index106 alt2\">107<\/div>\n<div class=\"line number108 index107 alt1\">108<\/div>\n<div class=\"line number109 index108 alt2\">109<\/div>\n<div class=\"line number110 index109 alt1\">110<\/div>\n<div class=\"line number111 index110 alt2\">111<\/div>\n<div class=\"line number112 index111 alt1\">112<\/div>\n<div class=\"line number113 index112 alt2\">113<\/div>\n<div class=\"line number114 index113 alt1\">114<\/div>\n<div class=\"line number115 index114 alt2\">115<\/div>\n<div class=\"line number116 index115 alt1\">116<\/div>\n<div class=\"line number117 index116 alt2\">117<\/div>\n<div class=\"line number118 index117 alt1\">118<\/div>\n<div class=\"line number119 index118 alt2\">119<\/div>\n<div class=\"line number120 index119 alt1\">120<\/div>\n<div class=\"line number121 index120 alt2\">121<\/div>\n<div class=\"line number122 index121 alt1\">122<\/div>\n<div class=\"line number123 index122 alt2\">123<\/div>\n<div class=\"line number124 index123 alt1\">124<\/div>\n<div class=\"line number125 index124 alt2\">125<\/div>\n<div class=\"line number126 index125 alt1\">126<\/div>\n<div class=\"line number127 index126 alt2\">127<\/div>\n<div class=\"line number128 index127 alt1\">128<\/div>\n<div class=\"line number129 index128 alt2\">129<\/div>\n<div class=\"line number130 index129 alt1\">130<\/div>\n<div class=\"line number131 index130 alt2\">131<\/div>\n<div class=\"line number132 index131 alt1\">132<\/div>\n<div class=\"line number133 index132 alt2\">133<\/div>\n<div class=\"line number134 index133 alt1\">134<\/div>\n<div class=\"line number135 index134 alt2\">135<\/div>\n<div class=\"line number136 index135 alt1\">136<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"bash comments\">#!\/bin\/sh<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"bash comments\">#author:\u00a0vim<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"bash comments\">#qq:82996821<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"bash comments\">#OS:\u00a0Centos7.2<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"bash comments\">#filename:\u00a0auto_install_vsftp.sh<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><\/div>\n<div class=\"line number7 index6 alt2\"><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"bash functions\">users<\/code><code class=\"bash plain\">=<\/code><code class=\"bash plain\">\/etc\/vsftpd\/vftpuser<\/code><code class=\"bash plain\">.txt\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"bash comments\">#\u8d26\u53f7\u914d\u7f6e\u6587\u4ef6<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"bash plain\">login=<\/code><code class=\"bash plain\">\/etc\/vsftpd\/vftpuser<\/code><code class=\"bash plain\">.db\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"bash comments\">#\u8d26\u53f7\u6570\u636e\u5e93\u6587\u4ef6<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"bash plain\">generate_db=<\/code><code class=\"bash string\">\"db_load\u00a0-T\u00a0-t\u00a0hash\u00a0-f\u00a0$users\u00a0$login\"<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"bash plain\">virtual_user_config=<\/code><code class=\"bash plain\">\/etc\/vsftpd\/vuser_conf<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"bash plain\">virtual_user_home=<\/code><code class=\"bash plain\">\/data\/wwwroot<\/code>\u00a0\u00a0\u00a0\u00a0<code class=\"bash comments\">#ftp\u6839\u76ee\u5f55\u4f4d\u7f6e<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"bash plain\">guest_username=www\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"bash comments\">#\u6307\u5b9aftp\u6743\u9650\u8d26\u53f7<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"bash comments\">#Source\u00a0function\u00a0library<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"bash plain\">.\u00a0<\/code><code class=\"bash plain\">\/etc\/rc<\/code><code class=\"bash plain\">.d<\/code><code class=\"bash plain\">\/init<\/code><code class=\"bash plain\">.d<\/code><code class=\"bash plain\">\/functions<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"bash plain\">install_vsftpd(){<\/code><\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"bash plain\">setenforce\u00a00<\/code><\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"bash plain\">yum\u00a0-y\u00a0<\/code><code class=\"bash functions\">install<\/code>\u00a0<code class=\"bash plain\">db4-utils<\/code><\/div>\n<div class=\"line number21 index20 alt2\"><code class=\"bash plain\">yum\u00a0-y\u00a0<\/code><code class=\"bash functions\">install<\/code>\u00a0<code class=\"bash plain\">vsftpd<\/code><\/div>\n<div class=\"line number22 index21 alt1\"><code class=\"bash plain\">systemctl\u00a0<\/code><code class=\"bash functions\">enable<\/code>\u00a0<code class=\"bash plain\">vsftpd<\/code><\/div>\n<div class=\"line number23 index22 alt2\"><\/div>\n<div class=\"line number24 index23 alt1\"><code class=\"bash functions\">useradd<\/code>\u00a0<code class=\"bash plain\">-s\u00a0<\/code><code class=\"bash plain\">\/sbin\/nologin<\/code>\u00a0<code class=\"bash plain\">${guest_username}<\/code><\/div>\n<div class=\"line number25 index24 alt2\"><\/div>\n<div class=\"line number26 index25 alt1\"><code class=\"bash functions\">mv<\/code>\u00a0<code class=\"bash plain\">\/etc\/vsftpd\/vsftpd<\/code><code class=\"bash plain\">.conf\u00a0<\/code><code class=\"bash plain\">\/etc\/vsftpd\/vsftpd<\/code><code class=\"bash plain\">.conf.bak<\/code><\/div>\n<div class=\"line number27 index26 alt2\"><code class=\"bash functions\">cat<\/code>\u00a0<code class=\"bash plain\">&gt;<\/code><code class=\"bash plain\">\/etc\/vsftpd\/vsftpd<\/code><code class=\"bash plain\">.conf&lt;&lt;EOF<\/code><\/div>\n<div class=\"line number28 index27 alt1\"><code class=\"bash plain\">anonymous_enable=NO<\/code><\/div>\n<div class=\"line number29 index28 alt2\"><code class=\"bash plain\">local_enable=YES<\/code><\/div>\n<div class=\"line number30 index29 alt1\"><code class=\"bash plain\">write_enable=YES<\/code><\/div>\n<div class=\"line number31 index30 alt2\"><code class=\"bash plain\">local_umask=022<\/code><\/div>\n<div class=\"line number32 index31 alt1\"><code class=\"bash plain\">dirmessage_enable=YES<\/code><\/div>\n<div class=\"line number33 index32 alt2\"><code class=\"bash plain\">xferlog_enable=YES<\/code><\/div>\n<div class=\"line number34 index33 alt1\"><code class=\"bash plain\">connect_from_port_20=YES<\/code><\/div>\n<div class=\"line number35 index34 alt2\"><code class=\"bash plain\">pasv_enable=YES<\/code><\/div>\n<div class=\"line number36 index35 alt1\"><code class=\"bash plain\">pasv_min_port=60000<\/code><\/div>\n<div class=\"line number37 index36 alt2\"><code class=\"bash plain\">pasv_max_port=61000<\/code><\/div>\n<div class=\"line number38 index37 alt1\"><code class=\"bash plain\">xferlog_std_format=YES<\/code><\/div>\n<div class=\"line number39 index38 alt2\"><code class=\"bash plain\">listen=YES<\/code><\/div>\n<div class=\"line number40 index39 alt1\"><code class=\"bash plain\">pam_service_name=vsftpd<\/code><\/div>\n<div class=\"line number41 index40 alt2\"><code class=\"bash plain\">userlist_enable=YES<\/code><\/div>\n<div class=\"line number42 index41 alt1\"><code class=\"bash plain\">tcp_wrappers=YES<\/code><\/div>\n<div class=\"line number43 index42 alt2\"><\/div>\n<div class=\"line number44 index43 alt1\"><code class=\"bash plain\">chroot_local_user=YES<\/code><\/div>\n<div class=\"line number45 index44 alt2\"><code class=\"bash plain\">chroot_list_enable=YES<\/code><\/div>\n<div class=\"line number46 index45 alt1\"><code class=\"bash plain\">chroot_list_file=<\/code><code class=\"bash plain\">\/etc\/vsftpd\/chroot_list<\/code><\/div>\n<div class=\"line number47 index46 alt2\"><\/div>\n<div class=\"line number48 index47 alt1\"><code class=\"bash plain\">pam_service_name=vsftpd<\/code><\/div>\n<div class=\"line number49 index48 alt2\"><code class=\"bash plain\">guest_enable=YES<\/code><\/div>\n<div class=\"line number50 index49 alt1\"><code class=\"bash plain\">guest_username=${guest_username}<\/code><\/div>\n<div class=\"line number51 index50 alt2\"><code class=\"bash plain\">user_config_dir=<\/code><code class=\"bash plain\">\/etc\/vsftpd\/vuser_conf<\/code><\/div>\n<div class=\"line number52 index51 alt1\"><code class=\"bash plain\">allow_writeable_chroot=YES<\/code><\/div>\n<div class=\"line number53 index52 alt2\"><code class=\"bash plain\">EOF<\/code><\/div>\n<div class=\"line number54 index53 alt1\"><\/div>\n<div class=\"line number55 index54 alt2\"><code class=\"bash functions\">mkdir<\/code>\u00a0<code class=\"bash plain\">\/etc\/vsftpd\/vuser_conf<\/code><\/div>\n<div class=\"line number56 index55 alt1\"><code class=\"bash functions\">mkdir<\/code>\u00a0<code class=\"bash plain\">\/etc\/vsftpd\/chroot_list<\/code><\/div>\n<div class=\"line number57 index56 alt2\"><\/div>\n<div class=\"line number58 index57 alt1\"><\/div>\n<div class=\"line number59 index58 alt2\"><code class=\"bash comments\">#i386\u00a032\u4f4d\u7cfb\u7edf\u6253\u5f00\u4e0b\u5217\u4e24\u884c<\/code><\/div>\n<div class=\"line number60 index59 alt1\"><code class=\"bash comments\">#echo\u00a0'auth\u00a0required\u00a0pam_userdb.so\u00a0db=\/etc\/vsftpd\/vftpuser'\u00a0&gt;\u00a0\/etc\/pam.d\/vsftpd<\/code><\/div>\n<div class=\"line number61 index60 alt2\"><code class=\"bash comments\">#echo\u00a0'account\u00a0required\u00a0pam_userdb.so\u00a0db=\/etc\/vsftpd\/vftpuser'\u00a0&gt;&gt;\u00a0\/etc\/pam.d\/vsftpd<\/code><\/div>\n<div class=\"line number62 index61 alt1\"><\/div>\n<div class=\"line number63 index62 alt2\"><code class=\"bash comments\">#X64\u00a064\u4f4d\u7cfb\u7edf\u6253\u5f00\u4e0b\u5217\u4e24\u884c<\/code><\/div>\n<div class=\"line number64 index63 alt1\"><code class=\"bash functions\">echo<\/code>\u00a0<code class=\"bash string\">'auth\u00a0required\u00a0\/lib64\/security\/pam_userdb.so\u00a0db=\/etc\/vsftpd\/vftpuser'<\/code>\u00a0<code class=\"bash plain\">&gt;\u00a0<\/code><code class=\"bash plain\">\/etc\/pam<\/code><code class=\"bash plain\">.d<\/code><code class=\"bash plain\">\/vsftpd<\/code><\/div>\n<div class=\"line number65 index64 alt2\"><code class=\"bash functions\">echo<\/code>\u00a0<code class=\"bash string\">'account\u00a0required\u00a0\/lib64\/security\/pam_userdb.so\u00a0db=\/etc\/vsftpd\/vftpuser'<\/code>\u00a0<code class=\"bash plain\">&gt;&gt;\u00a0<\/code><code class=\"bash plain\">\/etc\/pam<\/code><code class=\"bash plain\">.d<\/code><code class=\"bash plain\">\/vsftpd<\/code><\/div>\n<div class=\"line number66 index65 alt1\"><\/div>\n<div class=\"line number67 index66 alt2\"><code class=\"bash functions\">touch<\/code>\u00a0<code class=\"bash plain\">\/etc\/vsftpd\/vftpuser<\/code><code class=\"bash plain\">.txt<\/code><\/div>\n<div class=\"line number68 index67 alt1\"><\/div>\n<div class=\"line number69 index68 alt2\"><code class=\"bash plain\">systemctl\u00a0restart\u00a0vsftpd<\/code><\/div>\n<div class=\"line number70 index69 alt1\"><code class=\"bash plain\">[\u00a0$?\u00a0-<\/code><code class=\"bash keyword\">eq<\/code>\u00a0<code class=\"bash plain\">0\u00a0\u00a0]&amp;&amp;action\u00a0$<\/code><code class=\"bash string\">\"Install\u00a0vsftp:\"<\/code>\u00a0<code class=\"bash plain\">\/bin\/true<\/code><code class=\"bash plain\">||action\u00a0$<\/code><code class=\"bash string\">\"Install\u00a0vsftp:\"<\/code>\u00a0<code class=\"bash plain\">\/bin\/false<\/code><\/div>\n<div class=\"line number71 index70 alt2\"><code class=\"bash comments\">#\u5f00\u542f\u9632\u706b\u5899\uff0c21\u8fde\u63a5\u7aef\u53e3\uff0c60000-61000\u4e3a\u88ab\u52a8\u6a21\u5f0f\u6570\u636e\u4f20\u8f93\u7aef\u53e3<\/code><\/div>\n<div class=\"line number72 index71 alt1\"><code class=\"bash plain\">iptables\u00a0-A\u00a0INPUT\u00a0-p\u00a0tcp\u00a0-m\u00a0state\u00a0--state\u00a0NEW\u00a0-m\u00a0tcp\u00a0--dport\u00a021\u00a0-j\u00a0ACCEPT<\/code><\/div>\n<div class=\"line number73 index72 alt2\"><code class=\"bash plain\">iptables\u00a0-A\u00a0INPUT\u00a0-p\u00a0tcp\u00a0--dport\u00a060000:61000\u00a0-j\u00a0ACCEPT<\/code><\/div>\n<div class=\"line number74 index73 alt1\"><code class=\"bash plain\">iptables-save\u00a0&gt;<\/code><code class=\"bash plain\">\/etc\/sysconfig\/iptables<\/code><\/div>\n<div class=\"line number75 index74 alt2\"><code class=\"bash plain\">}<\/code><\/div>\n<div class=\"line number76 index75 alt1\"><\/div>\n<div class=\"line number77 index76 alt2\"><\/div>\n<div class=\"line number78 index77 alt1\"><code class=\"bash plain\">add_user(){<\/code><\/div>\n<div class=\"line number79 index78 alt2\"><code class=\"bash plain\">not_enough_parameter=56<\/code><\/div>\n<div class=\"line number80 index79 alt1\"><code class=\"bash plain\">retval=0<\/code><\/div>\n<div class=\"line number81 index80 alt2\"><\/div>\n<div class=\"line number82 index81 alt1\"><code class=\"bash keyword\">if<\/code>\u00a0<code class=\"bash plain\">[\u00a0<\/code><code class=\"bash string\">\"$#\"<\/code>\u00a0<code class=\"bash plain\">-<\/code><code class=\"bash keyword\">ne<\/code>\u00a0<code class=\"bash plain\">2\u00a0];\u00a0<\/code><code class=\"bash keyword\">then<\/code><\/div>\n<div class=\"line number83 index82 alt2\"><code class=\"bash spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"bash functions\">echo<\/code>\u00a0<code class=\"bash string\">\"usage:`basename\u00a0$0`\u00a0&lt;useradd&gt;\u00a0&lt;user_name&gt;\u00a0&lt;password&gt;.\"<\/code><\/div>\n<div class=\"line number84 index83 alt1\"><code class=\"bash spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"bash functions\">exit<\/code>\u00a0<code class=\"bash plain\">$not_enough_parameter<\/code><\/div>\n<div class=\"line number85 index84 alt2\"><code class=\"bash keyword\">fi<\/code><\/div>\n<div class=\"line number86 index85 alt1\"><\/div>\n<div class=\"line number87 index86 alt2\"><code class=\"bash keyword\">if<\/code>\u00a0<code class=\"bash functions\">grep<\/code>\u00a0<code class=\"bash plain\">-q\u00a0<\/code><code class=\"bash string\">\"$1\"<\/code>\u00a0<code class=\"bash string\">\"$users\"<\/code><code class=\"bash plain\">;\u00a0<\/code><code class=\"bash keyword\">then<\/code><\/div>\n<div class=\"line number88 index87 alt1\"><code class=\"bash spaces\">\u00a0\u00a0\u00a0<\/code><code class=\"bash functions\">passwd<\/code><code class=\"bash plain\">=$(<\/code><code class=\"bash functions\">sed<\/code>\u00a0<code class=\"bash plain\">-n\u00a0<\/code><code class=\"bash string\">\"\/$1\/{n;p;}\"<\/code>\u00a0<code class=\"bash string\">\"$users\"<\/code><code class=\"bash plain\">)<\/code><\/div>\n<div class=\"line number89 index88 alt2\"><code class=\"bash spaces\">\u00a0\u00a0\u00a0<\/code><code class=\"bash keyword\">if<\/code>\u00a0<code class=\"bash plain\">[\u00a0<\/code><code class=\"bash string\">\"$passwd\"<\/code>\u00a0<code class=\"bash plain\">=\u00a0<\/code><code class=\"bash string\">\"$2\"<\/code>\u00a0<code class=\"bash plain\">];\u00a0<\/code><code class=\"bash keyword\">then<\/code><\/div>\n<div class=\"line number90 index89 alt1\"><code class=\"bash spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"bash functions\">echo<\/code>\u00a0<code class=\"bash string\">\"the\u00a0user\u00a0$1\u00a0already\u00a0exists.\"<\/code><\/div>\n<div class=\"line number91 index90 alt2\"><code class=\"bash spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"bash functions\">exit<\/code>\u00a0<code class=\"bash plain\">$retval<\/code><\/div>\n<div class=\"line number92 index91 alt1\"><code class=\"bash spaces\">\u00a0\u00a0\u00a0<\/code><code class=\"bash keyword\">else<\/code><\/div>\n<div class=\"line number93 index92 alt2\"><code class=\"bash spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"bash functions\">echo<\/code>\u00a0<code class=\"bash string\">\"updating\u00a0$1's\u00a0password\u00a0...\u00a0\"<\/code><\/div>\n<div class=\"line number94 index93 alt1\"><code class=\"bash spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"bash functions\">sed<\/code>\u00a0<code class=\"bash plain\">-i\u00a0<\/code><code class=\"bash string\">\"\/$1\/{n;s\/$passwd\/$2\/;}\"<\/code>\u00a0<code class=\"bash string\">\"$users\"<\/code><\/div>\n<div class=\"line number95 index94 alt2\"><code class=\"bash spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"bash functions\">eval<\/code>\u00a0<code class=\"bash string\">\"$generate_db\"<\/code><\/div>\n<div class=\"line number96 index95 alt1\"><code class=\"bash spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"bash functions\">exit<\/code>\u00a0<code class=\"bash plain\">$retval<\/code><\/div>\n<div class=\"line number97 index96 alt2\"><code class=\"bash spaces\">\u00a0\u00a0\u00a0<\/code><code class=\"bash keyword\">fi<\/code><\/div>\n<div class=\"line number98 index97 alt1\"><code class=\"bash keyword\">fi<\/code><\/div>\n<div class=\"line number99 index98 alt2\"><\/div>\n<div class=\"line number100 index99 alt1\"><code class=\"bash keyword\">for<\/code>\u00a0<code class=\"bash plain\">i\u00a0<\/code><code class=\"bash keyword\">in<\/code>\u00a0<code class=\"bash string\">\"$1\"<\/code>\u00a0<code class=\"bash string\">\"$2\"<\/code><\/div>\n<div class=\"line number101 index100 alt2\"><code class=\"bash keyword\">do<\/code><\/div>\n<div class=\"line number102 index101 alt1\"><code class=\"bash spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"bash functions\">echo<\/code>\u00a0<code class=\"bash string\">\"$i\"<\/code>\u00a0<code class=\"bash plain\">&gt;&gt;\u00a0<\/code><code class=\"bash string\">\"$users\"<\/code><\/div>\n<div class=\"line number103 index102 alt2\"><code class=\"bash keyword\">done<\/code><\/div>\n<div class=\"line number104 index103 alt1\"><\/div>\n<div class=\"line number105 index104 alt2\"><code class=\"bash functions\">eval<\/code>\u00a0<code class=\"bash string\">\"$generate_db\"<\/code><\/div>\n<div class=\"line number106 index105 alt1\"><\/div>\n<div class=\"line number107 index106 alt2\"><code class=\"bash functions\">cat<\/code>\u00a0<code class=\"bash plain\">&gt;&gt;\u00a0<\/code><code class=\"bash string\">\"$virtual_user_config\"<\/code><code class=\"bash plain\">\/<\/code><code class=\"bash string\">\"$1\"<\/code>\u00a0<code class=\"bash plain\">&lt;&lt;EOF<\/code><\/div>\n<div class=\"line number108 index107 alt1\"><code class=\"bash plain\">local_root=$virtual_user_home\/$1<\/code><\/div>\n<div class=\"line number109 index108 alt2\"><code class=\"bash plain\">write_enable=YES<\/code><\/div>\n<div class=\"line number110 index109 alt1\"><code class=\"bash plain\">download_enable=YES<\/code><\/div>\n<div class=\"line number111 index110 alt2\"><code class=\"bash plain\">anon_world_readable_only=NO<\/code><\/div>\n<div class=\"line number112 index111 alt1\"><code class=\"bash plain\">anon_upload_enable=YES<\/code><\/div>\n<div class=\"line number113 index112 alt2\"><code class=\"bash plain\">anon_mkdir_write_enable=YES<\/code><\/div>\n<div class=\"line number114 index113 alt1\"><code class=\"bash plain\">anon_other_write_enable=YES<\/code><\/div>\n<div class=\"line number115 index114 alt2\"><code class=\"bash plain\">local_umask=022<\/code><\/div>\n<div class=\"line number116 index115 alt1\"><code class=\"bash plain\">EOF<\/code><\/div>\n<div class=\"line number117 index116 alt2\"><\/div>\n<div class=\"line number118 index117 alt1\"><code class=\"bash functions\">mkdir<\/code>\u00a0<code class=\"bash string\">\"$virtual_user_home\"<\/code><code class=\"bash plain\">\/<\/code><code class=\"bash string\">\"$1\"<\/code><\/div>\n<div class=\"line number119 index118 alt2\"><code class=\"bash functions\">chown<\/code>\u00a0<code class=\"bash plain\">$guest_username\u00a0<\/code><code class=\"bash string\">\"$virtual_user_home\"<\/code><code class=\"bash plain\">\/<\/code><code class=\"bash string\">\"$1\"<\/code><\/div>\n<div class=\"line number120 index119 alt1\"><\/div>\n<div class=\"line number121 index120 alt2\"><code class=\"bash functions\">echo<\/code>\u00a0<code class=\"bash string\">\"==========$users============\"<\/code><\/div>\n<div class=\"line number122 index121 alt1\"><code class=\"bash functions\">cat<\/code>\u00a0<code class=\"bash plain\">$<\/code><code class=\"bash functions\">users<\/code><\/div>\n<div class=\"line number123 index122 alt2\"><code class=\"bash plain\">}<\/code><\/div>\n<div class=\"line number124 index123 alt1\"><\/div>\n<div class=\"line number125 index124 alt2\"><code class=\"bash keyword\">case<\/code>\u00a0<code class=\"bash string\">\"$1\"<\/code>\u00a0<code class=\"bash keyword\">in<\/code><\/div>\n<div class=\"line number126 index125 alt1\"><code class=\"bash spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"bash string\">'install'<\/code><code class=\"bash plain\">)<\/code><\/div>\n<div class=\"line number127 index126 alt2\"><code class=\"bash spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"bash plain\">install_vsftpd<\/code><\/div>\n<div class=\"line number128 index127 alt1\"><code class=\"bash spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"bash plain\">;;<\/code><\/div>\n<div class=\"line number129 index128 alt2\"><code class=\"bash spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"bash string\">'useradd'<\/code><code class=\"bash plain\">)<\/code><\/div>\n<div class=\"line number130 index129 alt1\"><code class=\"bash spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"bash plain\">add_user\u00a0$2\u00a0$3<\/code><\/div>\n<div class=\"line number131 index130 alt2\"><code class=\"bash spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"bash plain\">;;<\/code><\/div>\n<div class=\"line number132 index131 alt1\"><code class=\"bash spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"bash plain\">*)<\/code><\/div>\n<div class=\"line number133 index132 alt2\"><code class=\"bash spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"bash functions\">echo<\/code>\u00a0<code class=\"bash string\">\"usage:\u00a0$0\u00a0{install|useradd}\"<\/code><\/div>\n<div class=\"line number134 index133 alt1\"><code class=\"bash spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"bash functions\">exit<\/code>\u00a0<code class=\"bash plain\">1<\/code><\/div>\n<div class=\"line number135 index134 alt2\"><code class=\"bash spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"bash plain\">;;<\/code><\/div>\n<div class=\"line number136 index135 alt1\"><code class=\"bash keyword\">esac<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><audio style=\"display: none;\" controls=\"controls\"><\/audio><\/p>\n<p><audio style=\"display: none;\" controls=\"controls\"><\/audio><\/p>\n<p><audio style=\"display: none;\" controls=\"controls\"><\/audio><\/p>\n<p><audio style=\"display: none;\" controls=\"controls\"><\/audio><\/p>\n<p><audio style=\"display: none;\" controls=\"controls\"><\/audio><\/p>\n<p><audio style=\"display: none;\" controls=\"controls\"><\/audio><\/p>\n<p><audio style=\"display: none;\" controls=\"controls\"><\/audio><\/p>\n<p><audio style=\"display: none;\" controls=\"controls\"><\/audio><\/p>\n<p><audio style=\"display: none;\" controls=\"controls\"><\/audio><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u539f\u6587\u5730\u5740\uff1ahttp:\/\/blog.51cto.com\/66332211\/1957961\u00a0 \u00a0 \u672c\u6587\u6709\u6539\u52a8\u3002 &#038; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[36],"tags":[],"class_list":["post-807","post","type-post","status-publish","format-standard","hentry","category-36"],"_links":{"self":[{"href":"https:\/\/bloo.heing.fun\/index.php?rest_route=\/wp\/v2\/posts\/807","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bloo.heing.fun\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bloo.heing.fun\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bloo.heing.fun\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bloo.heing.fun\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=807"}],"version-history":[{"count":10,"href":"https:\/\/bloo.heing.fun\/index.php?rest_route=\/wp\/v2\/posts\/807\/revisions"}],"predecessor-version":[{"id":1057,"href":"https:\/\/bloo.heing.fun\/index.php?rest_route=\/wp\/v2\/posts\/807\/revisions\/1057"}],"wp:attachment":[{"href":"https:\/\/bloo.heing.fun\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=807"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bloo.heing.fun\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=807"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bloo.heing.fun\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=807"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}