{"id":119,"date":"2012-03-17T14:56:00","date_gmt":"2012-03-17T10:56:00","guid":{"rendered":"http:\/\/blog.mgvmi-hipl.ru\/?p=119"},"modified":"2012-03-17T14:57:13","modified_gmt":"2012-03-17T10:57:13","slug":"vsftpd-%d0%b8-mysql-users","status":"publish","type":"post","link":"https:\/\/blog.5flor.ru\/?p=119","title":{"rendered":"vsftpd \u0438 mysql users"},"content":{"rendered":"<p>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0445\u043e\u0441\u0442\u0430\u00a0 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c vsftpd \u0438\u00a0\u00a0 MySQL \u0432 CentOS<\/p>\n<p>\u041e\u0431\u044b\u0447\u043d\u043e\u00a0Vsftpd \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u0434 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435. \u0412 \u044d\u0442\u043e\u043c \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f<br \/>\n\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 vsftpd \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043f\u043e\u0434 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439,<br \/>\n\u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0432 MySQL \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445, \u0432\u0437\u0430\u043c\u0435\u043d \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445<br \/>\n\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439.<br \/>\n\u0422\u0430\u043a\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0434\u043e \u0442\u044b\u0441\u044f\u0447\u0438 ftp \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435.<br \/>\n\u0423\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c MySQL \u0431\u0430\u0437\u043e\u0439 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0430\u043a\u0435\u0442\u0430 phpMyAdmin.<br \/>\n\u041e\u043d \u0438\u043c\u0435\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043d\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u043a\u043e\u043c\u043c\u0430\u043d\u0434\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443.<\/p>\n<p><strong id=\"b_tu19\">1 \u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/strong><\/p>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u00a0CentOS 6.2<\/p>\n<p>\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0451\u043d \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u043e\u0440\u0438\u0439 epel<\/p>\n<p><strong id=\"b_tu29\">2 \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 vsftpd, MySQL \u0438 phpMyAdmin<\/strong><\/p>\n<p>Vsftpd \u0441\u043e\u0431\u0440\u0430\u043d \u0431\u0435\u0437 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 MySQL, \u043f\u043e \u044d\u0442\u043e\u0439 \u043f\u0440\u0438\u0447\u0438\u043d\u0435 \u043d\u0435\u043e\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0430\u043a\u0435\u0442<br \/>\nlibpam-mysql \u0434\u043b\u044f PAM \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0432 MySQL \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445. \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c<br \/>\n\u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0430\u043a\u0435\u0442\u044b pam_mysql \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e \u0441 vsftpd,<br \/>\nMySQL, \u0438 \u043f\u0430\u043a\u0435\u0442 phpMyAdmin:<\/p>\n<div id=\"b_tu34\">\u041a\u043e\u0434:\u00a0\u00a0yum<em id=\"b_tu37\"> install vsftpd pam_mysql mysql-server mysql-client phpmyadmin<\/em><\/div>\n<p>\u041d\u0430\u0437\u043d\u0430\u0447\u0438\u0442\u044c \u043f\u0430\u0440\u043e\u043b\u044c \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f root \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f MySQL (\u0437\u0430\u043c\u0435\u043d\u0438\u0442\u0435 \u0441\u043b\u043e\u0432\u043e yourrootsqlpassword \u043d\u0430 \u0432\u0430\u0448 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u043f\u0430\u0440\u043e\u043b\u044c):<\/p>\n<div id=\"b_tu41\">\u041a\u043e\u0434: <em id=\"b_tu44\">mysqladmin -u root password yourrootsqlpassword<\/em><\/div>\n<p>\u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0432\u0441\u0435 \u043b\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c?<\/p>\n<div id=\"b_tu48\">\u041a\u043e\u0434: <em id=\"b_tu51\">netstat -tap | grep mysql<\/em><\/div>\n<p>\u0434\u043e\u043b\u0436\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c:<\/p>\n<div id=\"b_tu55\">\u041a\u043e\u0434: <em id=\"b_tu58\">t<\/em><em id=\"b_tu59\">cp 0 0 localhost.localdo:mysql *:* LISTEN 2713\/mysqld<\/em><\/div>\n<p>\u042d\u0442\u043e \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0438\u043c\u044f \u0445\u043e\u0441\u0442\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0435 localhost.localdomain, \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u044b \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u0447\u0442\u043e-\u0442\u043e \u0442\u0438\u043f\u0430:<\/p>\n<div id=\"b_tu63\">\u041a\u043e\u0434: <em id=\"b_tu66\">tcp 0 0 *:mysql *:* LISTEN 2713\/mysqld<\/em><\/div>\n<p>\u0414\u043b\u044f \u0441\u043c\u0435\u043d\u044b \u043f\u0430\u0440\u043e\u043b\u044f \u0432\u0430\u0448\u0435\u0439 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 MySQL \u043f\u043e\u0434 \u0432\u0430\u0448 hostname, \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043a\u043e\u043c\u043c\u0430\u043d\u0434\u0443:<\/p>\n<div id=\"b_tu69\">\u041a\u043e\u0434: <em id=\"b_tu72\">mysqladmin -h server1.example.com -u root password yourrootsqlpassword<\/em><\/div>\n<p><strong id=\"b_tu74\">3 \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0435 \u0441\u0443\u043f\u0435\u0440\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f MySQL \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u0434 vsftpd<\/strong><\/p>\n<div id=\"b_tu77\">\u041a\u043e\u0434: <em id=\"bf1r\">mysql -u root -p<\/em><\/div>\n<p>\u0432 \u043f\u043e\u044f\u0432\u0438\u0432\u0448\u0435\u043c\u0441\u044f \u043e\u043a\u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b (\u0442.\u0435. \u043d\u0430\u0445\u043e\u0434\u044f\u0441\u044c \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u043e\u0431\u043e\u043b\u043e\u0447\u043a\u0435 MySQL \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0431\u0430\u0437\u0443):<br \/>\n\u0418\u0445 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u00a0 \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0438 \u0437\u0430\u0442\u0435\u043c \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c, \u043d\u0430\u0436\u0430\u0432 \u0441\u0440\u0435\u0434\u043d\u044e\u044e \u043a\u043d\u043e\u0432\u043a\u0443 \u043c\u044b\u0448\u0438.<\/p>\n<div id=\"b_tu83\">\u041a\u043e\u0434: <em id=\"bf1r0\">CREATE DATABASE vsftpd;<br \/>\nGRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO &#8216;vsftpd&#8217;@&#8217;localhost&#8217; IDENTIFIED BY &#8216;ftpdpass&#8217;;<br \/>\nGRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO &#8216;vsftpd&#8217;@&#8217;localhost.localdomain&#8217; IDENTIFIED BY &#8216;ftpdpass&#8217;;<br \/>\nFLUSH PRIVILEGES;<\/em><\/div>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u0431\u0430\u0437\u044b:<\/p>\n<div id=\"b_tu92\">\u041a\u043e\u0434: <em id=\"bf1r1\">USE vsftpd;<\/em><\/div>\n<div id=\"b_tu96\">\u041a\u043e\u0434: <em id=\"i5q7\">CREATE TABLE `accounts` (<br \/>\n`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,<br \/>\n`username` VARCHAR( 30 ) NOT NULL ,<br \/>\n`pass` VARCHAR( 50 ) NOT NULL ,<br \/>\nUNIQUE (<br \/>\n`username`<br \/>\n)<br \/>\n) ENGINE = MYISAM ;<\/em><\/div>\n<p>\u0432\u044b\u0445\u043e\u0434\u0438\u043c \u0438\u0437 \u043e\u0431\u043e\u043b\u043e\u0447\u043a\u0438:<\/p>\n<div id=\"b_tu107\">\u041a\u043e\u0434: <em id=\"gv:v\">quit;<\/em><\/div>\n<p>\u0422. .\u0435. \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430 (quit), \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0432\u044b\u0439\u0442\u0438 \u0438\u0437 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u043e\u0431\u043e\u043b\u043e\u0447\u043a\u0438 MySQL.<\/p>\n<p>\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0432 \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 \u0441\u0441\u044b\u043b\u043a\u0443- <a id=\"b_tu113\" href=\"http:\/\/localhost\/phpmyadmin\/\" target=\"_blank\">http:\/\/localhost\/phpmyadmin\/<\/a> (\u0438\u043b\u0438 \u0432\u0430\u0448- \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: server1.example.com, \u0438\u043b\u0438 \u043c\u043e\u0436\u043d\u043e \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c IP \u0430\u0434\u0440\u0435\u0441 \u0432\u0430\u0448\u0435\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430) \u0432\u044b \u043f\u043e\u043f\u0430\u0434\u0435\u0442\u0435 \u0432 \u0443\u0442\u0438\u043b\u0438\u0442\u0443 phpmyadmin.<br \/>\n\u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u0442\u043e\u0439 \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0438\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u044d\u0442\u0443 \u0436\u0435 \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 (vsftpd), \u0438 \u0442\u0443\u0442 \u0436\u0435 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0435\u0451.<br \/>\n\u041f\u043e\u0437\u0436\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u0435\u0451 \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0432\u0430\u0448\u0438\u043c\u00a0 vsftpd \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c.<\/p>\n<p><strong id=\"b_tu118\">4 \u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0443\u0435\u043c vsftpd<\/strong><\/p>\n<p>\u0412\u00a0 \u043d\u0430\u0447\u0430\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u0435\u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f vsftpd (\u0441\u00a0 \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u0439<br \/>\n\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0435\u0439: \/home\/vsftpd) \u0432\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0432 \u0433\u0440\u0443\u043f\u043f\u0443: nogroup. \u0414\u043e\u043c\u0430\u0448\u043d\u0438\u0435<br \/>\n\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0448\u0435\u043c \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u044b \u0432<br \/>\n\u044d\u0442\u043e\u0439 \/home\/vsftpd \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: \/home\/vsftpd\/user1,<br \/>\n\/home\/vsftpd\/user2, \u0438 \u0442.\u0434.).<\/p>\n<div id=\"b_tu123\">\u041a\u043e\u0434: <em id=\"gv:v0\">useradd &#8212;home \/home\/vsftpd &#8212;gid nogroup -m &#8212;shell \/bin\/false vsftpd<\/em><\/div>\n<p>\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \/etc\/vsftpd.conf \u0444\u0430\u0439\u043b \u0438 \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0434\u0440\u0443\u0433\u043e\u0439:<\/p>\n<div id=\"b_tu129\">\u041a\u043e\u0434: <em id=\"gv:v1\">cp \/etc\/vsftpd.conf \/etc\/vsftpd.conf_orig<br \/>\ncat \/dev\/null &gt; \/etc\/vsftpd.conf<br \/>\ngedit \/etc\/vsftpd.conf<\/em><\/div>\n<p>\u0412\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0432 \u043e\u0442\u043a\u0440\u044b\u0432\u0448\u0435\u0435\u0441\u044f \u043e\u043a\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0442\u0435\u043a\u0441\u0442:<\/p>\n<div>\u041a\u043e\u0434:<\/div>\n<div><em id=\"voq6\">listen=YES<br \/>\nanonymous_enable=NO<br \/>\nlocal_enable=YES<br \/>\nwrite_enable=YES<br \/>\nlocal_umask=022<br \/>\ndirmessage_enable=YES<br \/>\nxferlog_enable=YES<br \/>\nconnect_from_port_20=YES<br \/>\nnopriv_user=vsftpd<br \/>\nchroot_local_user=YES<br \/>\nsecure_chroot_dir=\/var\/run\/vsftpd<br \/>\npam_service_name=vsftpd<br \/>\nrsa_cert_file=\/etc\/ssl\/certs\/vsftpd.pem<br \/>\nguest_enable=YES<br \/>\nguest_username=vsftpd<br \/>\nlocal_root=\/home\/vsftpd\/$USER<br \/>\nuser_sub_token=$USER<br \/>\nvirtual_use_local_privs=YES<br \/>\nuser_config_dir=\/etc\/vsftpd_user_conf<\/em><\/div>\n<p>\u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b.<\/p>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043c\u043e\u0436\u043d\u043e \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443: <a id=\"b_tu160\" href=\"http:\/\/vsftpd.beasts.org\/vsftpd_conf.html\" target=\"_blank\">http:\/\/vsftpd.beasts.org\/vsftpd_conf.html<\/a>.<\/p>\n<p>\u0414\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u043e\u043f\u0446\u0438\u0439: user_config_dir, \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0432\u043d\u043e\u0432\u044c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e:<\/p>\n<div id=\"b_tu166\">\u041a\u043e\u0434: <em id=\"uqyy\">mkdir \/etc\/vsftpd_user_conf<\/em><\/div>\n<p>\u0422\u0430\u043a\u00a0 \u0436\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c PAM \u0434\u043b\u044f \u0432\u0430\u0448\u0438\u0445 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 FTP \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439<br \/>\n\u0441 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0435\u0439 \u0432 MySQL \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445\u00a0 \u0432\u043c\u0435\u0441\u0442\u043e\u00a0 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432<br \/>\n\/etc\/passwd \u0438 \/etc\/shadow. \u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0434\u043b\u044f PAM \u043f\u043e\u0434 vsftpd<br \/>\n\u0434\u043e\u043b\u0436\u0435\u043d \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043f\u0430\u043f\u043a\u0435 \/etc\/pam.d\/vsftpd. \u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0438<br \/>\n\u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u043e\u0432\u044b\u0439:<\/p>\n<div id=\"b_tu172\">\u041a\u043e\u0434: <em id=\"uqyy0\">cp \/etc\/pam.d\/vsftpd \/etc\/pam.d\/vsftpd_orig<br \/>\ncat \/dev\/null &gt; \/etc\/pam.d\/vsftpd<br \/>\ngedit \/etc\/pam.d\/vsftpd<\/em><\/div>\n<p>\u0412\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0432 \u043e\u0442\u043a\u0440\u044b\u0432\u0448\u0435\u0435\u0441\u044f \u043e\u043a\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0442\u0435\u043a\u0441\u0442:<\/p>\n<div id=\"b_tu180\">\u041a\u043e\u0434:<\/div>\n<div id=\"b_tu181\">\n<pre id=\"b_tu182\"><em id=\"usox\">auth required pam_mysql.so user=vsftpd passwd=ftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2 account required pam_mysql.so user=vsftpd passwd=ftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2<\/em><\/pre>\n<\/div>\n<p>\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u044d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b.<\/p>\n<p>\u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u043d\u0430\u0448\u00a0 vsftpd \u0441\u0435\u0440\u0432\u0435\u0440:<\/p>\n<div id=\"b_tu191\">\u041a\u043e\u0434: <em id=\"jkp6\">\/etc\/init.d\/vsftpd restart<\/em><\/div>\n<p><strong id=\"b_tu195\">5 \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/strong><\/p>\n<p>\u0417\u0430\u0445\u043e\u0434\u0438\u043c \u043e\u043f\u044f\u0442\u044c \u043f\u043e\u0434 root \u0432 \u043e\u0431\u043e\u043b\u043e\u0447\u043a\u0443 MySQL :<\/p>\n<div id=\"b_tu200\">\u041a\u043e\u0434: <em id=\"jkp60\">mysql -u root -p<\/em><\/div>\n<p>\u041f\u0438\u0448\u0435\u043c \u0438\u043b\u0438 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u0443:<\/p>\n<div id=\"b_tu206\">\u041a\u043e\u0434: <em id=\"jkp61\">USE vsftpd;<\/em><\/div>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043f\u043e\u0434 \u0438\u043c\u0435\u043d\u0435\u043c: testuser \u0438 \u043f\u0430\u0440\u043e\u043b\u0435\u043c\u00a0 secret:<\/p>\n<div id=\"b_tu212\">\u041a\u043e\u0434: <em id=\"jkp62\">INSERT INTO accounts (username, pass) VALUES(&#8216;testuser&#8217;, PASSWORD(&#8216;secret&#8217;)); quit;<\/em><\/div>\n<p>\u0414\u043e\u043c\u0430\u0448\u043d\u044f\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f testuser&#8217;\u0430 \u0431\u0443\u0434\u0435\u0442 \u0437\u0434\u0435\u0441\u044c \/home\/vsftpd\/testuser.<br \/>\n\u0415\u0441\u043b\u0438 \u043e\u043d\u0430 \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u043b\u0430\u0441\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c\u00a0 \u044d\u0442\u0443 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0432 \u0433\u0440\u0443\u043f\u043f\u0435: nogroup:<\/p>\n<div id=\"b_tu219\">\u041a\u043e\u0434: <em id=\"jkp63\">mkdir \/home\/vsftpd\/testuser<br \/>\nchown vsftpd:nogroup \/home\/vsftpd\/testuser<\/em><\/div>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c\u00a0 \u0447\u0435\u0440\u0435\u0437 \u043b\u044e\u0431\u043e\u0439 FTP \u043a\u043b\u0438\u0435\u043d\u0442 \u0434\u043b\u044f Linux \u0438\u043b\u0438 Windows, \u0438\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u0440\u043e\u0441\u0442\u043e<br \/>\n\u0431\u0440\u0430\u0443\u0437\u0435\u0440, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u0441\u044f\u00a0 c \u0432\u043d\u043e\u0432\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0438\u043c\u044f<br \/>\ntestuser \u0438 \u043f\u0430\u0440\u043e\u043b\u044c secret.<\/p>\n<p>\u041f\u043e \u0442\u043e\u0439 \u0436\u0435 \u0441\u0445\u0435\u043c\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0438 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439.<\/p>\n<p><strong id=\"b_tu228\">6 \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0431\u0430\u0437\u043e\u0439 \u0434\u0430\u043d\u043d\u044b\u0445<\/strong><\/p>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u0430\u043a\u0435\u0442 phpMyAdmin, \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0431\u0440\u0430\u0442\u044c \u0432 \u0432\u0430\u0448\u0435\u043c \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435, \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0432\u043e\u0442 \u0442\u0430\u043a\u0443\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u0443:<br \/>\n<a id=\"b_tu232\" href=\"http:\/\/server1.example.com\/phpmyadmin\/\" target=\"_blank\">http:\/\/server1.example.com\/phpmyadmin\/<\/a><\/p>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u044d\u0442\u0443 \u0443\u0442\u0438\u043b\u0438\u0442\u0443 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c vsftpd \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445.<br \/>\n\u0412 \u044d\u0442\u0438\u0445 \u0436\u0435 \u0446\u0435\u043b\u044f\u0445 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438 \u043f\u0430\u043a\u0435\u0442 Webmin.<\/p>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u044d\u0442\u0438 \u043f\u0430\u043a\u0435\u0442\u044b \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0438 \u0443\u0434\u0430\u043b\u044f\u0442\u044c \u0432\u0430\u0448\u0438\u0445 FTP \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0438 \u0438\u0445 \u043f\u0430\u0440\u043e\u043b\u0438 \u0438 \u0442.\u0434.<\/p>\n<p>\u0414\u043b\u044f \u0443\u0434\u043e\u0431\u043d\u043e\u0433\u043e\u00a0\u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c\u0438 \u0435\u0441\u0442\u044c bash \u0441\u043a\u0440\u0438\u043f\u0442:<\/p>\n<p>#!\/bin\/bash<br \/>\n#\u0421\u043a\u0440\u0438\u043f\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c\u0438 vsftpd<\/p>\n<p>ftp_login=vsftpd #\u041b\u043e\u0433\u0438\u043d \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 vsftpd<br \/>\nmysqlbase=vsftpd #\u0418\u043c\u044f \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 vsftpd<br \/>\nftp_path=&#187;\/home\/vsftpd\/&#187; #\u041f\u0443\u0442\u044c \u043a \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 vsftpd<br \/>\nftp_backup_dir=&#187;\/srv\/vsftpd_back\/&#187; #\u041f\u0443\u0442\u044c \u043a \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0438 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439<br \/>\nftp_group=ftp #\u0413\u0440\u0443\u043f\u043f\u0430 vsftpd<br \/>\npassdigit=6 #\u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043b\u0438\u043d\u043d\u0430 \u043f\u0430\u0440\u043e\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u0445<\/p>\n<p>function input_correct_pass { #\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u044c \u043f\u0430\u0440\u043e\u043b\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u0430 vsftpd<br \/>\ncorr=1<br \/>\nwhile [ &#171;$corr&#187; -ne 0 ];<br \/>\ndo<br \/>\necho &#171;\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043f\u0430\u0440\u043e\u043b\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0431\u0430\u0437\u044b ftp&#187;<br \/>\nread -s ftp_pass<br \/>\nmysql -u $ftp_login &#8212;password=$ftp_pass -e exit &amp;&gt; \/dev\/null<br \/>\ncorr=$?<br \/>\nif [ &#171;$corr&#187; -ne 0 ]; then<br \/>\nclear<br \/>\necho &#171;\u0412\u044b \u0432\u0432\u0435\u043b\u0438 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u043f\u0430\u0440\u043e\u043b\u044c!&#187;<br \/>\necho<br \/>\nfi<\/p>\n<p>done<br \/>\n}<\/p>\n<p>function cor_usr_pass { #\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u044c \u043f\u0430\u0440\u043e\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<br \/>\nnumb=${#usr_pass}<br \/>\nwhile [ -z &#171;$usr_pass&#187; ] || [ &#171;$numb&#187; -lt &#171;$passdigit&#187; ]<br \/>\ndo<br \/>\nif [ -z &#171;$usr_pass&#187; ]; then<br \/>\necho\u00a0 &#171;\u041f\u0430\u0440\u043e\u043b\u044c \u043d\u0443\u043b\u0435\u0432\u043e\u0439 \u0434\u043b\u0438\u043d\u043d\u044b \u043d\u0435 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c&#187;<br \/>\nelif [ &#171;$numb&#187; -lt &#171;$passdigit&#187; ]; then<br \/>\necho &#171;\u0414\u043b\u0438\u043d\u043d\u0430 \u043f\u0430\u0440\u043e\u043b\u044f \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 $passdigit \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432&#187;<br \/>\nfi<br \/>\necho &#171;\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u0430\u0440\u043e\u043b\u044c&#187;<br \/>\nread -s\u00a0 usr_pass<br \/>\nnumb=${#usr_pass}<br \/>\ndone<br \/>\n}<\/p>\n<p>function usr_add { # \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 \u0431\u0430\u0437\u0443 vsftpd \u0438 \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u0440\u0430\u0431\u043e\u0447\u0443\u044e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e<br \/>\nclear<br \/>\nread -p &#171;\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043b\u043e\u0433\u0438\u043d \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f ftp: &#187; ftp_usr<br \/>\n# \u0414\u0430\u043d\u043d\u044b\u0439 \u0443\u0447\u0430\u0441\u0442\u043e\u043a \u043a\u043e\u0434\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u044c \u0432\u0432\u043e\u0434\u0438\u043c\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445========================================================================================<br \/>\nctrl_login=`mysql -e &#171;SELECT username FROM accounts WHERE username=&#8217;$ftp_usr&#8217;;&#187; -u $ftp_login &#8212;password=$ftp_pass -D $mysqlbase`<br \/>\nctrl_login=${ctrl_login:9}<br \/>\nwhile [ -z &#171;$ftp_usr&#187; ] || [ &#171;$ctrl_login&#187; == &#171;$ftp_usr&#187; ]<br \/>\ndo<br \/>\nif [ -z &#171;$ftp_usr&#187; ]; then<br \/>\necho &#171;\u043b\u043e\u0433\u0438\u043d \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0443\u0441\u0442\u044b\u043c&#187;<br \/>\nelif [ &#171;$ctrl_login&#187; == &#171;$ftp_usr&#187; ]; then<br \/>\necho &#171;\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442&#187;<br \/>\nfi<br \/>\nread -p &#171;\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043b\u043e\u0433\u0438\u043d \u0437\u0430\u043d\u043e\u0432\u043e: &#187; ftp_usr<br \/>\nctrl_login=`mysql -e &#171;SELECT username FROM accounts WHERE username=&#8217;$ftp_usr&#8217;;&#187; -u $ftp_login &#8212;password=$ftp_pass -D $mysqlbase`<br \/>\nctrl_login=${ctrl_login:9}<br \/>\ndone<br \/>\n#====================================================================================================================================================<br \/>\necho &#171;\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043f\u0430\u0440\u043e\u043b\u044c \u0434\u043b\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f ftp:&#187;<br \/>\nread -s usr_pass<br \/>\ncor_usr_pass<br \/>\nmysql -e &#171;INSERT INTO accounts (username, pass) VALUES(&#8216;$ftp_usr&#8217;, PASSWORD(&#8216;$usr_pass&#8217;));&#187; -u $ftp_login &#8212;password=$ftp_pass -D $mysqlbase&amp;&amp;<br \/>\nmkdir $ftp_path$ftp_usr&amp;&amp;<br \/>\nchown $ftp_login:$ftp_group $ftp_path$ftp_usr&amp;&amp;<br \/>\nchmod 770 $ftp_path$ftp_usr<\/p>\n<p>if [ &#171;$?&#187; -eq 0 ]; then<br \/>\nclear<br \/>\necho &#171;\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c $ftp_usr \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u0443\u0441\u043f\u0435\u0448\u043d\u043e&#187;<br \/>\nelse<br \/>\necho &#171;\u041e\u0448\u0438\u0431\u043a\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f $ftp_usr&#187;<br \/>\nfi<\/p>\n<p>}<\/p>\n<p>function change_pass { #\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043c\u0435\u043d\u044f\u0435\u0442 \u043f\u0430\u0440\u043e\u043b\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<br \/>\nread -p &#171;\u0434\u043b\u044f \u043a\u0430\u043a\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043c\u0435\u043d\u044f\u0442\u044c \u043f\u0430\u0440\u043e\u043b\u044c: &#187; ftp_usr<br \/>\nctrl_login=`mysql -e &#171;SELECT username FROM accounts WHERE username=&#8217;$ftp_usr&#8217;;&#187; -u $ftp_login &#8212;password=$ftp_pass -D $mysqlbase`<br \/>\nctrl_login=${ctrl_login:9}<br \/>\nwhile [ -z &#171;$ftp_usr&#187; ] || [ &#171;$ctrl_login&#187; != &#171;$ftp_usr&#187; ]<br \/>\ndo<br \/>\nif [ -z &#171;$ftp_usr&#187; ]; then<br \/>\necho &#171;\u043b\u043e\u0433\u0438\u043d \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0443\u0441\u0442\u044b\u043c&#187;<br \/>\nelif [ &#171;$ctrl_login&#187; != &#171;$ftp_usr&#187; ]; then<br \/>\necho &#171;\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442&#187;<br \/>\nfi<br \/>\nread -p &#171;\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043b\u043e\u0433\u0438\u043d \u0437\u0430\u043d\u043e\u0432\u043e: &#187; ftp_usr<br \/>\nctrl_login=`mysql -e &#171;SELECT username FROM accounts WHERE username=&#8217;$ftp_usr&#8217;;&#187; -u $ftp_login &#8212;password=$ftp_pass -D $mysqlbase`<br \/>\nctrl_login=${ctrl_login:9}<br \/>\ndone<br \/>\necho &#171;\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043d\u043e\u0432\u044b\u0439 \u043f\u0430\u0440\u043e\u043b\u044c \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f $ftp_usr&#187;<br \/>\nread -s usr_pass<br \/>\ncor_usr_pass<br \/>\nmysql -e &#171;UPDATE vsftpd . accounts SET pass=PASSWORD(&#8216;$usr_pass&#8217;) WHERE (accounts . username=&#8217;$ftp_usr&#8217;);&#187; -u $ftp_login &#8212;password=$ftp_pass -D $mysqlbase<br \/>\nif [ &#171;$?&#187; -eq 0 ]; then<br \/>\nclear<br \/>\necho &#171;\u041f\u0430\u0440\u043e\u043b\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f $ftp_usr \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d&#187;<br \/>\nelse<br \/>\necho &#171;\u041e\u0448\u0438\u0431\u043a\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u0430\u0440\u043e\u043b\u044f \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f $ftp_usr&#187;<br \/>\nfi<br \/>\n}<\/p>\n<p>function del_usr { #\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0441\u0435\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u0435\u0433\u043e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0438 \u0434\u0435\u043b\u0430\u0435\u0442 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u0443\u044e \u043a\u043e\u043f\u0438\u044e<br \/>\nread -p &#171;\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043b\u043e\u0433\u0438\u043d \u0443\u0434\u0430\u043b\u044f\u0435\u043c\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f: &#187; ftp_usr<br \/>\nctrl_login=`mysql -e &#171;SELECT username FROM accounts WHERE username=&#8217;$ftp_usr&#8217;;&#187; -u $ftp_login &#8212;password=$ftp_pass -D $mysqlbase`<br \/>\nctrl_login=${ctrl_login:9}<br \/>\nwhile [ -z &#171;$ftp_usr&#187; ] || [ &#171;$ctrl_login&#187; != &#171;$ftp_usr&#187; ]<br \/>\ndo<br \/>\nif [ -z &#171;$ftp_usr&#187; ]; then<br \/>\necho &#171;\u043b\u043e\u0433\u0438\u043d \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0443\u0441\u0442\u044b\u043c&#187;<br \/>\nelif [ &#171;$ctrl_login&#187; != &#171;$ftp_usr&#187; ]; then<br \/>\necho &#171;\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442&#187;<br \/>\nfi<br \/>\nread -p &#171;\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043b\u043e\u0433\u0438\u043d \u0437\u0430\u043d\u043e\u0432\u043e: &#187; ftp_usr<br \/>\nctrl_login=`mysql -e &#171;SELECT username FROM accounts WHERE username=&#8217;$ftp_usr&#8217;;&#187; -u $ftp_login &#8212;password=$ftp_pass -D $mysqlbase`<br \/>\nctrl_login=${ctrl_login:9}<br \/>\ndone<\/p>\n<p>mysql -e &#171;DELETE FROM accounts WHERE (username=&#8217;$ftp_usr&#8217;);&#187; -u $ftp_login &#8212;password=$ftp_pass -D $mysqlbase&amp;&amp;<br \/>\ntar -cvf $ftp_path$ftp_usr$(date +%d%m%Y%).tar $ftp_path$ftp_usr&amp;&amp;<br \/>\nrm -r $ftp_path$ftp_usr&amp;&amp;<br \/>\nmv $ftp_path$ftp_usr$(date +%d%m%Y%).tar $ftp_backup_dir<br \/>\nif [ &#171;$?&#187; -eq 0 ]; then<br \/>\nclear<br \/>\necho &#171;\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c $ftp_usr \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0443\u0434\u0430\u043b\u0435\u043d&#187;<br \/>\nelse<br \/>\necho &#171;\u041e\u0448\u0438\u0431\u043a\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f $ftp_usr&#187;<br \/>\nfi<br \/>\n}<\/p>\n<p>function show_all_users { #\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0432\u0441\u0435\u0445 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 vsftpd<br \/>\nclear<br \/>\nmysql -e &#171;SELECT username FROM accounts;&#187; -u $ftp_login &#8212;password=$ftp_pass -D $mysqlbase<br \/>\n}<\/p>\n<p>input_correct_pass<br \/>\nclear<br \/>\necho<\/p>\n<p>chpass=&#187;\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c_\u043f\u0430\u0440\u043e\u043b\u044c_\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f&#187;<br \/>\nnew_usr=&#187;\u0421\u043e\u0437\u0434\u0430\u0442\u044c_\u043d\u043e\u0432\u043e\u0433\u043e_\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f&#187;<br \/>\nrmusr=&#187;\u0423\u0434\u0430\u043b\u0438\u0442\u044c_\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f&#187;<br \/>\ndback=&#187;\u0423\u0434\u0430\u043b\u0438\u0442\u044c_\u0440\u0435\u0437\u0435\u0440\u0432\u043d\u0443\u044e_\u043a\u043e\u043f\u0438\u044e_\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432_\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439&#187;<br \/>\nshow_users=&#187;\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c_\u0441\u043f\u0438\u0441\u043e\u043a_\u0432\u0441\u0435\u0445_\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439&#187;<br \/>\next=&#187;\u0412\u044b\u0445\u043e\u0434&#187;<\/p>\n<p>select opt in $chpass $new_usr $rmusr $dback $show_users $ext ; do<br \/>\nif [ &#171;$opt&#187; = &#171;\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c_\u043f\u0430\u0440\u043e\u043b\u044c_\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f&#187; ]; then<br \/>\nchange_pass<br \/>\nelif [ &#171;$opt&#187; = &#171;\u0421\u043e\u0437\u0434\u0430\u0442\u044c_\u043d\u043e\u0432\u043e\u0433\u043e_\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f&#187; ]; then<br \/>\nusr_add<br \/>\nelif [ &#171;$opt&#187; = &#171;\u0423\u0434\u0430\u043b\u0438\u0442\u044c_\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f&#187; ]; then<br \/>\ndel_usr<br \/>\nelif [ &#171;$opt&#187; = &#171;\u0423\u0434\u0430\u043b\u0438\u0442\u044c_\u0440\u0435\u0437\u0435\u0440\u0432\u043d\u0443\u044e_\u043a\u043e\u043f\u0438\u044e_\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432_\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439&#187; ]; then<br \/>\nclear&amp;&amp;rm -rfv $ftp_backup_dir*<br \/>\nelif [ &#171;$opt&#187; = &#171;\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c_\u0441\u043f\u0438\u0441\u043e\u043a_\u0432\u0441\u0435\u0445_\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439&#187; ]; then<br \/>\nshow_all_users<br \/>\nelif [ &#171;$opt&#187; = &#171;\u0412\u044b\u0445\u043e\u0434&#187; ]; then<br \/>\nclear<br \/>\nexit<br \/>\nelse<br \/>\nclear<br \/>\necho &#171;\u0414\u043e\u043f\u0443\u0441\u043a\u0430\u044e\u0442\u0441\u044f \u0446\u0438\u0444\u0440\u044b \u043e\u0442 1 \u0434\u043e 6&#187;<br \/>\necho &#171;\u0414\u043b\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 \u0432 \u043c\u0435\u043d\u044e \u043d\u0430\u0436\u043c\u0438\u0442\u0435 Enter&#187;<br \/>\nfi<br \/>\ndone<\/p>\n<p>\u0412\u043e\u0442 \u0442\u0430\u043a \u0432\u043e\u0442 )))<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0445\u043e\u0441\u0442\u0430\u00a0 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c vsftpd \u0438\u00a0\u00a0 MySQL \u0432 CentOS \u041e\u0431\u044b\u0447\u043d\u043e\u00a0Vsftpd \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u0434 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435. \u0412 \u044d\u0442\u043e\u043c \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 vsftpd \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043f\u043e\u0434 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0432 MySQL \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445, \u0432\u0437\u0430\u043c\u0435\u043d \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. \u0422\u0430\u043a\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 &hellip; <a href=\"https:\/\/blog.5flor.ru\/?p=119\">\u0427\u0438\u0442\u0430\u0442\u044c \u0434\u0430\u043b\u0435\u0435 <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,3],"tags":[],"class_list":["post-119","post","type-post","status-publish","format-standard","hentry","category-ftp","category-linux"],"_links":{"self":[{"href":"https:\/\/blog.5flor.ru\/index.php?rest_route=\/wp\/v2\/posts\/119"}],"collection":[{"href":"https:\/\/blog.5flor.ru\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.5flor.ru\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.5flor.ru\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.5flor.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=119"}],"version-history":[{"count":0,"href":"https:\/\/blog.5flor.ru\/index.php?rest_route=\/wp\/v2\/posts\/119\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.5flor.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=119"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.5flor.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=119"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.5flor.ru\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=119"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}