手册页部分 1M: 系统管理命令

退出打印视图

更新时间: 2014 年 7 月
 
 

rsh(1M)

名称

rsh, restricted_shell - 受限 shell 命令解释程序

用法概要

/usr/lib/rsh [-acefhiknprstuvx] [argument]...

描述

rsh 是标准命令解释程序 sh 的一个限制版本,用于将登录限制到其功能经 sh 的功能受到更多控制的执行环境(有关完整说明和用法,请参见 sh(1))。

在调用 shell 后,它将在环境中扫描环境变量 SHELL 的值。如果找到了该变量,并且 rsh 是其值的文件名部分,则 shell 将成为受限 shell。

rsh 的操作与 sh 的操作完全相同,但不允许以下操作:

  • 更改目录(请参见 cd(1)),

  • 设置 $PATH 的值,

  • 指定包含 / 的路径或命令名称,

  • 重定向输出(>>>)。

以上限制在解释了 .profile 后强制执行。

可以通过以下方式之一调用受限 shell:

  1. rsh/etc/passwd 文件中最后一个条目的文件名部分(请参见 passwd(4));

  2. 环境变量 SHELL 存在,并且 rsh 是其值的文件名部分;需要在 .login 文件中设置环境变量 SHELL

  3. 已调用 shell,并且 rsh 是参数 0 的文件名部分;

  4. 调用 shell 并使用了 –r 选项。

如果发现要执行的命令为 shell 过程,rsh 则会调用 sh 来执行此命令。因此,可以向最终用户提供有权访问标准 shell 完整功能的 shell 过程,并强制提供有限的命令菜单;此方案假定最终用户在同一目录下不具备写入和执行权限。

这些规则的实际结果是,通过执行保证的设置操作,并将用户保留在适当的目录(可能不是登录目录)中,..profile 的写入者(请参见 profile(4))有用户操作的完整控制权。

系统管理员经常设置可由受限 shell 安全调用的命令目录(即 /usr/rbin)。有些系统还提供受限的编辑器 red

退出状态

shell 检测到的错误(例如,语法错误)会导致 shell 返回非零退出状态。如果是以非交互方式使用 shell,则放弃执行 shell 文件。否则 shell 将返回执行的最后一个命令的退出状态。

属性

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

属性类型
属性值
可用性
system/core-os

另请参见

Intro(1)cd(1)login(1)rsh(1)sh(1)exec(2)passwd(4)profile(4)attributes(5)

附注

受限 shell /usr/lib/rsh 不应与远程 shell /usr/bin/rsh 混淆,后者在 rsh(1) 中有介绍。