我有一个关于监狱的问题,稍后解释:
- 被监禁的用户:
foo
- 监狱目录:
/mnt/foo-jail
- foo的主目录:
/mnt/foo-jail/foo-home
一切都还好。监狱已启动,用户连接正确。
- 问题是:"foo"对他的 Jail 目录没有写权限,但他对他的主目录有写权限。当他连接到我的服务器时,他被重定向到/mnt/foo-jail(他的监狱),而不是在他的家(/mnt/foo-jail/foo-home)中,在那里他可以写作;
如何解决此问题?他不能使CHDIR在文件夹之间移动,但必须将他重定向到他自己的主目录。
非常感谢您的帮助!!
编辑:已解决
我将编写 ssh 配置文件sshd_config有趣的部分,希望它对某人有用。
Match user foo
ChrootDirectory /mnt/foo-jail/
ForceCommand internal-sftp
AllowTCPForwarding no
AuthorizedKeysFile /mnt/foo-jail/%h/.ssh/authorized_keys
X11Forwarding no
在文件/etc/passwd 中,foo 如下所示:
foo:x:1001:1001:Foo User,,,:/foo-home:/bin/bash
注意 home,它是 /foo-home 而不是/foo-home/,否则 ssh 无法截获密钥的正确路径。
尝试添加
ChrootDirectory %h
在/etc/ssh/sshd_config
Match Group
部分中。 %h
将替换为连接用户的主目录。
ChrootDirectory/upload/%u
ForceCommand internal-sftp -d data
这会将 sftp 放在/upload/UserXX/data 目录中。 数据目录由用户XX拥有并可读取/写入