くっそーーー。
「SFTP専用ユーザ(つまり)かつアクセスできるディレクトリをホームディレクト以下に限定」ではまったので記録。
設定に関しては以下の記事が簡潔にまとまっていてわかりやすかったです。関連コマンドのリンクも掲載されています。感謝
アクセスをホームディレクトリのみに制限したsftpユーザーの設定 - Qiita
環境
- CentOS Linux release 7.8.2003 (Core)
- OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
エラー発生
SFTP接続しようとすると、以下のエラーが発生します。(/var/log/secure
で確認)
fatal: bad ownership or modes for chroot directory component "/" [postauth]
ちなみに設定ファイルのChrooDiectory
行を消せばログインできるので、基本的な設定はOKで、原因がChrootDirectory
絡みであることは確実。
Match Group sftponly
ChrootDirectory /home/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
原因と対処
以下が人気のQ&Aです。
ssh - bad ownership or modes for chroot directory component - Server Fault
https://serverfault.com/questions/584986/bad-ownership-or-modes-for-chroot-directory-component
よくあるエラーみたいですが、ホームディレクトのオーナはroot
だし、パーミッションは755(rootだけ書込み可能)だし、デーモンの再起動もしてるけど解決しない。
しょうがなく他のサーバで同じことを試してみたらあっさりと成功。
とはいえ本当に設置したいサーバで設定したいなぁと思ってモヤモヤしていたら、ふと思いつきました。
「あ、ホームディレクトリでなくてルートディレクトリ("/")のパーミションか?」と
ビンゴでした。
なぜか最上位("/")ディレクトリが775になっていました。 ← なぜ775になっていたかは別途調査。汗
グループの書き込み権限を削除(755に)したところあっさりと解決しました。
くっそー。