Install FTP Server
Версія від 14:57, 10 листопада 2009, створена 91.124.49.233 (обговорення)
Ставимо додаткові репозиторії читати тут
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 pureftpd MYSQLPassword ftpdpass 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