受限 Shell

受限 Shell 用于设置登录名和执行环境,其能力比常规 Bourne Shell 的能力更受到控制。

Rsh或 "bsh -r命令会打开限制 shell。 这些命令的行为等同于 bsh 命令的行为,除不允许以下操作外:

  • 更改目录(使用 cd 命令)
  • 设置 PATHShell 变量的值
  • 指定包含斜杠(/)的路径或命令名
  • 重定向输出

如果受限 Shell 确定要运行的命令是 Shell 过程,那么它使用 Bourne Shell 运行命令。 这样,就可能向用户提供访问 Bourne Shell 的全部功能的 Shell 过程,但强加受限的命令菜单。 这种情况假定用户在同一个目录中不具有写和执行许可权。

如果在启动 Bourne Shell 时指定了 File [Parameter] 参数,那么 Shell 会运行由 File 参数标识的脚本文件(包括所有指定的参数)。 指定的脚本文件必须具有读许可权。 忽略脚本文件的任何 setuidsetgid 设置。 然后 Shell 读取命令。 如果使用 -c-s 标志,那么不要指定脚本文件。

使用 Rsh 命令启动时,Shell 会在解释 .profile/etc/environment 文件后强制执行限制。 因此,.profile 文件的编写者通过执行设置操作和让用户在相应的目录(可能不是登录目录)中对用户操作进行完全控制。 管理员可以在 /usr/rbin 目录中创建命令目录, Rsh 命令可以通过将 PATH 变量更改为包含该目录来使用该目录。 如果使用 bsh -r 命令启动,那么 Shell 会在解释 .profile 文件时应用限制。

当使用名称 Rsh进行调用时,受限 shell 程序将读取用户的 .profile 文件 ($HOME/.profile)。 它在执行此操作时充当常规 Bourne shell ,只是中断会导致立即退出而不是返回到命令级别。

可以使用命令 ksh -r 将 Korn Shell 作为受限 Shell 程序启动。

kshrksh 的 inode 完全相同,并且 ksh93rksh93 的 inode 完全相同。