我有一个被监禁的用户。
sshd_配置:
Subsystem sftp internal-sftp
Match user matt
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
密码:
matt:x:1001:5006:Matt Ryan,,,:/home/matt:/home/matt/bin/bash
这对于 sftp 来说非常完美。用户仅限于他的主文件夹以及那里的任何挂载。
但是,我还想授予此用户 shell 访问权限。当他们尝试登录时,会发生以下情况:
$ ssh [email protected]
Linux devnode 2.6.38-linode31 #1 SMP Mon Mar 21 21:22:33 UTC 2011 i686 GNU/Linux
Ubuntu 10.04.2 LTS
Welcome to Ubuntu!
* Documentation: https://help.ubuntu.com/
Last login: Thu Mar 31 13:04:29 2011 from abc.nyc.res.rr.com
/home/matt/bin/bash: No such file or directory
Connection to server.com closed.
通过 fstab,bin 文件夹被挂载到主目录并存在。
为什么我会收到此错误?我该如何解决?
谢谢您的帮助!
答案1
当你 时chroot
,命名的目录变成/
。 那么 里面的正确 shell 路径chroot
是/bin/bash
,而不是/home/matt/bin/bash
。
您还需要确保 里面有足够的其他东西来chroot
保证系统正常工作。您可以用 来测试它,sudo chroot /home/matt /bin/bash
看看哪些可以工作,哪些不行;至少,您可能需要一个假人/etc
、一个bind
,以及里面的/proc
大部分。/lib
chroot