欢迎来到之路教程(on itroad-com)
如何设置受限shell
为特定用户设置你想要的环境,可以把它们放在启动文件:$HOME/.bash_profile,如下图:
# .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin export PATH bash -r
现在使用用户登录并尝试更改目录。
$ cd /etc/ bash: cd: restricted $ cd /tmp/ bash: cd: restricted
要为所有用户设置受限 Shell,请创建 /bin/bash 到 /bin/rbash 的符号链接:
# cd /bin # ln -s bash rbash
为什么是 rbash?
如果 bash 以名称 rbash 启动,或者在调用时提供了 -r 选项,则 shell 将受到限制。
受限 shell 用于设置比标准 shell 更受控制的环境。
它的行为与 bash 相同,除了以下内容被禁止或者不执行:
- 用 cd 改变目录
- 设置或者取消设置 SHELL、PATH、ENV 或者 BASH_ENV 的值
- 指定包含/的命令名称
- 指定包含/的文件名作为内置命令的参数
- 指定包含斜杠的文件名作为 hash 内置命令的 -p 选项的参数
- 在启动时从 shell 环境导入函数定义
- 在启动时从 shell 环境解析 SHELLOPTS 的值
- 使用 >、>|、<>、>&、&> 和 >> 重定向运算符重定向输出
- 使用 exec 内置命令将 shell 替换为另一个命令
- 使用 -f 和 -d 选项向 enable 内置命令添加或者删除内置命令
- 使用 enable 内置命令启用禁用的 shell 内置命令
- 指定命令内置命令的 -p 选项。
- 使用 set +r 或者 set +o 限制关闭受限模式。
rbash 表示受限制的 bash shell(restricted bash shell)。
在类似 UNIX 的操作中,当创建用户时会分配一个默认的 shell (/bin/bash)。
所以用户可以移动到任何人的目录,所以为了避免这种情况,我们可以将受限 shell 分配给一个用户,受限 shell 就像一个类似监狱的环境或者 chroot 环境。
日期:2020-09-17 00:14:40 来源:oir作者:oir