将 root 的 shell 设置为默认值以外的其他东西是不好的做法吗?

phu*_*ehe 16 shell users login root

曾经我的一个朋友(他是一位经验丰富的 Unix/Linux 用户)告诉我,将 root 的 shell 设置为 sh 以外的其他东西(即 bash 或 zsh)可能会产生问题,因为某些脚本可能会假设 shell 是 sh 并做一些奇怪的事情.

但是,我认为 Ubuntu 的默认 root shell 设置为 bash,Gentoo 也使用 bash。有人可以打破神话吗?

Mac*_*tka 12

是的。如果系统在引导过程中出现故障,您可以登录到 root shell。如果您有单独的 /usr,某些 shell 可能无法成功启动。

我建议toor使用非标准 shell创建帐户(uid 0, gid 0),而将 root 保留为默认 shell。


max*_*zig 7

应该不是问题。

Shell 脚本文件显式地编码它们执行的 shell。它被编码在第一行或其他程序或脚本执行特定的 shell 并将 shell 脚本作为参数提供。

我能想到的唯一使用用户帐户外壳信息(除了登录过程)的程序是 procmail。如果您的用户在邮件服务器上设置为 shell /bin/false 真的很有趣……但是您通常不会以 root 身份执行 procmail。

另一个候选者是 root 的 crontab 中的行。我不知道crond的策略是使用哪个shell。