web-dev-qa-db-ja.com

新しいvsftpdユーザーを作成し、ホーム/ログインディレクトリにロック(指定)します

VsftpがインストールされているCentOS linuxサーバー上のさまざまなディレクトリへの一時的かつ制限されたアクセスを定期的に与える必要があります。

useradd [user_name]を使用してユーザーを作成し、passwd [password]を使用してパスワードを指定しました。

/var/ftpにディレクトリを作成し、アクセスを制限したいディレクトリにバインドします。

このユーザーがFTPにログインするときに、このディレクトリにのみアクセスできるようにするために、特に何をする必要がありますか?

33
zigojacko

ステップバイステップのウォークスルーの後の他の人のための私の質問を解決した完全な答え...

これはガイドとして を使用してvsftpdをインストールします。

  • useradd [user_name]でユーザーを作成します。
  • passwd [user_name]を使用してユーザーのパスワードを作成します。 (パスワードを指定するように求められます)。
  • /var/ftpにFTPディレクトリを作成し、mount --bind /var/www/vhosts/domain.com/ /var/ftp/custom_name/を使用してこのユーザーに指定する「ホーム」ディレクトリにバインドします。
  • ユーザーのホームディレクトリをusermod -d /var/ftp/custom_name/ user_nameで変更します

    /etc/vsftpd/vsftpd.confで、次のすべてが設定されていることを確認します:-

    • chroot_local_user = YES
    • chroot_list_enable = YES
    • chroot_list_file =/etc/vsftpd.chroot_list

vsftpd.chroot_listファイルにユーザーをリストするのは、サーバー上のどこにでもフルアクセスできるようにする場合のみです。このファイルにリストしないことは、すべてのvsftpdユーザーを指定されたホームディレクトリに制限することを意味します。

つまり、(参考):-

  1. つまり、デフォルトでは、ファイル内のユーザーを除くすべてのユーザーがchrootされます...
    • chroot_local_user = YES
    • chroot_list_enable = YES
  2. デフォルトでは、ファイル内のユーザーのみがchrootされます...
    • chroot_local_user = NO
    • chroot_list_enable = YES
48
zigojacko

私にとって、それは上記の後でもうまくいきませんでした。すでにディレクトリに設定されているlocal_rootがあり、私が何をしても、ユーザーのディレクトリは投獄されていません。最後に変更された後にのみ機能します

chroot_local_user = YES

そして以下の手順

  1. vi /etc/vsftpd.conf
  2. 行 'user_config_dir =/etc/vsftpd_user_conf'(引用符なし)を追加します
  3. mkdir/etc/vsftpd_user_conf;
  4. cd/etc/vsftpd_user_conf
  5. vi user_name;
  6. 「local_root =/srv/ftp/user_name」という行を入力します

他の誰かが同じ問題を抱えていたら、ちょうど私の2セント。

10
gnaanaa