Linux(rasbian)でftpサーバーとしてvsftpdを実行しています。rootユーザーとしてマシンにログインしています。
/ var / wwwのみを使用するようにロックしたいのですが、それを実現するためにvsftpd confを構成するにはどうすればよいですか?
承認された回答:
方法1:ユーザーのホームディレクトリを変更する
次の行が存在することを確認してください
chroot_local_user=YES
ユーザーのホームディレクトリを/var/www/
に設定します 、既存のユーザー用に変更する場合は、次を使用できます:
usermod --home /var/www/ username
次に、/var/www/
に必要な権限を設定します
方法2:user_sub_token
を使用する
ユーザーのホームディレクトリを変更したくない場合は、次を使用できます。
chroot_local_user=YES
local_root=/ftphome/$USER
user_sub_token=$USER
user_sub_token
について :
テンプレートに基づいて、仮想ユーザーごとにホームディレクトリを自動的に生成します。
たとえば、guest_usernameで指定した実際のユーザーのホームディレクトリが
/ ftphome / $ USERで、user_sub_tokenが$に設定されている場合USERの場合、仮想ユーザーtestが
ログインすると、ディレクトリ/ ftphome / testに移動します(通常はchroot()されます)。
このオプションは、local_rootにuser_sub_tokenが含まれている場合にも有効になります。
ディレクトリを作成して権限を設定します:
mkdir -p /ftphome/{test,user1,user2}
chmod 770 -R /ftphome
chown -R ftp. /ftphome
usermod -G ftp test
vsftpd
を再起動したら セットアップをテストします。
成功出力の例:
[[email protected] tmp]# ftp localhost
Connected to mail.linuxian.local.
220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (localhost:root): test
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> mput vhosts
mput vhosts?
227 Entering Passive Mode (127,0,0,1,146,41)
150 Ok to send data.
226 File receive OK.
24 bytes sent in 3.3e-05 seconds (7.1e+02 Kbytes/s)
ftp> ls -rlt
227 Entering Passive Mode (127,0,0,1,97,90)
150 Here comes the directory listing.
-rw-r--r-- 1 787 787 24 Oct 11 19:57 vhosts
226 Directory send OK.
ftp> 221 Goodbye.