如何在 Linux 中配置受限的 Bash Shell

可以使用以下命令调用受限制的 bash shell:

# bash -r

'/bin/rbash ' 代表受限制的 bash shell,可以通过创建为 '/bin/bash' 的软链接来创建,如下所示:

# ln -s /bin/bash /bin/rbash

一旦创建了 /bin/rbash 的软链接,就可以使用以下命令启动受限制的 bash shell:

# rbash

如果 bash 以名称 'rbash' 启动或者在调用时提供了 '-r' 选项,则 shell 将受到限制。
以下是 bash 命令手册页的输出:

受限 shell 用于设置比标准 shell 更受控制的环境。
它的行为与 bash 相同,除了以下内容被禁止或者不执行:

  1. 用 cd 改变目录。
  2. 设置或者取消设置 SHELL、PATH、ENV 或者 BASH_ENV 的值
  3. 指定包含/的命令名称
  4. 指定一个包含/的文件名作为 .内置命令
  5. 指定一个包含斜杠的文件名作为 hash 内置命令的 -p 选项的参数
  6. 启动时从shell环境导入函数定义
    7.启动时从shell环境解析SHELLOPTS的值
  7. 使用 >、>|、<>、>&、&> 和 >> 重定向运算符重定向输出
    9.使用exec内置命令将shell替换为另一个命令
  8. 使用 -f 和 -d 选项向 enable 内置命令添加或者删除内置命令
    11.使用enable builtin命令启用禁用的shell内置
    12.为命令内置命令指定-p选项
  9. 使用 set +r 或者 set +o受限关闭受限模式。

在读取任何启动文件后会强制执行这些限制。
当执行发现是 shell 脚本的命令时(请参阅上面的命令执行),rbash 会关闭为执行脚本而生成的 shell 中的任何限制。

日期:2020-09-17 00:13:23 来源:oir作者:oir