Однажды мой друг (который является опытным пользователем Unix / Linux) сказал мне, что установка оболочки root на что-то отличное от sh (то есть bash или zsh) может создать проблемы, потому что некоторые сценарии могут предполагать, что оболочка sh и делают что-то странное ,
Тем не менее, я думаю, что в Ubuntu по умолчанию установлена корневая оболочка bash, и Gentoo также использует bash. Может кто-нибудь разрушить миф?
bash
. Я загрузился в однопользовательском режиме, чтобы исправить, но это работало только потому, что/bin/sh
все еще было связаноFBSD
с форком,bourne
а не сbash
.zsh
и как-то/usr
поврежден, у меня будут проблемы? но моя система/bin/sh
указывает на/bin/bash
иbash
сама, почему это неsh
повлияет?zsh
не должно быть,/usr/bin/
если оно было установлено неправильно. все снаряды должны быть в/bin
/bin
но сохраняет некоторые файлы/usr/share
. Также я четко заявил, что проблема во время входа в систему во время загрузки (когда происходит сбой какой-либо службы).Не должно быть проблемой.
Файлы сценариев оболочки явно кодируют, с какой оболочкой они выполняются. Он кодируется в первой строке, или другие программы или сценарии выполняют определенную оболочку и передают сценарий оболочки в качестве аргумента.
Единственная программа, о которой я могу думать, которая использует информацию оболочки учетной записи пользователя (помимо процесса входа в систему), это procmail. Действительно забавно, если ваш пользователь установил как shell / bin / false на почтовом сервере ... Но вы обычно не запускаете procmail от имени root.
Другим кандидатом могут быть строки в crontab root. Я не знаю, какова политика crond, какую оболочку использовать.
источник
Сценарии, написанные для оболочки Bourne, в большинстве случаев будут работать без проблем с BASH, ZSH или $ foo.
Во многих системах Linux не установлен оригинальный sh, вместо этого часто используется символическая ссылка на / bin / bash.
Если некоторые сценарии просто «предполагают», что оболочка явно sh, их следует переписать. Theres механизм shebang, чтобы выбрать, какой интерпретатор нужен вашему сценарию. Если это, сценарий должен включать
#!/bin/sh
в качестве первой строки.Настройки по умолчанию для вашей оболочки не должны быть релевантными в этом контексте.
источник
Я не думаю, что изменение оболочки root может вызвать какие-либо проблемы. Кажется, я помню некоторые юниты (может быть, некоторые варианты BSD?) С tcsh в качестве оболочки по умолчанию для root.
Корень логины в любом случае редки. Как правило, вы входите в свою учетную запись, а затем su или sudo для root.
Важно то, что оболочка root должна иметь как можно меньше зависимостей, чтобы ее можно было использовать в контексте восстановления системы. Например, неплохо иметь статически связанную корневую оболочку; некоторые дистрибутивы поставляются со статически связанной версией bash или zsh или sash (оболочка со многими стандартными встроенными утилитами). Однако это не так важно, если ваша система может быть легко загружена с загрузочного компакт-диска или USB-накопителя.
источник
Оболочка входа пользователя не влияет на процесс загрузки. Вы можете установить эту оболочку на то, что вы хотите. Не во всех системах есть bash, и они работают нормально. Также, если это
/usr/bin/zsh
было установлено неправильно, все системные оболочки должны быть в/bin
. Однако вам не следует менять/bin/sh
указатель на что-то, отличное от значения по умолчанию (если вы не знаете, что делаете), поскольку многие сценарии#!/bin/sh
обычно указывают на bash, когда они должны это делать,#!/bin/bash
потому что они используют bashisms и другое поведение, которое не будет работать наzsh
илиdash
.источник
bash
иzsh
в/bin
У меня bash как оболочка по умолчанию для root. Некоторое время я использовал zsh , но потом вернулся к bash . Какую оболочку вы используете, не имеет большого значения.
Это проблема, только если несколько человек имеют root-доступ. В этом случае вы можете выбрать «общий знаменатель», обычно это bash, так как это наиболее широко используемая оболочка.
источник
Что касается Solaris / Illumos, то здесь упоминается мини-FAQ по Solaris Root Shell.
Так что, да, если вы используете Solaris или Illumos, то лучше использовать и другие оболочки
sh
.источник