インストールと設定
CentOSのインストールとパッケージのインストールは簡単だ。インストールが完了したらルートユーザとしてログインして、コマンドラインで「rpm -ivh pam_mysql-0.5-1.i586.rpm」を実行してpam-mysqlをインストールする。MySQL-Adminを利用するためには、圧縮されたアーカイブを展開して、デフォルトのウェブページ置き場である/var/www/htmlにすべてのコンテンツをコピーすれば良い。なおMySQL-AdminはPHPプログラムなので、実行/解釈するためにはApacheとPHPを利用できるようにしておく必要がある。
Apache、vsftpd、MySQLの各サービスは、仮想FTPサーバの設定を始める前に起動しておく必要がある。各サービスの起動と、毎日確実に起動するための設定には、ルートとして以下のコマンドを実行する。
# service (httpd | vsftpd | mysqld) start # chkconfig --levels 2345 (httpd | vsftpd | mysqld) on
それでは「mysql」コマンドをオプションなしで実行してMySQLサーバにアクセスしよう。なおデフォルトではルートユーザのパスワードはない。次に以下のようなSQL文を実行して、データベースとテーブルを作成する。
mysql> create database vsftpd; mysql> use vsftpd; mysql> create table users -> id int AUTO_INCREMENT NOT NULL, -> name char(128) binary NOT NULL, -> passwd char(128) binary NOT NULL, -> primary key(id) -> ); mysql> create table logs (msg varchar(255), -> user char(128), -> pid int, -> host char(128), -> rhost char(128), -> logtime timestamp -> );
以上でFTPサーバ用のvsftpdデータベースを作成することができた。このデータベースには、FTPユーザを保存するための「users」テーブルとログイン関連の情報を記録するための「logs」テーブルという2つのテーブルがある。それでは次にusersテーブルにユーザを挿入しよう。以下に例を示す。
mysql>insert into users (name,passwd) values('tom@cn.oracle.com',password('foo'));
mysql> insert into users (name,passwd) values('jerry@us.sun.com',password('bar'));
mysql> select * from users;
+----+-------+-------------------------------------------+
| id | name | passwd |
+----+-------+-------------------------------------------+
| 1 | tom@cn.oracle.com | *F3A2A51A9B0F2BE2468926B4132313728C250DBF |
| 2 | jerry@us.sun.com | *E8D46CE25265E545D225A8A6F1BAF642FEBEE5CB |
+----+-------+-------------------------------------------+
上記から分かるように、fooという暗号化パスワードを持つtom@cn.oracle.comと、barという暗号化パスワードを持つjerry@us.sun.comという2人のユーザをusersテーブルに挿入した。デフォルトではルートユーザのパスワードはないのだが、パスワードを持たないままのデータベースは脆弱なので、パスワードを作成する必要がある。以下のようなコマンドを実行すればパスワードを設定することができる。
mysql>grant all on *.* to root@localhost Identified by "password";
