【CentOS】SFTPにアクセス制限をかけて他のディレクトリを見られないようにする方法
自分だけのサーバを適当にいじくり回していたが、
遂に他の人にも特定のディレクトリをいじくり回してもらうことになった。
もちろん自分の秘密のディレクトリはディレクトリ名すら見られたくないので上階層は移動もできなくしたいし、
ログインしたら他の人は特定のディレクトリ以下だけを見れるようにしたい。
そんなときにやったこと。
前提として、公開鍵の設定は完了しているものとする。
パスワードログイン☓、Rootログインも☓。
1.グループ追加
# groupadd sftp
2.OpenSSHの設定
Match group sftp
ChrootDirectory /var/www/html/hoge
ForceCommand internal-sftp
ついでにSubsystem sftpも同ファイルで設定(これは必要ないって書いてあるブログもあるけど多分必要なことが多いかも)
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
# ↑この書き換えはsshd_configのMatch内で上書き設定してる限りにおいて不要
4.ユーザ追加
# useradd -g sftp sftp_user
5.ディレクトリパーミッション
/var/www/html
→root:root
root:rootじゃないとだめっぽい
/var/www/html/hoge
→755、sftp_user:root
グループはrootじゃないとだめっぽい
/var/www/html/hoge/AAA
ここまで下層にくると develop:apacheとかでも大丈夫ぽい
ここまでやるとターミナルでssh接続できなくなり、
SFTPでは接続したら
/var/www/html/hoge の中身が
/ で表示されるようになった。
参考
接続できるディレクトリを制限して複数のSFTPユーザを作る - Qiita
chrootされたsftp専用ユーザを作るメモ - Qiita