Linux中的chroot命令用法和示例

2021年3月29日17:57:27 发表评论 1,149 次浏览

chroot命令在Linux/Unix系统下用于修改根目录。像系统一样,Linux/Unix中的每个进程/命令都有一个当前工作目录,称为根目录。它更改当前运行的进程及其子进程的根目录。

在这样一个修改过的环境中运行的进程/命令不能访问根目录之外的文件。这种修改后的环境被称为"chroot jail"或"jailed directory"。允许某些root用户和特权进程使用chroot命令。

Linux中的chroot命令和示例1

" chroot"命令可能非常有用:

  • 创建一个测试环境。
  • 恢复系统或密码。
  • 重新安装引导程序。

语法如下:

chroot /path/to/new/root command

OR

chroot /path/to/new/root /path/to/server

OR

chroot [options] /path/to/new/root /path/to/server

选项:

  • –userspec = USER:GROUP:此选项描述了要使用的用户和组。名称或数字ID均可用于指定用户和组。
  • –groups = G_LIST:将补充组描述为g1, g2, .., gN。
  • -help :显示帮助消息, 然后退出。
  • –version:提供版本信息, 然后退出。

例子:

第1步:我们将仅使用bash和基本命令创建一个 mini-jail 。让我们在" home"目录中创建一个" jail"目录, 这将是我们的新根目录。 $ mkdir $ HOME/jail

步骤2:在" $ HOME/jail"中创建目录:$ mkdir -p $ HOME/jail/{bin, lib64} $ cd $ HOME/jail

步骤3:使用cp命令将/bin/bash和/bin/ls复制到$ HOME/jail/bin /位置:$ cp -v/bin/{bash, ls} $ HOME/jail/bin

步骤4:使用ldd命令打印共享库:

$ ldd /bin/bash
Linux中的chroot命令和示例2

步骤5:使用cp命令将所需的库复制到$ HOME/jail/lib64 /位置:cp -v library/displayed/by/above/command $ HOME/jail/lib64同样, 将ls命令的库复制到$ HOME/jail/lib64位置。

步骤6:最后, 将chroot放入你的mini-jail中:$ sudo chroot $ HOME/jail/bin/bash现在, 用户将$ HOME/jail目录作为其根目录。这极大地提高了安全性。


木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: