vsftpd-local_root = / var / www / sites / $ USERが解釈されませんか?


11

FTPサーバーに接続しようとすると、 「500 OOPS:ディレクトリを変更できません:/ home / $ USER / public_html」と表示されます。

  • $ USERをエコーすると、適切なユーザー名が得られます
  • $ USERが私の/etc/vsftpd.conf内で解釈されていないようです
  • 「local_root = / var / www / sites / $ USER」を削除すると、すべてがスムーズに機能します。

vsftpd 2.2.2とUbuntu 10.04.1 LTSリリース:10.04コード名:lucidを実行しています

回答:


21

使用する必要があるのは、user_config_dirとlocal_rootの組み合わせです。メインの設定ファイル/etc/vsftpd/vsftp.confには、次のようなエントリがあります。

chroot_local_user=YES
user_config_dir=/etc/vsftpd/users

そのディレクトリ(/ etc / vsftpd / users)内に、ユーザーと同じ名前(この場合は$ USER)の構成ファイルがあり、そのファイル内に次のファイルがあります。

local_root=/var/www/sites/USER
dirlist_enable=YES
download_enable=YES
write_enable=YES

...ここで、USERは実際の名前です(文字通りUSERや$ USERではありません)。


2
ここでの重要なパスはuseですuser_sub_token=$USER。これにより、$ USER変数が使用可能な値を取得するため、元のポスター構成が機能します。他の回答で私のコメントを参照してください。
user3450548

5

設定する必要がありますuser_sub_token

user_sub_token=$USER
local_root=/var/www/sites/$USER

2
これが実際の実際の解決策であるのは楽しいです。元のポスターがしたかったことは実際に適用できました。提案されている他の例でも使用できますが、必ずしも有効にする必要はありませんuser_config_dir。あなたの好みに応じて、あなたはそれを行うことができたりできなかったりしました。ここでの重要なパスはですuser_sub_token=$USER。これは$USER、conf内で使用可能なものを変数に入力するためです。user_sub_tokenmanページの説明を参照してください:「このオプションは、local_rootにuser_sub_tokenが含まれている場合にも有効です。」
user3450548
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.