WinSCPなどのSFTPクライアントで接続する場合にユーザを他ディレクトリに移動してほしく無い(chrootしたい)場合に使う方法です。
sftp-***というユーザのホームディレクトリから出したくない場合、/etc/ssh/sshd_config に以下を追加します。
Match User sftp-* ChrootDirectory ~ ForceCommand internal-sftp
#Subsystem sftp /usr/libexec/openssh/sftp-server Subsystem sftp internal-sftp
という記述も必要であるとしているサイトもありますが、これは不要なようです。
adduser -m sftp-user
こういった指定方法でユーザを作ると規定のホームディレクトリが/home以下に作られますが、これだとログインに失敗しますので別に用意します。
mkdir -m 755 /var/www/html/upload adduser -d /var/www/html/upload sftp-user
または後から
mkdir -m 755 /var/www/html/upload usermod -d /var/www/html/upload sftp-user
chroot先のディレクトリはroot所有にします。またパーミッションは755でないと /var/log/secureに
fatal: bad ownership or modes for chroot directory というエラーが出て接続失敗します。
コメント