sandboxadm - Sandbox administration
/usr/bin/sandboxadm
sandboxadm create -s sandbox -u username [[-c classification] | [-p parent_sandbox]] [-g group,[group]...] [-h homedir]
sandboxadm destroy -s sandbox [-u]
sandboxadm list [-l] [[-p parent_sandbox | -c]
sandboxadm info [-s sandbox] [-e]
sandboxadm verify -s svcname [-t | -u] [-k keep_compartments]
sandboxadm init [-f encodings_file] [-c classification_prefix] [-i classification_instances] [-s compartment_prefix] [-n number_of_compartments] [-x extra_compartments]
sandboxadm 命令管理提供安全隔离和资源管理的沙箱。
支持以下子命令:
创建新沙箱。这是一项特权操作,需要使用 Sandbox Management(沙箱管理)权限配置文件。create 子命令支持以下选项:
新沙箱的名称。此名称区分大小写且必须唯一。沙箱名称还必须用于指定项目。如果不存在具有此名称的项目,则会创建一个新项目。
与沙箱关联的帐户。如果用户名指定的帐户不存在,则会创建该帐户以及一个新的起始目录,用户的安全许可会设置为沙箱的标签。
如果帐户已存在且不具有显式安全许可,则用户的安全许可会设置为沙箱的安全许可。否则,用户的安全许可会设置为现有安全许可的上界以及沙箱的标签。
如果为沙箱指定了父项,则帐户的起始目录会使用沙箱的标签以递归方式进行标记。帐户将添加到相应的项目中。
创建新的起始目录时使用的路径名。如果不指定此选项,则使用 setlabel(1) 设置的缺省路径名。
与用户关联的组。如果指定此选项,第一个组会指定为主组,其余组会指定为辅助组。创建新帐户时会应用组列表且该列表会替换现有帐户的当前组。
沙箱会创建成 parent_sandbox 的一个子项。从父项复制新沙箱的分类,通过向缺省区间前缀附加一个唯一整数可自动生成区间名称。
如果不指定 –p 选项,则会将沙箱创建成父沙箱。
指定的分类用作新父沙箱的标签的分类组件。如果已将该分类指定给另一个沙箱,则会出现错误。
如果不指定 –c 选项,则通过向缺省分类名称附加一个唯一整数来生成分类名称。
通过向缺省区间前缀附加 "All" 来生成区间名称。如果在 label_encodings(5) 文件中定义了任何附加区间,它们都会附加到标签。
销毁现有沙箱。如果沙箱存在任何子项,则必须先销毁子沙箱,再销毁父沙箱。这是一项特权操作,需要使用 Sandbox Management(沙箱管理)权限配置文件。
destroy 子命令支持以下选项:
要销毁的沙箱的名称。如果存在相应的项目,也会将其删除。
如果指定的帐户存在,它将随其起始目录一起删除。
列出与指定选项匹配的沙箱名称。list 子命令支持以下选项:
指定长格式,包括每个沙箱的标签、用户名和 UID。
列出指定的沙箱及其所有子项。
列出包含子沙箱或是子沙箱父项的沙箱。
显示一个沙箱的属性。如果不指定任何选项,则使用当前沙箱。info 子命令支持以下选项:
列出的是指定沙箱而不是当前沙箱。
提供当前标签属性摘要,包括编码文件的路径名称、可用分类名称以及区间名称。
使用指定的属性创建新的标签编码文件。自动包括最小标签 Public,版本会设置成 Sandbox Labels v1.0。init 子命令支持以下选项:
指定将创建新编码文件的位置。通过运行以下命令可提交文件属性:
# cd /etc/security/tsol # labelcfg -e encodings_file commit
要么在 /etc/security/tsol 目录中创建文件,要么将文件复制到此处来提交该文件。
指定分类名称将使用的前缀。通过附加从 1 开始的连续整数可生成唯一的分类名称。缺省前缀是 Class。对支配所有已编号分类的分类应用后缀 All。
指定可使用的最大分类实例数。
指定区间名称将使用的前缀。通过附加从 1 开始的连续整数可生成唯一的区间名称。缺省前缀是 Sandbox。对支配所有已编号区间的区间应用后缀 All。
指定可使用的最大沙箱区间数。
指定可附加到除 Public 外的任意标签的其他区间名称。最多可指定十个 –x 选项。
通过检查用于进入和退出沙箱的各种选项来确认沙箱已正确配置。进程属性会在每次转换之后列出。之后,子命令在继续执行下一转换之前会等待 RETURN 字符。
verify 子命令支持以下选项:
指定要输入的沙箱名称。当前进程必须在指定沙箱的父沙箱中运行或者当前进程安全许可必须为 ADMIN_HIGH。当前安全许可低于指定沙箱的安全许可,除非指定 –k 选项。
指定新安全许可中要保留的区间名称。如果指定多个区间,则使用空格字符将其分隔开。区间必须由当前安全许可支配。
指定转换为临时转换。按回车键后,将恢复父沙箱进程属性。属性会在进程退出之前列出。
指定转换为永久性转换。按回车键后,会在当前进程中设置指定沙箱的用户 ID、主组 ID 和辅助组。属性会在进程退出之前列出。
将返回以下退出值:
该命令被成功处理。
出现错误。
指定的命令行选项无效。
example$ sandboxadm list -l CDB1 username(uid): cdb1(15000) label: CDB1 SandboxAll DBFcdb DBFall FScdb CDB1_Sbox1 username(uid): cdb1sbox1(15001) label: CDB1 Sandbox1 CDB4 username(uid): oracle(20002) label: CDB4 SandboxAll DBFcdb DBFall FScdb示例 2 显示当前标记属性
example$ sandboxadm info -e File: /etc/security/tsol/label_encodings.sandboxing Classifications: Public CDB1 - CDB8 CDBall Compartments: Sandbox1 - Sandbox4096 SandboxAll DBFcdb DBFall FScdb Sandbox: CDB6 container: CDB6_SboxAll username(uid): cdb6sbox1(10001) label: CDB6 Sandbox1
有关下列属性的说明,请参见 attributes(7):
|
sandbox(1)、sandbox_create(3SANDBOX)、label_encodings(5)、clearance(7)、labels(7)、setlabel(1)
The sandboxadm command was added in Solaris 11.4.0.