このマニュアルで試してください。たぶんあなたのために働くでしょう。
どうやってするの
vsftpdとPAMライブラリをインストールする
編集/etc/vsftpd.conf
して/etc/pam.d/vsftpd
カスタムディレクトリ(/ var / www /など)を使用してユーザーアカウントを作成します。
正しいとセットのディレクトリchmod
とchown
サーバーへのフルアクセスを持つ管理ユーザーを作成します。
- インストール
vsftpd
(Very Secure FTP Deamon)およびlibpam-pwdfile
仮想ユーザーの作成
FTPユーザーを作成したかったのですが、ローカルUNIXユーザーを追加したくありませんでした(シェルアクセスやホームディレクトリなどはありません)。PAM(Pluggable Authentication Modules)は、仮想ユーザーの作成に役立ちます。
sudo apt-get install vsftpd libpam-pwdfile
- 編集
vsftpd.conf
最初に、元のファイルをバックアップする必要があります
sudo mv /etc/vsftpd.conf /etc/vsftpd.conf.bak
次に、新しいものを作成します
sudo vim /etc/vsftpd.conf
次の行をコピーして貼り付けます。ファイルには次の行のみが含まれている必要があります。
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
nopriv_user=vsftpd
virtual_use_local_privs=YES
guest_enable=YES
user_sub_token=$USER
local_root=/var/www/$USER
chroot_local_user=YES
hide_ids=YES
guest_username=vsftpd
- 仮想ユーザーを登録する
使用するユーザーを登録するには、サーバーで作業してhtpasswd
いると仮定しapache2
ます。vsftpd
フォルダーを作成し、そこに構成ファイルを配置します。
sudo mkdir /etc/vsftpd
それから
sudo htpasswd -cd /etc/vsftpd/ftpd.passwd user1
-cは、ファイルがまだ存在しない場合にファイルを作成することを意味します-dはMD5を強制します。ubuntu12.04で必要です。常に使用する
コマンドはパスワードの入力を求めます。
後で新しいユーザーを追加する場合:
sudo htpasswd -d /etc/vsftpd/ftpd.passwd user2
- PAMを構成する
/etc/pam.d/vsftpd
繰り返しますが、元のファイルをバックアップする必要があります
sudo mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
新しいものを作成します
sudo vim /etc/pam.d/vsftpd
これらの2行をコピーして貼り付けます(これが唯一のコンテンツです)。私はこれらの2行のみを主張し、オリジナルを維持するのに多くの時間を無駄にし、これらを追加しました。
auth required pam_pwdfile.so pwdfile /etc/vsftpd/ftpd.passwd
account required pam_permit.so
- シェルアクセスなしでローカルユーザーを作成する
sudo useradd --home /home/vsftpd --gid nogroup -m --shell /bin/false vsftpd
idコマンド:id vsftpdで作成されたことを確認できます。check_shellパラメーターがあるため、ユーザーを/ bin / falseシェルで定義します(使用しない場合でも)。エンドユーザーがFTPサーバーに接続すると、エンドユーザーは権利と所有権に使用されます。
chmod
およびchown
。
- 再起動
vsftpd
一般的な方法は、すべてのデーモンのようにinit.dを使用することです
sudo /etc/init.d/vsftpd restart
sudo service vsftpd restart
- ディレクトリを作成する
構成に従って、すべてのユーザーはこのフォルダーに配置されます:/ var / www / user1。
特定の権限でそれらを作成する必要があります:ルートフォルダーは書き込み可能ではありません!
/ [root = /var/www/user1] => 555
www [ /var/www/user1/www ] => 755
docs [ /var/www/user1/docs ] => 755
注:ユーザーは、ルートディレクトリにファイルまたはフォルダーを作成できません。
ではvsftpd.conf
、私たちは持っているchroot_local_user=YES
ユーザーが自分のフォルダの何も外を見ることができないようにします。彼にとって、サーバーは次のようになります。
したがって、次のコマンドを実行するだけです。
mkdir /var/www/user1`
chmod -w /var/www/user1
mkdir www/user1/www
chmod -R 755 /var/www/user1/www
chown -R vsftpd:nogroup /var/www/user1
/var/www/user1
フォルダが存在している必要があり、または接続が失敗します。
今、あなたはあなたのFTPで接続しようとすることができます
- サーバー全体にアクセスするための管理ユーザーを作成します
管理ユーザーを作成するには、新しいユーザーをに登録する必要がありますhtpasswd
。
その前に/etc/ftpusers
、ftpでの接続を許可されていない特定のユーザーを定義するファイルをチェックインすることをお勧めします。仮想ユーザーではなくローカルユーザー専用であると思いますが、念のためこのファイルに含まれる名前を選択しないでください。
sudo htpasswd -d /etc/vsftpd/ftpd.passwd theadmin
次に、新しい行を追加する必要があります /etc/vsftpd.conf
chroot_list_enable=YES
これは、ユーザーが/ etc /内のユーザーを除き、フォルダーに(jailとして)配置されることを意味します
vsftpd.chroot_list
このファイルを作成してユーザーを追加しましょう。ファイルは「theadmin」を含む単純な行です。1行に1人のユーザーを追加します。つまり、/var/www/theadmin
フォルダを作成する必要はなく、ユーザーはログインしてから開始し/home/vsftpd
ます。
サーバーを再起動すると完了です!