Неправильно ли устанавливать оболочку корня в нечто иное, чем значение по умолчанию?

Однажды мой друг (опытный пользователь Unix / Linux) сказал мне, что установка оболочки root на нечто иное, чем sh (то есть bash или zsh), может создавать проблемы, потому что какой-то скрипт может предположить, что оболочка – это sh и сделать что-то странное ,

Тем не менее, я думаю, Ubuntu имеет корневую оболочку по умолчанию, установленную в bash, а Gentoo также использует bash. Может ли кто-нибудь испортить миф?

6 Solutions collect form web for “Неправильно ли устанавливать оболочку корня в нечто иное, чем значение по умолчанию?”

Да. Если система не работает во время загрузки, вы можете войти в корневую оболочку. Если у вас есть отдельный / usr, некоторые оболочки могут не запускаться успешно.

Я бы посоветовал создать учетную запись toor (uid 0, gid 0) с нестандартной оболочкой, а левой – с оболочкой по умолчанию.

Не должно быть проблемой.

Файлы Shell-script явно кодируют, с какой оболочкой они выполняются. Он кодируется в первой строке или других программах или сценариях, выполняющих определенную оболочку, и дает сценарий оболочки как аргумент.

Единственная программа, о которой я могу думать, использует информацию о оболочке учетной записи пользователя (помимо процесса входа в систему) – procmail. Действительно забавно, если ваш пользователь установил как shell / bin / false на почтовый сервер … Но вы обычно не выполняете procmail как root.

Другим кандидатом были бы строки в корнете root. Я не знаю, какова политика кроны, какую оболочку использовать.

Сценарии, написанные для оболочки bourne, будут в большинстве случаев работать без BASH или ZSH или $ foo без проблем.

На многих Linux-системах нет оригинальной sh, а вместо нее часто используется символическая ссылка на / bin / bash.

Если некоторые скрипты просто «предполагают», что оболочка явно sh, они должны быть переписаны. Theres механизм shebang, чтобы выбрать, какой интерпретатор ваш скрипт нуждается. Если его sh, сценарий должен содержать #!/bin/sh в качестве первой строки.

В этом контексте ваш параметр оболочки по умолчанию не должен иметь значения.

Я не думаю, что изменение оболочки корня вызовет любые проблемы. Кажется, я помню некоторые стили (возможно, некоторые варианты BSD?), Имеющие tcsh в качестве оболочки по умолчанию для root.

В любом случае, корневые логины редки. Обычно вы должны войти в свою учетную запись, а затем su или sudo для root.

Важно то, что оболочка корня должна иметь как можно меньше зависимостей, чтобы она могла использоваться в контексте репарации системы. Например, неплохо иметь статически связанную корневую оболочку; некоторые дистрибутивы поставляют статически связанную версию bash или zsh или створки (оболочку со многими стандартными утилитами). Однако это не так важно, если ваша система может быть легко загружена с компакт-диска аварийного восстановления или USB-накопителя.

Оболочка входа пользователя не влияет на процесс загрузки. Вы можете установить эту оболочку так, как хотите. Не все системы имеют bash, и они работают нормально. Также, если это /usr/bin/zsh было установлено неправильно, все системные оболочки должны быть в /bin . Однако вы не должны изменять /bin/sh чтобы указать на что-то другое, кроме значения по умолчанию (если вы не знаете, что делаете), так как у многих скриптов есть #!/bin/sh которые обычно указывают на bash, когда они должны иметь #!/bin/bash потому что они используют bashisms и другое поведение, которое не будет работать на zsh или dash .

У меня bash в качестве оболочки по умолчанию для root. Я использовал zsh в течение некоторого времени, но потом вернулся к bash . Какую оболочку вы используете, не имеет большого значения.

Это только проблема, если у кого-то есть root-доступ. В этом случае вы можете выбрать «общий знаменатель», который обычно является bash, так как это наиболее широко используемая оболочка.

Interesting Posts

xmodmap Событие KeyPress для события ButtonPress

Как установить скорость и дуплексную скорость Ethernet

Отказано в праве root при подключении BluetoothSocket с Bluez 5.43

Как активировать основанный на времени вход администратора в систему Linux с помощью активного каталога Windows?

Изменение порта источника PulseAudio: «доступность = нет» и приоритет

Есть ли способ найти файлы, содержащие только непечатаемые символы?

GRUB-загрузчик не работает с Kali Linux Dual Boot

open () для дескрипторов файлов по умолчанию

перенаправить вывод tee и grep для нескольких лог-файлов

Как изменить ширину удаленной последовательной консоли?

проблема с / compress

Как установить чип по умолчанию в alsamixer? Или отключить автоматическое отключение звука в PulseAudio?

Ограничение для каждого процесса грязных байтов без замедления всей системы

Изменить язык и программы в программе установки

Как распечатать файл с помощью escape-последовательностей PCL?

Linux и Unix - лучшая ОС в мире.