Answers:
是。如果系统在引导过程中失败,则可以登录到root shell。如果您有单独的/ usr,则某些shell可能无法成功启动。
我建议toor
使用非标准外壳程序创建帐户(uid 0,gid 0),而使用默认外壳程序保留根目录。
zsh
并且某种程度上/usr
被损坏,我会有问题吗?但我的系统有/bin/sh
指向/bin/bash
与bash
自身,为什么不会sh
受到影响?
zsh
/usr/bin/
如果安装错误,则不应插入。所有炮弹都应放在/bin
/bin
但在中保留了一些文件/usr/share
。我也清楚地指出,问题出在引导期间的登录期间(某些服务失败时)。
应该不是问题。
Shell脚本文件显式编码执行它们的shell。它被编码在第一行中,或者其他程序或脚本执行特定的shell并将shell脚本作为参数。
我能想到的唯一使用用户帐户外壳程序信息(除了登录过程之外)的程序是procmail。如果您的用户在邮件服务器上设置为shell / bin / false,这真的很有趣。但是您通常不以root用户身份执行procmail。
另一个候选者将是root的crontab中的行。我不知道crond的策略是使用哪个shell。
我认为更改root的外壳不会造成任何麻烦。我似乎还记得一些将tcsh作为root的默认shell的unices(也许是BSD的一些变体?)。
无论如何,根登录很少。通常,您将登录到自己的帐户,然后使用su或sudo root。
重要的是,root用户的shell应该具有尽可能少的依赖关系,以便可以在系统修复上下文中使用。例如,最好有一个静态链接的根外壳。有些发行版提供了bash或zsh或sash(内置许多标准实用程序的shell)的静态链接版本。但是,如果可以轻松地从应急CD或USB驱动器引导系统,那么这并不是很重要。
用户的登录shell不会影响启动过程。您可以将此shell设置为所需的任何值。并非所有系统都有bash并且它们工作正常。另外,如果/usr/bin/zsh
安装错误,则所有系统外壳都应位于/bin
。但是,您不应更改/bin/sh
为指向默认值以外的内容(除非您知道自己在做什么),因为许多脚本#!/bin/sh
通常会指向bash,而在本应包含的地方,#!/bin/bash
因为它们使用了bashisms和其他不会使用的行为在zsh
或上工作dash
。
bash
并且zsh
都在/bin
在就Solaris / Illumos的的Solaris根壳牌迷你常见问题提
某些系统管理员仍然建议不要在
Solaris系统上更改根shell 。询问原因,您可能会被告知root需要一个
静态链接的shell,该shell不依赖于
/ usr / lib下的动态库。过去确实如此,但
今天不一定如此。如果配置正确,Solaris就像任何其他版本的Unix一样,可以支持您为root或任何其他帐户定义的任何shell。
因此,是的,如果您使用的是Solaris或illumos,则可以使用以外的shell sh
。
bash
。我以单用户模式启动以进行修复,但它仅能正常工作,因为/bin/sh
它仍链接到andFBSD
的forbourne
和notbash
。