Stu*_*ffy 4 linux ssh bash chroot
如果用户登录,他会从 chroot 的 / 开始(在真机上是 /var/jail)。我希望他从他的家庭目录开始。此外,他似乎没有加载任何他的个人资料文件(.bash.rc 等)。我按照本教程创建了 chroot 环境。这是我的 /etc/passwd 的样子:
test:x:1004:1008:,,,:/var/jail/home/test:/bin/bash
Run Code Online (Sandbox Code Playgroud)
这是我的 /var/jail/etc/passwd 文件的样子:
test:x:1004:1008:,,,:/home/test:/bin/bash
Run Code Online (Sandbox Code Playgroud)
我还发现,如果我删除
Match User test
ChrootDirectory /var/jail
AllowTCPForwarding no
X11Forwarding no
Run Code Online (Sandbox Code Playgroud)
从我的 /etc/ssh/sshd_config 中,用户从他正确的主文件夹中开始,并加载了他的 bash 设置。但是,如果我删除该部分,他就可以离开 chroot 环境。我之前问过的这个问题有些相关,因为我认为命令行的错误外观是由未加载的配置文件引起的。那么任何想法如何解决这个问题?
除了一个小细节之外,您的配置是正确的:主目录中/etc/passwd不应包含 chroot 路径部分。将其更改为:
test:x:1004:1008:,,,:/home/test:/bin/bash
Run Code Online (Sandbox Code Playgroud)
重新启动并重sshd试。
来自man sshd_config:
根目录
指定身份验证后 chroot(2) 到的目录的路径名。路径名的所有组成部分都必须是任何其他用户或组不可写的根目录。 在 chroot 之后,sshd(8) 将工作目录更改为用户的主目录。
也就是说,首先sshd执行chroot(在我们的例子中chroot /var/jail),然后sshd将目录更改为用户的 homedir(在我们的例子中cd /home/test- 在 chrooted 环境中cd /var/jail/home/test不起作用)。
如果您使用的是Debian / Ubuntu的(因为你提到的教程是Debian),你可能希望创建一个文件名为/var/jail/etc/debian_chroot的内容是“chroot环境”,这将显示在用户在这样的括号提示:(chroot)test@servername:~$。
(我已经在我的 Ubuntu 12.04 上复制了您的配置,并且/var/jail从/etc/passwd.
| 归档时间: |
|
| 查看次数: |
13875 次 |
| 最近记录: |