Відмінності між версіями «Install FTP Server»

Матеріал з Wiki Welard
Перейти до навігації Перейти до пошуку
Рядок 45: Рядок 45:
  
 
Редагуємо /etc/pure-ftpd/pureftpd-mysql.conf  
 
Редагуємо /etc/pure-ftpd/pureftpd-mysql.conf  
−
<pre>MYSQLSocket     /var/lib/mysql/mysql.sock
+
<pre>
−
#MYSQLServer    localhost
+
#MYSQLServer    127.0.0.1
−
#MYSQLPort       3306
+
# MYSQLPort      3306
−
MYSQLUser      pureftpd
+
MYSQLSocket     /var/lib/mysql/mysql.sock
−
MYSQLPassword  ftpdpass
+
 
 +
MYSQLUser       andrew
 +
 
 +
MYSQLPassword  fks,f,f
 +
 
 
MYSQLDatabase  pureftpd
 
MYSQLDatabase  pureftpd
−
#MYSQLCrypt md5, cleartext, crypt() or password() - md5 is VERY RECOMMENDABLE uppon cleartext
+
 
 
MYSQLCrypt      md5
 
MYSQLCrypt      md5
−
MYSQLGetPW      SELECT Password FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
+
 
−
MYSQLGetUID    SELECT Uid FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
+
 
−
MYSQLGetGID    SELECT Gid FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
+
MYSQLGetPW      SELECT Password FROM users WHERE User="\L"
−
MYSQLGetDir    SELECT Dir FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
+
MYSQLGetUID    SELECT Uid FROM users WHERE User="\L"
−
MySQLGetBandwidthUL SELECT ULBandwidth FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
+
#MYSQLDefaultUID 1000
−
MySQLGetBandwidthDL SELECT DLBandwidth FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
+
MYSQLGetGID    SELECT Gid FROM users WHERE User="\L"
−
MySQLGetQTASZ  SELECT QuotaSize FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
+
#MYSQLDefaultGID 1000
−
MySQLGetQTAFS  SELECT QuotaFiles FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
+
MYSQLGetDir    SELECT Dir FROM users WHERE User="\L"
 +
MySQLGetQTAFS  SELECT QuotaFiles FROM users WHERE User="\L"
 +
 
 +
# Optional : bandwidth throttling.
 +
# Values are in KB/s .
 +
MySQLGetBandwidthUL SELECT ULBandwidth FROM users WHERE User="\L"
 +
MySQLGetBandwidthDL SELECT DLBandwidth FROM users WHERE User="\L"
 +
 
 +
# MySQLForceTildeExpansion 1
 +
# MySQLTransactions On
 
</pre>  
 
</pre>  
 
Запускаємо  
 
Запускаємо  

Версія за 14:46, 10 листопада 2009

Ставимо додаткові репозиторії читати тут

yum install pure-ftpd

Створюємо користувача та групу (uid для прикладу 2001)

groupadd -g 2001 ftpgroup
useradd -u 2001 -s /bin/false -d /bin/null -c "pureftpd user" -g ftpgroup ftpuser

Дані про користувачі будемо тримати в базі MySQL (логін/пароль pureftpd/ftpdpass )

mysql -u root -p
CREATE DATABASE pureftpd;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO 'pureftpd'@'localhost' IDENTIFIED BY 'ftpdpass';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO 'pureftpd'@'localhost.localdomain' IDENTIFIED BY 'ftpdpass';
FLUSH PRIVILEGES;
USE pureftpd;
 CREATE TABLE ftpd (
 User varchar(16) NOT NULL default '',
 status enum('0','1') NOT NULL default '0',
 Password varchar(64) NOT NULL default '',
 Uid varchar(11) NOT NULL default '-1',
 Gid varchar(11) NOT NULL default '-1',
 Dir varchar(128) NOT NULL default '',
 ULBandwidth smallint(5) NOT NULL default '0',
 DLBandwidth smallint(5) NOT NULL default '0',
 comment tinytext NOT NULL,
 ipaccess varchar(15) NOT NULL default '*',
 QuotaSize smallint(5) NOT NULL default '0',
 QuotaFiles int(11) NOT NULL default 0,
 PRIMARY KEY (User),
 UNIQUE KEY User (User)
 ) TYPE=MyISAM;
quit;

Редагуємо /etc/pure-ftpd/pure-ftpd.conf Замінюємо у файлі на

ChrootEveryone              yes
MySQLConfigFile             /etc/pure-ftpd/pureftpd-mysql.conf
CreateHomeDir               yes

Редагуємо /etc/pure-ftpd/pureftpd-mysql.conf

#MYSQLServer     127.0.0.1
# MYSQLPort       3306
MYSQLSocket     /var/lib/mysql/mysql.sock

MYSQLUser       andrew

MYSQLPassword   fks,f,f

MYSQLDatabase   pureftpd

MYSQLCrypt      md5


MYSQLGetPW      SELECT Password FROM users WHERE User="\L"
MYSQLGetUID     SELECT Uid FROM users WHERE User="\L"
#MYSQLDefaultUID 1000
MYSQLGetGID     SELECT Gid FROM users WHERE User="\L"
#MYSQLDefaultGID 1000
MYSQLGetDir     SELECT Dir FROM users WHERE User="\L"
MySQLGetQTAFS  SELECT QuotaFiles FROM users WHERE User="\L"

# Optional : bandwidth throttling.
# Values are in KB/s .
MySQLGetBandwidthUL SELECT ULBandwidth FROM users WHERE User="\L"
MySQLGetBandwidthDL SELECT DLBandwidth FROM users WHERE User="\L"

# MySQLForceTildeExpansion 1
# MySQLTransactions On

Запускаємо

chkconfig --levels 235 pure-ftpd on
/etc/init.d/pure-ftpd start

Добпвляємо користувача

INSERT INTO `ftpd` (`User`, `status`, `Password`, `Uid`, `Gid`, `Dir`, `ULBandwidth`, `DLBandwidth`, `comment`, `ipaccess`, `QuotaSize`, `QuotaFiles`) 
VALUES (''''exampleuser'''', '1', MD5(''''secret''''), '2001', '2001', '/home/www.example.com', '100', '100', '', '*', '50', '0');''

Якщо потрібний анонімний FTP (/var/ftp) то у файлі /etc/pure-ftpd/pure-ftpd.conf

NoAnonymous                 no
AntiWarez                   no
AnonymousBandwidth          8
AnonymousCantUpload         no