sftp 中 ChrootDirectory 设定导致 Connection reset 问题

ChrootDirectory 设定不当,会导致sftp链接时直接抛出 Connection reset 错误。

ChrootDirectory 指定的目录以及其所有父目录,拥有者都必须是root。其所有权限都要小于等于755。任意一个大于755都会导致Connection reset问题。

额外多余提醒:下面的/开头的字符串只是说明目录权限而已,并不是让你在sshd_config里面加上它。

举例:
sftp的目标用户名为 u1

1: 有问题的做法
ChrootDirectory /mnt/asd
/mnt 为 root:root 755
/mnt/asd 为 root:root 755
此时可以正常链接
但是u1不能在/mnt/asd文件夹里创建或删除任何文件

2: 失败做法
ChrootDirectory /mnt/asd
/mnt 为 root:root 755
/mnt/asd 为 root:root 777
此时可以抛出错误 Connection reset
因为 asd 权限高于 755

3: 失败做法
ChrootDirectory /mnt/asd
/mnt 为 root:root 755
/mnt/asd 为 u1:u1 755
此时可以抛出错误 Connection reset
因为 asd 拥有者不是root

4: 失败做法
ChrootDirectory /mnt/asd
/mnt 为 u1:u1 755
/mnt/asd 为 root:root 755
此时可以抛出错误 Connection reset
因为 mnt 拥有者不是root

5: 一个正确做法
创建一个文件夹 /mnt/asd/ddd

ChrootDirectory /mnt/asd
/mnt 为 root:root 755
/mnt/asd 为 root:root 755
/mnt/asd/ddd 为 u1:u1 755
此时可以正常链接,并且可以在ddd目录内增加或删除文件,但无法删除ddd目录

你可能感兴趣的:(Linux,sftp)