usman
25.02.2009, 15:58
Для того, чтобы построить виртуальный FTP хостинг нужно установить необходимые программы
# apt-get install proftpd proftpd-mysql mysql-server
Затем нужно добавить группу для тип пользователя для доступа к ftp
# groupadd -g 3001 ftpgroup
# useradd -s /bin/false -d /bin/null -c "proftpd user" --uid 3001 -g ftpgroup ftpuser
Затем заходим в MySQL
# mysql -u root -p
и создаем таблицу
mysql> CREATE DATABASE proftpddb;
Query OK, 1 row affected (0.00 sec)
mysql> GRANT USAGE ON *.* TO proftpduser@localhost IDENTIFIED BY 'proftpdpassword';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT SELECT, INSERT, UPDATE, DELETE ON proftpddb.* TO 'proftpduser'@'localhost';
Query OK, 0 rows affected (0.00 sec)
mysql> quit Теперь нам нужно выполнить некоторые sql-команды. Лучше всего сделать файл, записать их все туда и затем выполнить их в одном рывке.
Создаем файл:
# ee proftpd-mysql.sql
и запишем в него вот такие команды:
CREATE TABLE ftpgroup (
groupname varchar(16) NOT NULL default '',
gid smallint(6) NOT NULL default '3000',
members varchar(16) NOT NULL default '',
KEY groupname (groupname)
) TYPE=MyISAM COMMENT='ProFTPd group table';
CREATE TABLE ftpuser (
id int(10) unsigned NOT NULL auto_increment,
userid varchar(32) NOT NULL default '',
passwd varchar(80) NOT NULL default '',
uid smallint(6) NOT NULL default '3000',
gid smallint(6) NOT NULL default '3000',
homedir varchar(255) NOT NULL default '',
shell varchar(16) NOT NULL default '/sbin/nologin',
count int(11) NOT NULL default '0',
accessed datetime NOT NULL default '0000-00-00 00:00:00',
modified datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (id),
UNIQUE KEY userid (userid)
) TYPE=MyISAM COMMENT='ProFTPd user table';
Сохраняем файл, выходим из редактора и выполняем вот такую команду:
# mysql -u root -p proftpddb < proftpd-mysql.sql
После этого снова заходим в консоль мускула
# mysql -u root -p proftpddb
И выполняем следующие запросы:
mysql> INSERT INTO `ftpuser` (`id`, `userid`, `passwd`, `uid`, `gid`, `homedir`, `shell`, `count`, `accessed`, `modified`) VALUES (1, 'firstuser', PASSWORD('userpassword'), 3001, 3001, '/var/proftp/firstuser', '/sbin/nologin', 0, '', '');
mysql> INSERT INTO `ftpgroup` (`groupname`, `gid`, `members`) VALUES ('ftpgroup', 3001, 'ftpuser');для того, чтобы пользователи могли не только читать свои файлы, но еще и записывать их туда, а, при необходимости. еще и удалять, нужно выполнить сделующие команды:
# mkdir /var/proftp
# chown ftpuser:ftpgroup /var/proftp
# chmod 775 /var/proftp
# apt-get install proftpd proftpd-mysql mysql-server
Затем нужно добавить группу для тип пользователя для доступа к ftp
# groupadd -g 3001 ftpgroup
# useradd -s /bin/false -d /bin/null -c "proftpd user" --uid 3001 -g ftpgroup ftpuser
Затем заходим в MySQL
# mysql -u root -p
и создаем таблицу
mysql> CREATE DATABASE proftpddb;
Query OK, 1 row affected (0.00 sec)
mysql> GRANT USAGE ON *.* TO proftpduser@localhost IDENTIFIED BY 'proftpdpassword';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT SELECT, INSERT, UPDATE, DELETE ON proftpddb.* TO 'proftpduser'@'localhost';
Query OK, 0 rows affected (0.00 sec)
mysql> quit Теперь нам нужно выполнить некоторые sql-команды. Лучше всего сделать файл, записать их все туда и затем выполнить их в одном рывке.
Создаем файл:
# ee proftpd-mysql.sql
и запишем в него вот такие команды:
CREATE TABLE ftpgroup (
groupname varchar(16) NOT NULL default '',
gid smallint(6) NOT NULL default '3000',
members varchar(16) NOT NULL default '',
KEY groupname (groupname)
) TYPE=MyISAM COMMENT='ProFTPd group table';
CREATE TABLE ftpuser (
id int(10) unsigned NOT NULL auto_increment,
userid varchar(32) NOT NULL default '',
passwd varchar(80) NOT NULL default '',
uid smallint(6) NOT NULL default '3000',
gid smallint(6) NOT NULL default '3000',
homedir varchar(255) NOT NULL default '',
shell varchar(16) NOT NULL default '/sbin/nologin',
count int(11) NOT NULL default '0',
accessed datetime NOT NULL default '0000-00-00 00:00:00',
modified datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (id),
UNIQUE KEY userid (userid)
) TYPE=MyISAM COMMENT='ProFTPd user table';
Сохраняем файл, выходим из редактора и выполняем вот такую команду:
# mysql -u root -p proftpddb < proftpd-mysql.sql
После этого снова заходим в консоль мускула
# mysql -u root -p proftpddb
И выполняем следующие запросы:
mysql> INSERT INTO `ftpuser` (`id`, `userid`, `passwd`, `uid`, `gid`, `homedir`, `shell`, `count`, `accessed`, `modified`) VALUES (1, 'firstuser', PASSWORD('userpassword'), 3001, 3001, '/var/proftp/firstuser', '/sbin/nologin', 0, '', '');
mysql> INSERT INTO `ftpgroup` (`groupname`, `gid`, `members`) VALUES ('ftpgroup', 3001, 'ftpuser');для того, чтобы пользователи могли не только читать свои файлы, но еще и записывать их туда, а, при необходимости. еще и удалять, нужно выполнить сделующие команды:
# mkdir /var/proftp
# chown ftpuser:ftpgroup /var/proftp
# chmod 775 /var/proftp