Amazon Best VPN GoSearch

OnWorks 网站图标

schroot - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行 schroot

这是 schroot 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


schroot - 安全地进入 chroot 环境

概要


施鲁特 [-h| - 帮帮我 | -V|- 版 | -l|- 列表 | -i|- 信息 | --配置 | - 地点 |
--自动会话 | -b|--开始会话 | --恢复会话 | -r|--运行会话 |
-e|--结束会话[-f|- 力量[-n 会话名称|--会话名称=会话名称[-d
目录|--目录=目录[-u 用户|--用户=用户[-p|--保护环境[-s
|--外壳=[-q|- 安静的 | -v|--详细[-c chroot|--chroot=chroot | [- 全部 |
--all-chroots | --所有源chroots | --所有会话[--排除别名]]
[-o|--选项=键=值[--[指挥 [ ARG1 [ ARG2 [ 精氨酸]]]]

商品描述


施鲁特 允许用户在 chroot 环境中运行命令或登录 shell。 如果不
命令被指定,一个登录shell将在用户当前工作中启动
chroot 内的目录。

该命令是一个程序,根据需要加上尽可能多的可选参数。 每个参数可以
单独引用。

命令或登录 shell 运行的目录取决于上下文。 看
- 目录 下面的选项以获得完整的描述。

所有 chroot 使用情况都将记录在系统日志中。 在某些情况下,用户
可能需要进行身份验证; 见章节“认证“, 以下。

如果未指定 chroot,则将使用 chroot 名称或别名“default”作为后备。
这相当于“--chroot=default”。

产品详情


通常需要在虚拟化环境中而不是在主机上运行程序
系统直接。 与其他虚拟化系统不同,例如 KVM or Xen的, schroot 不
虚拟化整个系统; 它只虚拟化文件系统,以及文件系统的某些部分
文件系统仍可能与主机共享。 因此,它快速、轻便且
灵活的。 但是,它不会虚拟化系统的其他方面,例如共享
内存、网络、设备等,因此可能不如其他系统安全,具体取决于
根据其预期用途。 schroot 现有用途的一些示例包括:

· 在沙箱中运行不受信任的程序,这样它就不会干扰沙箱上的文件
主机系统; 这也可用于限制受损服务的损害
可以对宿主造成伤害

· 用一个 定义 or 清洁 环境,以保证重现性和
给定任务的完整性

· 使用不同版本的操作系统,甚至不同的操作系统
系统,例如不同的 GNU/Linux 发行版

· 在 32 位主机系统上使用 32 位 chroot 运行 64 位程序

· 使用 Debian 软件包自动构建 建造(1),它构建每个包
使用 LVM 快照或联合时的原始 chroot 快照

· 支持集群设置中的多个系统映像,其中修改基础
图像很耗时和/或支持所有必需的配置
用户难:不同的chroot可以支持所有不同的配置
需要,集群用户可以访问他们需要的 chroots(可以
为受信任的用户提供 root 访问权限以维护他们自己的图像)

可以通过运行将 chroot 直接用作 root chroot(8),但普通用户不能
使用此命令。 施鲁特 允许使用相同的普通用户访问 chroot
机制,但有几个附加功能。 虽然 schroot 使用目录作为
chroot 就像 chroot(8)、它不要求这是一个常规目录
文件系统。 虽然这是默认设置,但也可以从一个文件创建 chroot,一个
文件系统,包括 LVM 和 Btrfs 快照和环回挂载,或由
unionfs 覆盖。 作为用户可扩展的,从不同的创建 chroot 的范围
来源仅受您的想象力的限制。 schroot 执行权限检查和
允许额外的 chroot 环境自动设置,例如安装额外的
文件系统和其他配置任务。 这种自动设置是通过
的行动 格局 脚本 可以定制和扩展以执行任何操作
必需的。 典型的操作包括挂载用户的主目录、设置
网络和系统数据库,甚至启动服务。 这些又是完全
由管理员自定义。 安装脚本针对所有类型的 chroot 运行,使用
'plain' 类型除外,最简单的 chroot 类型,不提供自动设置
根本没有特点。 schroot 的配置在
配置文件(5)。

配置


施鲁特 接受以下选项:

行动
-h, - 帮帮我
显示帮助摘要。

-V, - 版
打印版本信息。

-l, - 列表
列出所有可用的 chroot。

-i, - 信息
打印有关指定 chroot 的详细信息。

--配置
打印指定 chroot 的配置。 这对于测试
使用的配置与配置文件相同。 任何评论在
原始文件将丢失。

- 地点
打印指定 chroot 的位置(路径)。 请注意,chroot 类型可以
只有在会话中使用才会有位置,直到它们处于活动状态。

一般用途总体评估 选项
-q, - 安静的
仅打印基本信息。

-v, --详细
打印所有消息。

chroot环境 选择
-c, --chroot=chroot
指定要使用的 chroot 或活动会话。 此选项可多次使用
指定多个 chroot,在这种情况下,其效果类似于 - 全部。 该
chroot 名称可以带有前缀 命名空间; 见章节“chroot环境 命名空间
联络一位教师

-a, - 全部
选择所有 chroot、源 chroot 和活动会话。 当一个命令被
指定,该命令将在所有 chroots、源 chroots 和 active 中运行
会议。 如果 - 信息 已使用,显示所有chroot的信息。 这个
选项与登录 shell 一起使用没有意义(当没有命令时运行
指定的)。 此选项等效于“--all-chroots --all-source-chroots
--所有会话”。

--all-chroots
选择所有 chroot。 相同 - 全部, 除了源 chroots 和 active
不考虑会话。

--所有会话
选择所有活动会话。 相同 - 全部, 除了 chroots 和 source
不考虑 chroot。

--所有源chroots
选择所有源 chroot。 相同 - 全部, 除了 chroots 和 session
不考虑。

--排除别名
除了 chroots 之外,不要选择别名。 这确保只有真正的 chroots
被选中,并且只列出一次。

chroot环境 环境
-d, --目录=目录
改成 目录 在运行命令或登录 shell 之前在 chroot 内。
If 目录 不可用,schroot 将退出并显示错误状态。

默认行为如下(所有目录路径都在 chroot 内)。 一种
login shell 在当前工作目录中运行。 如果这不可用,它
将尝试 $HOME (当 --保护环境 被使用),那么用户的家
目录,和 / 依次在chroot里面。 命令总是在当前运行
chroot 内的工作目录。 如果没有可用的目录,
schroot 将退出并显示错误状态。

-u, --用户=用户
以不同的用户身份运行。 默认是以当前用户身份运行。 如果需要的话,
用户可能需要使用密码进行身份验证。 为了更进一步的
信息,请参阅“认证“, 以下。

-p, --保护环境
在 chroot 环境中保留用户的环境。 默认为
使用干净的环境; 此选项复制整个用户环境并设置它
在会议中。 允许的环境变量受某些限制
限制; 见章节“环境“, 以下。

-s, --外壳=
使用 VHDL 语言编写 作为登录外壳。 当运行登录 shell 时,许多潜在的
将按以下顺序考虑 shell:SHELL 环境中的命令
变量(如果 --保护环境 被使用,或 保护环境 已启用),
'passwd' 数据库中的用户 shell, / bin / bash 最后 / bin / sh的。 这
选项覆盖此列表,并将使用指定的外壳。 这个选项也
覆盖 配置键,如果设置。

-o, --选项=键=值
设置一个选项。 中选择的配置键的值 配置文件 也许
使用此选项修改。 密钥必须存在于 用户可修改的密钥
配置键输入 配置文件,或另外 用户可修改的密钥 关键如果
以(或切换到)root 用户身份运行。 这里设置的key和value会被设置
在安装脚本的环境中,因此可用于自定义
基于每个会话的 chroot。

时间 行动
--自动会话
自动开始、运行和结束会话。 这是默认操作,也是
在正常操作中不需要指定。

-b, --开始会话
开始一个会话。 在标准上返回唯一的会话标识符(会话 ID)
输出。 使用其他会话选项需要会话 ID。 注意
会话标识符可以用 --会话名称 选项。

--恢复会话
恢复现有会话。 如果现有会话变得不可用,对于
由于重新启动而卸载的示例,此选项将使会话
可以再次使用,例如通过重新安装它。 会话 ID 已指定
--chroot 选项。

-r, --运行会话
运行现有会话。 会话 ID 用 --chroot 选项。

-e, --结束会话
结束现有会话。 会话 ID 用 --chroot 选项。

时间 选项
-n, --会话名称=会话名称
命名会话。 指定的 会话名称 替换默认会话名称
包含自动生成的会话 ID。 会话名称不能
包含命名空间限定符,因为会话总是在
“会话:”命名空间。 会话名称也受制于 chroot 命名
限制记录在 配置文件(5)。

-f, - 力量
强制会话操作,即使它会失败。 这可用于
强行结束会话,即使它有活跃用户。 这并不能保证
会议将干净地结束; 例如,文件系统可能不会被卸载。

分隔器
-- 选项结束。 用于指示schroot选项的结束; 任何以下
选项将传递给正在运行的命令,而不是传递给 schroot。

认证


如果用户不是被允许的用户,或者不是被允许组的成员(或者如果更改为
root,允许的 root 用户或允许的 root 组),用于指定的 chroot,
许可将立即被拒绝。 如果切换用户,并且用户运行
命令具有访问权限,用户将需要使用
被切换到的用户的凭据。

在支持 Pluggable Authentication Modules (PAM) 的系统上,schroot 将使用 PAM
用户的身份验证和授权。 如果需要,schroot 将提示输入
密码。 如果 PAM 不可用,则所有身份验证都将自动失败(用户
切换是 而不去 不支持 PAM)。

请注意,在使用 PAM 时,root 用户不会被授予任何特殊权限
程序中默认。 但是,默认的 PAM 配置允许 root 登录
没有密码(pam_rootok.so),但这可能会被禁用以防止 root
除非特别允许,否则访问任何 chroot。 在这种情况下,root 必须是
添加到允许的用户或组与任何其他用户或组一样。 如果 PAM 不是
可用,root 用户将被允许访问所有 chroot,即使没有明确显示
授予访问权限。

命名空间


命名空间 基础知识
chroot 分为三种不同类型:常规 chroot、源 chroot 和会话
根。 这些不同类型的 chroot 被分成不同的 命名空间。 一个
namespace 是 chroot 名称的前缀。 目前有三个命名空间:'chroot:',
“来源:”和“会话:”。 用 - 列表 - 全部 列出所有可用的 chroot
命名空间。 因为 ':' 被用作命名空间和 chroot 名称之间的分隔符,它
不允许在 chroot 名称中使用此字符。

根据您要求 schroot 采取的操作,它可能会在一个中查找 chroot
三个命名空间中的一个,或者可以指定一个特定的命名空间。 例如,一个
如果包含命名空间,名为“sid”的 chroot 实际上被命名为“chroot:sid”,但是
大多数操作可以省略命名空间。

来源
某些 chroot 类型,例如 LVM 快照和 Btrfs 快照,提供会话管理
chroot 的写时复制快照。 这些也提供了一个 资源 chroot 让容易
访问用作快照源的文件系统。 这些是常规的 chroots
好吧,只是禁用了快照。 对于名为“sid-snapshot”的 chroot(即带有
“chroot:sid-snapshot”的全限定名),也会有对应的源
chroot 名为“source:sid-snapshot”。 早期版本的 schroot 提供了源 chroots
带有“-source”后缀。 这些也是为了兼容性而提供的。 在这个例子中,
这将被称为“chroot:sid-snapshot-source”。 这些兼容性名称将是
在未来的版本中删除,所以程序和脚本应该切换到使用命名空间 -
限定名称而不是旧的后缀。

时间
创建的所有会话 --开始会话 放置在“会话:”命名空间中。 一种
会话命名为 --会话名称 可以有任何名字,甚至与 chroot 同名
是从创建的,前提是它在此命名空间中是唯一的。 这不是
在没有命名空间的以前版本的 schroot 中允许。

行动 默认 命名空间
所有操作都使用“chroot:”作为默认命名空间,一些会话操作是
例外。 --运行会话, --恢复会话--结束会话 使用“会话:”作为
取而代之的是默认命名空间,因为这些操作适用于会话 chroot。 结果是
通常从不需要命名空间,除非您需要在其中使用 chroot
非默认命名空间,例如使用源 chroot 时。 制作chroot
选择明确,总是可以使用全名,包括命名空间,
即使没有严格要求。

性能


由于某些文件系统(例如 Btrfs)在运行 dpkg 时性能不佳
执行的 fsync 操作的数量。 这可以通过安装eatmydata来缓解
打包然后将eatmydata添加到 命令前缀 配置键,禁用
所有 fsync 操作。 请注意,这应该只在数据的快照 chroots 中完成
损失不是问题。 这在使用 chroot 进行包构建时很有用,因为
例。

目录 后备


schroot 将根据是否在 chroot 中选择一个合适的目录来使用
将使用交互式登录 shell,或调用命令,此外,如果
- 目录 选项被使用。 在直接或显式运行命令的情况下
指定一个目录,为了安全和一致性,只会使用一个目录,而
对于登录 shell,可以尝试多种可能性。 以下小节列出了
每种情况的回退序列。 CWD 是当前工作目录,DIR 是
指定的目录 - 目录.

注册
┌──────────────────────┬──────────────────────────── ──────────────────┐
│转型│ │
│(主持人 → Chroot) │ 评论 │
├────────────────────┼──────────────────────────── ────────────────┤
│CWD → CWD │ 正常行为(如果 - 目录 不是│
│ │ 用过) │
│CWD → $HOME │ 如果 CWD 不存在且 │
│ │ --preserve-environment 使用 │
│CWD → passwd pw_dir │ 如果 CWD 不存在(或 │
│ │ --preserve-environment 被使用,没有 │
│ │ $HOME 存在) │
│CWD → / │ 以上都不存在│
失败 │ 如果 / 不存在 │
└──────────────────────┴──────────────────────────── ────────────────┘
命令
┌──────────────────┬──────────────────────────────── ────────────┐
│转型│ │
│(主持人 → Chroot) │ 评论 │
├────────────────┼────────────────────────────────── ────────────┤
│CWD → CWD │ 正常行为(如果 - 目录 不是│
│ │ 用过) │
失败 │ 如果 CWD 不存在 │
└────────────────┴──────────────────────────────── ────────────┘
在任何情况下都不应存在回退。

- 目录 用过的
┌──────────────────┬──────────────────────────────── ────────────┐
│转型│ │
│(主持人 → Chroot) │ 评论 │
├────────────────┼────────────────────────────────── ────────────┤
│CWD → DIR │ 正常行为 │
失败 │ 如果 DIR 不存在 │
└────────────────┴──────────────────────────────── ────────────┘
在任何情况下都不应存在回退。

调试
需要注意的是 --debug=通知 将显示为会话计算的内部回退列表。

示例


列表 可使用
% 施鲁特 -l
chroot:默认
chroot:蚀刻
chroot:sid
chroot:测试
chroot:不稳定

积极 信息 关于 a chroot
% 施鲁特 -i -c SID
——— 克罗特 ———
名称 sid
描述 Debian sid (不稳定)
类型普通
优先3
用户 rleigh
组建
根用户
根组构建
别名不稳定的不稳定-sbuild 不稳定-p
owpc-sbuild
环境过滤器 ^(BASH_ENV|CDPATH|ENV|HOSTALIASES|I\
FS|KRB5_CONFIG|KRBCONFDIR|KRBTKFILE|KRB_CONF|LD_.*|LOCALDOMA\
IN|NLSPATH|PATH_LOCALE|RES_OPTIONS|TERMINFO|TERMINFO_DIRS|TE\
路径)$
运行安装脚本 true
脚本配置脚本默认值
会话管理 true
个性linux32
位置 /srv/chroot/sid

使用 VHDL 语言编写 - 全部 or -c 多次分别使用所有或多个 chroot。

运行 命令 in a chroot
% 施鲁特 -c SID / bin / ls
[sid chroot] 运行命令:“/ bin / ls=
CVS sbuild-chroot.c sbuild-session.h schroot.conf.5
生成文件 sbuild-chroot.h schroot.1 schroot.conf.5.in
Makefile.am sbuild-config.c schroot.1.in
Makefile.in sbuild-config.h schroot.c
pam sbuild-session.c schroot.conf
% 施鲁特 -c SID -- ls -1 | -n 5
[sid chroot] 运行命令:“ls -1”
关于-NLS
作者
复印
更新日志
载点

使用 VHDL 语言编写 -- 允许命令中以“-”或“--”开头的选项在 chroot 中运行。
这可以防止它们被解释为 schroot 本身的选项。 注意顶
行被回显到标准错误,其余行到标准输出。 这是
故意的,以便从在 chroot 中运行的命令的程序输出可以通过管道传输和
根据需要重定向; 数据将与直接运行命令相同
主机系统。

交换 用户
% 施鲁特 -c SID -u
密码:
[sid chroot] (rleigh→root) 运行登录 shell:“/ bin / bash=
#

如果用户“rleigh”在 根用户 in /etc/schroot/schroot.conf,或其中一组
他属于 根组,他们将被授予 root 访问权限,而无需
身份验证,但仍应用 PAM 授权步骤。

会议
运行多个命令可能需要 chroot。 特别是,chroot 所在的位置
从 LVM LV 或光盘上的文件动态创建,需要制作 chroot
在执行给定任务(或一组任务)时持久化。 为此存在会话
目的。 对于简单的 chroot 类型,例如 'plain' 和 'directory',可以创建会话
但不是绝对必要的。

让我们从一个支持会话的 chroot 开始:

% 施鲁特 -i -c 侧拍
——— 克罗特 ———
名称 sid-snap
描述 Debian sid 快照
输入lvm-snapshot
优先3
用户 maks rleigh
组建
根用户
根组 root sbuild
别名
环境过滤器 ^(BASH_ENV|CDPATH|ENV|HOSTALIASES|I\
FS|KRB5_CONFIG|KRBCONFDIR|KRBTKFILE|KRB_CONF|LD_.*|LOCALDOMA\
IN|NLSPATH|PATH_LOCALE|RES_OPTIONS|TERMINFO|TERMINFO_DIRS|TE\
路径)$
运行安装脚本 true
脚本配置脚本默认值
会话管理 true
个性linux
设备 /dev/hda_vg/sid_chroot
挂载选项 -o atime,async,user_xattr
来源用户
源组 root rleigh
源根用户
源根组 root rleigh
LVM 快照选项 --size 2G -c 128

请注意 时间 托管 选项设置为“真”。 这是一个要求,以便
使用会话管理,并且大多数 chroot 类型都支持。 接下来,我们将创建一个新的
会议:

% 施鲁特 -b -c 侧拍
sid-snap-46195b04-0893-49bf-beb8-0d4ccc899f0f

新创建的会话的会话 ID 在标准输出中返回。 这很正常
像这样存储它:

% 会话=$(schroot -b -c sid-snap)
% 回音 $会话
sid-snap-46195b04-0893-49bf-beb8-0d4ccc899f0f

会话可以像任何普通的 chroot 一样使用。 这是会话的样子:

% 施鲁特 -i -c sid-snap-46195b04-0893-49bf-beb8-0d4ccc899f0f
- - 会议 - -
Name sid-snap-46195b04-0893-49bf-beb8-0d\
4ccc899f0f
描述 Debian sid 快照
输入lvm-snapshot
优先3
用户 maks rleigh
组建
根用户
根组 root sbuild
别名
环境过滤器 ^(BASH_ENV|CDPATH|ENV|HOSTALIASES|I\
FS|KRB5_CONFIG|KRBCONFDIR|KRBTKFILE|KRB_CONF|LD_.*|LOCALDOMA\
IN|NLSPATH|PATH_LOCALE|RES_OPTIONS|TERMINFO|TERMINFO_DIRS|TE\
路径)$
运行安装脚本 true
脚本配置脚本默认值
会话管理 true
个性linux
挂载位置 /var/lib/schroot/mount/sid-snap-461\
95b04-0893-49bf-beb8-0d4ccc899f0f
路径 /var/lib/schroot/mount/sid-snap-461\
95b04-0893-49bf-beb8-0d4ccc899f0f
挂载设备 /dev/hda_vg/sid-snap-46195b04-0893-\
49bf-beb8-0d4ccc899f0f
设备 /dev/hda_vg/sid_chroot
挂载选项 -o atime,async,user_xattr
来源用户
源组 root rleigh
源根用户
源根组 root rleigh
LVM 快照设备 /dev/hda_vg/sid-snap-46195b04-0893-\
49bf-beb8-0d4ccc899f0f
LVM 快照选项 --size 2G -c 128

现在会话已创建,可以在其中运行命令:

% 施鲁特 -r -c sid-snap-46195b04-0893-49bf-beb8-0d4ccc899f0f -- \
UNAME -sr
I: [sid-snap-46195b04-0893-49bf-beb8-0d4ccc899f0f chroot] Running \
命令:“uname -sr”
Linux 2.6.18-3-powerpc
% 施鲁特 -r -c $会话 -- UNAME -sr
我:[sid-snap-fe170af9-d9be-4800-b1bd-de275858b938 chroot]运行\
命令:“uname -sr”
Linux 2.6.18-3-powerpc

当会话中运行的所有命令都执行完毕后,会话可能会结束:

% 施鲁特 -e -c sid-snap-46195b04-0893-49bf-beb8-0d4ccc899f0f↵
% 施鲁特 -e -c $会话↵

最后,会话名称可能又长又笨拙。 可以指定名称而不是
使用自动生成的会话 ID:

% 施鲁特 -b -c 侧拍 -n 我的会话名称↵
我的会话名称

故障排除


如果某些东西不起作用,并且从错误消息中不清楚出了什么问题,请尝试
使用 --调试=水平 打开调试消息的选项。 这给了很多
更多信息。 有效的调试级别为“无”、“通知”、“信息”、“警告”和
“严重”按严重性增加的顺序排列。 严重程度越低,越多
输出。

如果您仍然遇到问题,可以通过邮件列表联系开发人员:
Debian 构建工具开发人员
<[电子邮件保护]>

使用 onworks.net 服务在线使用 schroot


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad




×
广告
❤️在这里购物、预订或购买——免费,有助于保持服务免费。