レポ
クラウドで
伸びる人沈む人

連絡特定商取引将来設計運営方針&メルマガSEの彼女は?
成功レポート集 Fedora9インストール! EclipseでJava Oracleバックアップのアーキテクチャ ゼロからHPでCGI 便利ネット知識
無料レポ&講習 IT業界の実態 linux処方箋 Java処方箋 Oracle処方箋 Perl処方箋
クライアントPCから、LINUXサーバー(Fedora9)にFTPで接続する

<概要>


SSH接続の次は、FTP接続にいきます。


FTPで接続するためには、FTPサーバーをインストールします。
FTPサーバーは、クライアントPCからサーバーにファイルを送信するためのサーバーです。


FTPで接続できるようになれば、
クライアントPCからファイルをLinuxサーバーに送受信できます。

<yumコマンドを使ってFedora9にvsftpdをインストールする>

vsftpdというftpのソフトがあるので、それをFedora9にインストールしましょう。
yumコマンドを使えば、簡単です。


# yum -y install vsftpd

-yは、何か問い合わせがあっても、全部(yes)で答えてしまうということです。
これで問題ないです。

<sshからvsftpdインストールの実行例>

# yum -y install vsftpd

・・・・・中略

Installing: vsftpd ######################### [1/1]

Installed: vsftpd.i386 0:2.0.6-3.fc9
Complete!

<ftpサーバーを起動し、ftp接続ユーザーを作成する>

ftpサーバーをたちあげましょう。

デフォルトの状態では、設定を特に変更する必要はありません。ftpサーバーを起動するだけです。

次に、ftpに作成するユーザーを作成します。
クライアントからftp接続する時はrootでは接続できません。

<ftpサーバー起動例>


[root@host ~]# /etc/rc.d/init.d/vsftpd start←ftpサーバーのスタート
vsftpd 用の vsftpd を起動中: [ OK ] ←既に起動していると、OKはでないかもしれません

<ユーザー作成実行例>


[root@host ~]# useradd webuser←webuserrという新しいユーザーを作成
[root@host ~]# passwd webuser←webuserのパスワードを設定する
Changing password for user webusr
New UNIX password:←パスワードを入力(パスワードは6文字以上にしましょう)、してリターン
Retype new UNIX password:←パスワードを再入力して、リターン)
passwd: 全ての認証トークンが正しく更新できました。←成功

<クライアントPCからFTP接続>


では、アナタのクライアントPCからFFFTPを起動して接続してみましょう。

設定は、↓のような感じになることでしょう。


/home/webuserに接続できましたね。


<ftpサーバーの初期設定。これだけは、やっておこう。>

さて、ftpサーバーに接続できたからといって、安心できません。
じつは、このままでは、使い物にならないのです。最低限の設定をしておきましょう。


何が使い物にならないかって?
まず、perlなどのプログラムをつくって、ftpで送っても実行することができません。


ええ?!と思われるかもしれませんが、
それは、このftpサーバー(vsftp)の初期設定(デフォルト)が、
asciiモードで送信することができないからです。(まじか?ってかんんじでしょう)


また、ftpソフトで所有者の表示が数字になってしまい、なんだかわけがわかりません。
これも解消しなければいけません。


さらに、ftpでファイルを送っても、ファイルの上書き更新時間が日本時間になっていません。
これも不便です。


以上、3点を解消するための設定をここでは行います。
↓ftpサーバー(vsftpd)設定例

設定が終わったら、再起動します。
再起動後、文字化けが出るかも知れませんが無視してください。

<ftpサーバー(vsftpd)設定例>

[root@host ~]# vi /etc/vsftpd/vsftpd.conf
・・中略
ascii_upload_enable=YES←先頭の#を外す
ascii_download_enable=YES←先頭の#を外す
上記の2行で、asciiモードでファイルを上書きできるので、プログラムが実行できるようになる

・・中略 


ファイルの最終行に以下の2行を追加

text_userdb_names=YES←所有者が数字でなくて、ユーザー名で表示される
use_localtime=YES←ファイルの上書き時間が、日本時間になる


[root@host ~]# /etc/rc.d/init.d/vsftpd restart←設定が終わったら、ftpサーバーの再スタート
vsftpd を停止中: [ OK ]
vsftpd 用の vsftpd を起動中: [ OK ]←ここで、文字化けするかもしれませんが今は無視。

<ftpサーバー(vsftpd)のさらに応用。>


気がむいたらどうぞ。


●匿名ユーザーのログイン禁止
anonymous_enable=NO


●ホームディレクトリより、上位に移動させない設定は、以下の2行を有効にします。
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list

そして、chroot_listにユーザーIDを記述すれば、そのユーザーは上位ディレクトリに移動できません。
ここ注意してください。


しかし、ここに記述されたユーザーIDでFTP接続すると、
またまた、所有者が数字になってしまいます。しかも、時間もなんだかおかしい。


これは、上位ディレクトリに接続できない設定にしたので、
/etc にあるパスワードファイルと時間ファイルに接続できなくなっておかしくなったのです。


以下の手順で対処します。

<上位ディレクトリ禁止のユーザ(webuser)ーが、
日本時間でユーザー名がFTPで表示されるようにする設定例>


# mkdir /home/webuser/etc ←webuserにetc ディレクトリを作成
# cp /etc/localtime /home/webuser/etc/ ←ローカルタイムのコピー
# cat /etc/passwd | grep webuser > /home/webuser/etc/passwd ←パスワードファイルからwebuserだけコピー
#chmod 711 /home/webuser/etc/ ←最後に読み書きできないようにしてしまいましょう。

前へ||次へ

慣れてきましたか?慣れたら、
自宅サーバーの注意点を勉強