/bin/rbash 是什么?

/bin/rbash 是什么?

我正在学习常见的shell程序

当我运行时cat /etc/shells,它显示:

# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash

这是什么/bin/rbash?它在脚本中使用吗?

答案1

rbash 是 bash 的一个受限(功能减少)版本。请参阅此文章:https://en.wikipedia.org/wiki/Restricted_shell

摘自本文:

在受限 shell 中不允许执行以下操作:

changing directory
specifying absolute pathnames or names containing a slash
setting the PATH or SHELL variable
redirection of output

bash 增加了进一步的限制,包括:

limitations on function definitions
limitations on the use of slash-ed filenames in bash builtins

受限 Korn shell 中的限制与受限 Bourne shell 中的限制大致相同。

答案2

维基百科

受限 shell 是一种 Unix shell,它限制了交互式用户会话或其中运行的 shell 脚本的某些功能。它旨在提供额外的安全层,但不足以允许执行完全不受信任的软件。在原始 Bourne shell[1] 及其后来的对应 bash[2] 和 Korn shell[3] 中都可以找到受限模式操作。在某些情况下,受限 shell 与 chroot jail 结合使用,以进一步尝试限制对整个系统的访问。

Soren A 的回答针对受限 shell 的限制。

您可以bash在受限模式下运行

bash -r
bash --restricted

在我的系统上:

$ file /bin/rbash
/bin/rbash: symbolic link to bash

所以如果我跑步/bin/rbash,我就跑步bash

创建一个名为 rbash 的链接直接指向 bash 就足够了。虽然这会直接调用 bash,而不需要-r--restricted 选项,但 bash 确实会识别出它是通过 rbash 调用的,并且它会以受限 shell 的形式出现。

您可以轻松测试:

zanna@monster:~$ rbash
zanna@monster:~$ cd playground
rbash: cd: restricted

相关内容