给 /A/B/C的C目录做chroot,要对C能读写,所以C目录不能做ROOT目录,对B做chroot。
设置C目录所有者为sftp 账户a,组也改为sftp组(这里a和sftp组都是之前建立好的sftp账号,a不允许直接登录)。因为要对C目录下有读写权限所以
chmod -R 755 /A/B/C
chown -R a:xxx /A/B/C(这里所属组可以保持不变)
chown a:sftp /A/B/C
编辑/etc/ssh/sshd_config,具体如下:
注释 Subsystem sftp /usr/lib/openssh/sftp-server
添加 Subsystem sftp internal-sftp
在配置文件末尾加入针对登录用户或sftp组的访问限制
a登录后,chroot到/A/B/
Match user user1
ChrootDirectory /A/B/
ChrootDirectory设置的目录及其所有的上级目录属主必须是root且只有属主能拥有写权限,也就是说权限最大设置只能是755。否则会报“fatal: bad ownership or modes for chroot directory”这样的错误。
用户目录下的链接文件失去作用。