我刚刚注意到在 OS X 10.6.4 上 root 的 shell 设置为/bin/sh
。运行 Bash 是否存在安全问题或其他问题?
答案1
我认为出于 Unix 兼容性原因,默认的 root shell 是 /bin/sh。
看http://en.wikipedia.org/wiki/Bourne_shell
我相信,/bin/sh 曾经是一个 zsh shell。Apple 将其更改为 bash,因为 zsh 不符合 POSIX 或类似要求。
编辑:
这Makefile 源代码,显示 /bin/sh 是从 bash 源构建的。
编辑#2:
无聊,我检查了一下。看来 Mac OS X 10.1.5 是最后一个使用 zsh 执行 /bin/sh。 它是改为 bash在 10.2 中。
答案2
Ubuntu 为了速度,使用 dash 作为默认系统 shell,而不是 sh。我猜如果确实是 sh,那么原因可能是一样的。
这里有充分的理由说明为什么 bash 并不是作为默认系统 shell 的最佳选择:https://wiki.ubuntu.com/DashAsBinSh
答案3
/bin/sh 不是 Bash 吗?
在 /bin 中执行“ls -lisa”。然后在目录中执行“./sh -version”,sh 将自身标识为 GNU bash。
答案4
将 root 的登录/交互式 shell 设置为/bin/bash
不会影响具有#!/bin/sh
作为其 shebang 行的 shell 脚本。对于这些脚本,无论文件充当什么角色(/bin/sh
无论是独立可执行文件还是符号链接或硬链接)都将用于解释该脚本。对于以这种方式从命令行运行的脚本也是如此:sh script
。
将 root 用户的交互式 shell 设置为 /bin/bash 是完全没有问题的。