CentOS FTP ログインでユーザーをルートフォルダに限定

エンドユーザーからファイルをFTPで受け取ってシステムに取り込む際、エンドユーザーには指定のフォルダ以外を見られたくないときの vsftp の設定。

1. vsftpd ユーザーのホームディレクトリの設定

まずは、ログインユーザーがログインした際のホームディレクトリを指定します。
ユーザー別の config ファイルを作成します。

ここでは、ユーザーを foo 、ユーザーのルートフォルダを /var/ftp_upload とします。フォルダの権限設定などはしてあるものとします。

# mkdir /etc/vsftpd/user_conf
# vi /etc/vsftpd/user_conf/foo
--- 以下の内容を入力します ---
local_root=/var/ftp_upload

以下のように user_config_dir の設定を変えて保存します。

# vi /etc/vsftpd/vsftpd.conf
--- 以下の内容を入力します ---
# User config dir
user_config_dir=/etc/vsftpd/user_conf

2. フォルダの移動させない (chrootさせない)

chroot_local_user が YES の場合、chroot_list は chroot させないユーザーのリストになります。ユーザーがフォルダを移動できないように、chroot_list を有効にして、ユーザーをリストに追加して、chroot_local_user を YES にします。

# vi /etc/vsftpd/vsftpd.conf
--- 以下の内容を入力します ---
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

ユーザー ‘foo’ を /etc/vsftpd/chroot_list に追加します。

# vi /etc/vsftpd/chroot_list
--- 以下の内容を入力します ---
foo

3. vsftpd 再起動

# service vsftpd restart

以上です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です