出于安全需要,我们有时需要把用户访问权限限制在一个目录下。chroot可以帮我们达到这个目的。
首先,我们配置一个sftp的chroot环境:
- Open up
/etc/ssh/sshd_config
-
Subsystem sftp internal-sftp
-
1
2
3
Match User backup-user
ChrootDirectory /home/backup-user
AllowTcpForwarding no
chown root /home/backup-user
chmod go-w /home/backup-user
这是,用sftp登录验证一下是否成功。
然后,我们在backup-user里创建bin目录,把/bin/bash复制过去。运行ldd命令查看bash依赖的库,把依赖的库文件都复制到chroot目录里。然后运行chroot /home/backup-user测试是否成功。
同样地,把rsync及依赖库也复制到chroot里。由于/home/backup-user没有写权限,我们需要创建一个权限为777的writable的目录,让rysnc可以写。
参考:https://www.marcus-povey.co.uk/2015/04/09/cross-server-ssh-rsync-backups-done-more-securely/
评论