WPサイト引っ越し(2018/11/20)|Ewig Leere(Lab)の手順で構築したサーバでの話です。
症状
vsftpdサーバを建てて、FTPでファイルアップロードをしようとしたら以下のエラーメッセージが出て接続できませんでした。
500 OOPS: vsftpd: refusing to run with writable root inside chroot()
原因
# chown apache:apache /var/www/htdocs
# usermod -aG wheel,apache SITEUSER
したのに、ディレクトリ権限が755
のままでFTPユーザ(SITEUSER
)でログインしようとしたため。
対処
# chmod 775 /var/www/htdocs
でOKでした(上記の通りapache
グループにユーザを追加しているため)。
以下ルートディレクトリより上の階層に遡れないようにするための設定
と、原因さえ分かってしまえば非常に簡単なことだったのですが、対処法をあれこれ試す中で、「あ、ルートディレクトリから上の階層に遡れないようにするための設定をしておこう」となったのでついでにやってしまいました。
以下その設定内容。
# vi /etc/vsftpd/vsftpd.conf
## 設定ファイルを指定
userlist_file=/etc/vsftpd/user_list
## ユーザごとの設定ファイルを指定
user_config_dir=/etc/vsftpd/user_conf
## 本来の書き込みに関する対処として追記したもの(結果的には効果なし)
seccomp_sandbox=NO
allow_writeable_chroot=YES
設定ファイルに上の内容を追記。
# mkdir /etc/vsftpd/user_conf
# vi /etc/vsftpd/user_conf/SITEUSER
local_root=/var/www/SITE/web/
ユーザごとの設定ファイルのディレクトリを作成、ユーザの名前でファイルを作成し、ルートディレクトリを指定。
これで上の階層に遡れなくなりました。
備考
# vsftpd -v
vsftpd: version 3.0.2
vsftpdのバージョンは3.0.2でした。