4.9以降で、正式にchrootがサポートされた。sshd_configにChrootDirectoryの設定が追加されている。今までのopenssh-chrootパッチ適用とは設定が少し違うぽい。
特にsftpのみの場合、非常に簡単になった
Subsystem sftp internal-sftp Match user hoge ChrootDirectory /chroot1
とするだけ。
shellでのloginにchrootを適用する場合は、今までと同様chroot以下にbin、lib、dev以下のファイルなどが必要。
ref.
- http://d.hatena.ne.jp/rougeref/20080414
- http://www.togakushi.zyns.com/modules/xpwiki/?installmemo%2Fopenssh%2F4.9p1#h3a325d2
ChrootDirectory
ChrootDirectory /path/to/chroot
ここで指定するディレクトリはroot権限でのみ書き込みできる場所でないとダメ。
特定ユーザ/グループにのみchroot設定する
Matchキーワードを使う。
Match user hoge ChrootDirectory /chroot1 Match group fuga ChrootDirectory /chroot2
/etc/passwdの設定
/etc/passwdにはchroot環境下でのユーザのホームディレクトリを指定する。
ex:
ChrootDirectory /chroot
hogeのhome directory /chroot/home/hoge
このとき、/etc/passwdには/home/hogeをホームディレクトリとしておく。/chroot/home/hogeではないの。
hoge:x:1000:1000::/home/hoge:/bin/bash
sftpの設定
上で書いたようにinternal-sftpを使う
Subsystem sftp internal