Pure-FTPd +仮想ユーザーを使用してFTPサーバーをインストールおよび構成する方法

私は革新と新しいことを学ぶのが好きな人の一人です。少し前にFTPサーバーをインストールして構成する必要があり、いつもとは違う方法でそれを行うことにしました。

この場合、私は仮想ユーザーを備えたFTPサービスを選択しました。ユーザーは暗号化されたファイルに保存されます(ユーザー名、パスワード、設定など)。すべてPure FTPdで行います。

ここでその方法を説明します…さて、始めましょう 

まず、このチュートリアルのコマンドがDebianのようなディストリビューションまたはそれらに基づくディストリビューションを対象としていることを指定しますが、サーバーで別のディストリビューションを使用する場合は、同じパッケージをインストールし、以下に設定された設定を使用する必要があります。変更する必要があるのはインストールコマンドです。

各行の前に「sudo」を追加したい場合は、読み取るすべてのコマンドがrootとして実行されます。

1.まず、Pure FTPdをインストールする必要があります。

apt-get install pure-ftpd

次のように出力が終了します。

インストール-pure-ftpd

2.サービスは既に有効化されていますが、適切に設定されていなければ役に立ちません。ここでは、長いがほぼ標準的な設定ファイルがあるとします。このファイルには、匿名ユーザーを許可しないなどの一般的な設定が含まれています。

cd /etc/pure-ftpd/ && wget http://ftp.desdelinux.net/pure-ftpd.conf

3.では、FTPフォルダが/var/www/ftp/で、/var/www/ftp/sysadmin/フォルダに情報をアップロードできるユーザーを作成したいとしましょう。ターミナルに以下のコマンドを入力してください。

pure-pw useradd sysadmin -u 2001 -g 2001 -d /var/www/ftp/sysadmin/

これは次のことを意味します。

pure-pw:Pure-FTPdユーザーを操作するために使用されるコマンド
useradd:ユーザーを追加することを示します
sysadmin:作成したいユーザー
-u 2001:そのユーザーのユーザーID
-g 2001:そのユーザーのGroupID
-d / var / www / ftp / sysadmin /:そのユーザーのホームとなるフォルダー、つまりユーザーがアップロードするフォルダー

前の行を入力すると、そのユーザーのパスワードを尋ねられます。

以前に/ var / www / ftp /内にsysadminフォルダーを作成しておく必要があります。

4.次に、ユーザーデータベースファイルを更新する必要があります。これを行うには、/etc/pure-ftpd/フォルダに移動し(cd /etc/pure-ftpd)、ターミナルで次のコマンドを入力します。

pure-pw mkdb

5.次に、Pure-FTPdを起動する必要がありますが、仮想ユーザーファイルを使用することを指定します。まず、サービスを停止しましょう。

/etc/init.d/pure-ftpd stop

次に、デフォルトで正常に起動しないことを確認します。

chmod -x /etc/init.d/pure-ftpd

そして今、私たちは自分たちの方法でサービスを開始します:

/usr/sbin/pure-ftpd -j -lpuredb:/etc/pure-ftpd/pureftpd.pdb

6. FileZillaのようなアプリケーションを使ってみると、作成したユーザーで問題なく接続できることがわかります。しかし、ファイルのコピーやディレクトリの作成はできません。これは、/var/www/ftp/sysadmin/(この例ではユーザーのホームディレクトリ)フォルダに適切なアクセス権限がないためです。この問題は、以下の手順で解決できます。

chown -R 2001:2001 /var/www/ftp/sysadmin/

Uid と Gid 2001 は作成したユーザーのものであることを思い出してください。前のステップ 3 のコマンドで作成しました 

7.サービスを停止するには、同じ端末で[Ctrl]+[C]を押すか、別の端末で以下の操作を行います。

killall pure-ftpd

ここで、サーバーの起動時にサービスがシステムで自動的に開始されることを示します。このために、/ etc / rc.localファイルを変更し、「exit 0」という最後の行の前に、FTPサービスを開始するコマンドを入力します。

/usr/sbin/pure-ftpd -j -lpuredb:/etc/pure-ftpd/pureftpd.pdb

つまり、次のようになります。

rc-local-pure-ftpd

nano、vi、またはお好みのエディターでファイルを編集できます。または、必要に応じて、このコマンドをコピーして貼り付けると、作業が簡単になります。

perl -pi -e "s[exit 0][/usr/sbin/pure-ftpd -j -lpuredb:/etc/pure-ftpd/pureftpd.pdb]g" /etc/rc.local && echo "exit 0" >> /etc/rc.local

…はい、はい…「促進」と読んでいるとおり、これは広範なコマンドですが、単にテキストを Perl と無害なエコーに置き換えているだけです 

8.これが完了したら、サーバーを再起動してください。すると、pure-ftpdサービスが起動して実行準備が整っていることが確認できます。

ユーザーを削除する方法は?

前述したように、ユーザーを操作するにはpure-pwコマンドが必要です。ユーザー(例えばsysadmin)を削除するには、以下のコマンドを使用します。

cd /etc/pure-ftpd/
pure-pw userdel sysadmin
pure-pw mkdb

ユーザーに変更を加えるときはいつでも、ユーザーの仮想データベースファイルを再生成する必要があることに注意してください。このファイルは/ etc / pure-ftpd /にあり、pure-pwmkdbで生成/更新されます。

とにかく、追加するものはそれほど多くないと思います。pure-pwのヘルプを読んでください。ここで示したものよりもはるかに多くのことが可能になります(これは短く、ほぼ基本的なチュートリアルです)。

1 ~ 2 年前、私はすべてを OpenLDAP または MySQL にリンクする人の一人でしたが、時間が経つにつれて、サーバーであるデータベースへの非常に多くの接続によって、多くの場合、余裕のない消費が発生することに気づきました。 Pure-FTPd .pdb の場合のように、アプリケーション独自のファイルでデータベースを使用するなどの実行可能な代替手段 ○

疑問や質問があれば、できる限りお手伝いします。

挨拶と…ハッピーハッキング!


Googleで優先ソースとして追加する