MySQL destekli FTP Server (PureFTP) Kurulumu
Linux’da sanal kullanıcıları MySQL üzerinde tutan bir ftp kurulumu yapacağız. Kurulumu linux debian üzerinde denedim. FTP server olarak PureFTP yi seçtim.
Alternatif olarak diğer popüler VSFTPD ya da ProFTP’yi de MySQL detsekli kurabilirsiniz.
1. Paket kurulumu
# apt-get install pure-ftpd-mysql
2. User ve grup yaratılır
# groupadd -g 2001 ftpgroup
# useradd -u 2001 -s /bin/false -d /bin/null -c "pureftpd user" -g ftpgroup ftpuser
3. MySQL DB ve user yaratılır.
mysql -u root -p
GRANT SELECT ON ftpd.* TO vhosts@localhost IDENTIFIED BY 'mypasswd';
FLUSH PRIVILEGES;
CREATE DATABASE ftpd;
USE ftpd;
CREATE TABLE users (
user varchar(30) NOT NULL,
password varchar(64) NOT NULL,
home varchar(128) NOT NULL,
bandwidth_limit_upload smallint(5) NOT NULL default 0,
bandwidth_limit_download smallint(5) NOT NULL default 0,
ip_allow varchar(15) NOT NULL default 'any',
quota smallint(5) NOT NULL default '0',
quota_files int(11) NOT NULL default 0,
active enum('yes','no') NOT NULL default 'yes',
PRIMARY KEY (user),
UNIQUE KEY User (user)
) TYPE=MyISAM;
INSERT INTO users (user, password, home) VALUES ('username', MD5('mypasswd'), '/home/username');
4. MySQL ayarları yapılır.
# vi /etc/pure-ftpd/db/mysql.conf
Aşağıdaki gibi değiştirilir:
MYSQLSocket /var/run/mysqld/mysqld.sock
MYSQLUser vhosts
MYSQLPassword mypasswd
MYSQLDatabase ftpd
MYSQLCrypt md5
MYSQLDefaultUID 2001
MYSQLDefaultGID 2001
MYSQLGetPW SELECT password FROM users WHERE user = "\L" AND active = "yes" AND (ip_allow = "any" OR ip_allow LIKE "\R")
MYSQLGetDir SELECT home FROM users WHERE user = "\L"AND active = "yes" AND (ip_allow = "any" OR ip_allow LIKE "\R")
MySQLGetBandwidthUL SELECT bandwidth_limit_upload FROM users WHERE user = "\L"AND active = "yes" AND (ip_allow = "any" OR ip_allow LIKE "\R")
MySQLGetBandwidthDL SELECT bandwidth_limit_download FROM users WHERE user = "\L"AND active = "yes" AND (ip_allow = "any" OR ip_allow LIKE "\R")
MySQLGetQTASZ SELECT quota FROM users WHERE user = "\L"AND active = "yes" AND (ip_allow = "any" OR ip_allow LIKE "\R")
MySQLGetQTAFS SELECT quota_files FROM users WHERE user = "\L"AND active = "yes" AND (ip_allow = "any" OR ip_allow LIKE "\R")
5. Kendi home larından baska yer goremesinler için:
# vi /etc/pure-ftpd/conf/ChrootEveryone
dosyası yaratılır içerisine “yes” yazılır.
6. Servis “restart” edilir:
# /etc/init.d/pure-ftpd-mysql restart
Recent Comments