我想让客户端访问我的服务器,但我想将这些用户限制在他们的主目录中。我将在我希望他们能够看到的任何文件中进行绑定挂载。
我创建了一个名为的用户bob
并将他添加到一个名为 的新组中sftponly
。他们在/home/bob
. 我已经将他们的 shell 更改/bin/false
为停止 SSH 登录。这是他们的/etc/passwd
线路:
bob:x:1001:1002::/home/bob:/bin/false
Run Code Online (Sandbox Code Playgroud)
我还更改/etc/ssh/sshd_config
了以下内容:
Match Group sftponly
ChrootDirectory /home/%u
ForceCommand internal-sftp
AllowTcpForwarding no
Run Code Online (Sandbox Code Playgroud)
当我尝试以他们的身份登录时,这就是我看到的
$ sftp bob@server
bob@server's password:
Write failed: Broken pipe
Couldn't read packet: Connection reset by peer
Run Code Online (Sandbox Code Playgroud)
如果我注释掉ChrootDirectory
我可以 SFTP的行,但他们可以自由控制服务器。我发现这ChrootDirectory /home
可行,但它仍然让他们可以访问任何主目录。我已经明确尝试过,ChrootDirectory /home/bob
但这也不起作用。
我究竟做错了什么?我怎样才能限制bob
到/home/bob/
?
- - 编辑 - - -
好的,所以我只是看了一下/var/log/auth.log
,看到了这个:
May 9 14:45:48 nj sshd[5074]: pam_unix(sshd:session): session opened …
Run Code Online (Sandbox Code Playgroud)