linuxBean14.04(179)vsftpdでFTPサーバーにする

2018-09-02

旧ブログ

t f B! P L
ユーザー名でログインして限定したフォルダのみにファイルをアップロードできるFTPサーバーにします。

前の関連記事:linuxBean14.04(178)SambaでWindowsのファイルサーバーにする


vsftpdのインストール


sudo apt-get install vsftpd

これでインストール完了です。

vsftpd.confの編集


ファイルマネージャで/etcにあるvsftpd.confを右クリック→Leafpad(root)。

変更したのは以下のところです。

設定行の間にスペースは挟んではいけません。

local_enable=YES
chroot_local_user=YES
chroot_list_enable=YES

これらはコメントアウトを外すだけです。

local_enable=YESでlinuxBeanのアカウントでログインできるようになります。

chroot_local_user=YESとchroot_list_enable=YESで、FTPクライアントからアクセスできるフォルダを限定できます。

xferlog_enable=NO

家庭内LANだけで使う予定で、ディスク容量を節約したいのでログの取得はNOにしました。

local_root=public

FTPクライアントからログインしたときのルートディレクトリです。

相対パスで指定するとログインユーザーのホームディレクトリからの相対パスになります。

今回の設定では~/publicフォルダがルートディレクトリになります。

allow_writeable_chroot=YES

これがないとルートディレクトリの書き込み可の状態でのログインを拒否されます(vsftpdの設定で謎のエラーにハマった - TomoProgの技術書)。

(2018.9.23追記

write_enable =YES

FTPでログインしたユーザーが書き込むにはこの行のコメントアウトが必要でした。)

これでvsftpd.confの編集は完了です。

最後に、/etcフォルダにvsftpd.chroot_listという名前の空ファイルを作成しておきます。

ルートディレクトリを限定した設定のときはこのファイルがないとログインできません。

sudo service vsftpd restart

これでvsftpd.confの変更が反映されます。

Windows10のコマンドラインでftpコマンドが使えるのでそこからアクセスできることを確認しました。

(2018.9.13追記

Sambaサーバーと兼ねたFTPサーバーにはマシン名を使ってWindowsのftpコマンドで接続できました。

SambaサーバーがWindowsとやりとりしてマシン名をIPアドレスに変換しているようでpingもマシン名で通りました。

linuxBean14.04のftpコマンドでは、ホスト名でFTPサーバーに接続しようとしてもName or service not knownといわれて接続することはできませんでした。

IPアドレスではいずれの場合でも接続できましたが、IPアドレスを固定にしないと毎回サーバーのIPアドレスを調べる手間が発生します。

ということでクライアントがWindowsだけならSambaサーバーも導入していればIPアドレスを固定しなくてよいようです。

WindowsのコマンドラインでもlinuxBean14.04のTerminalでも日本語は文字化けしていました。)

参考にしたサイト


vsftpdの設定で謎のエラーにハマった - TomoProgの技術書
500 OOPS: vsftpd: refusing to run with writable root inside chroot()への対策。

FTPサーバ vsftpdの設定(vsftpd.conf)
vsftpd.confの解説。すべての設定の解説があるわけではありません。

次の関連記事:linuxBean14.04(180)古いファイルを削除してディスク空き容量を保つPythonスクリプト

ブログ検索 by Blogger

Translate

最近のコメント

Created by Calendar Gadget

QooQ