chroot ディレクトリ "/var/www" の所有権またはモードが不正です

chroot ディレクトリ "/var/www" の所有権またはモードが不正です

auth.logSFTP を使用してサイトに接続しようとすると、次のエラーが発生します。

致命的: chroot ディレクトリ "/var/www" の所有権またはモードが不正です

ls -ldこのディレクトリには次のように表示されます:

drwxrwxr-x 4 ルート sftponly 4096 8月12日 04:05 /var/www/

ご覧のとおり、グループに完全な権限を与えていますsftponly。SFTP に接続しているユーザーは、グループmysftpuserの一部ですsftponly

次のようにすると接続はできるが、ファイルやフォルダの名前変更、編集、削除、上書きはできない。www

sudo chmod 755 /var/www/

これが私のsshd_config設定です

一致グループ sftponly
ChrootDirectory /var/www
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

つまり、sudo chmod 755 /var/www/接続は許可されますが、読み取り専用モードでのみ許可されます。sudo chmod 775 /var/www/接続すら許可されません。

この問題を解決するにはどうすればよいですか?

答え1

必要なコマンドは次のとおりです。

usermod -d /var/www/ sftponly
usermod -s /sbin/nologin sftponly
usermod -s /bin/false sftponly

任意のユーザーに任意のフォルダーへの権限を与える最良の方法は ACL です。

setfacl -Rm "u:sftponly:rwx" /var/www/
setfacl -Rdm "u:sftponly:rwx" /var/www/

答え2

SFTP の権限が緩すぎるようです。ユーザー用のフォルダーを作成し、0700 権限またはそれよりもさらに制限された権限でアクセスできるようにする必要があります。

詳細についてはこの質問の回答を参照してください サーバー障害に関する質問

関連情報