Go to main content

手册页部分 1:用户命令

退出打印视图

更新时间: 2022年7月27日 星期三
 
 

sandbox(1)

名称

sandbox - 在受限环境中执行程序

用法概要

sandbox -s sandboxname [command]
sandbox [-n] [-l clearance] [command]

描述

sandbox 命令可用于在受限环境中执行程序。缺省情况下,它会启动一个受限 shell,并降低进程安全许可。

如果使用 –s 选项指定 sandboxname,则该命令启动时会带有进程属性以及与指定沙箱关联的起始目录。这些沙箱是使用 sandboxadm(8) 命令创建的。尽管进入沙箱不需要任何特权,但是调用进程还必须具有相应的用户 ID 和安全许可。有关概述,请参见 sandboxing(7)

本节的余下部分适用于不指定 sandboxname 的情况。应在用户起始目录中不包含敏感文件的子目录中执行 sandbox 命令。

受限 shell 会在一个新的会话中启动。缺省情况下,它会降低当前的基本特权集。它会删除 proc_infoproc_session 进程特权以阻止访问以该用户身份运行的其他程序。它会针对 proc_exec 特权设置扩展策略以阻止执行程序,除非程序位于当前目录或 /usr 目录下。

如果指定 –n 选项,该命令还会删除 net_access 特权以阻止以任何形式使用网络的情况。

缺省情况下,它会将用户的进程安全许可降为 ADMIN_LOW 以阻止访问带标签的文件(例如多级别 ZFS 数据集中带标签的文件)。此外,用户可以指定由安全许可支配的任何标签。

启动 sandbox 之前,用户可以使用 setlabel(1) 命令升级起始目录中的文件和目录,以便于沙箱中运行的进程不能对其进行访问。

示例

示例 1 在受限环境中运行 Firefox
~alice:$ cd playground
~alice/playground:$ sandbox firefox
示例 2 检查进程凭证
~alice:$ cd playground
~alice/playground:$ sandbox -n
~alice/playground:$ ppriv $$
103889: /usr/bin/bash --login
flags = PRIV_XPOLICY
	Extended policies:
		{proc_exec}:/export/home/alice/playground
		{proc_exec}:/usr/*
	E: basic,!net_access,!proc_exec,!proc_info,!proc_session
	I: basic,!net_access,!proc_exec,!proc_info,!proc_session
	P: basic,!net_access,!proc_exec,!proc_info,!proc_session
	L: all
~alice/playground:$ plabel $$
103889: ADMIN_LOW

属性

有关下列属性的说明,请参见 attributes(7)

属性类型
属性值
可用性
system/file_labeling

另请参见

plabel(1), setlabel(1), privileges(7), sandboxing(7), sandboxadm(8)

History

The sandbox command was added in Solaris 11.4.0.