Intereting Posts
Почему fstrim обрезает все свободное пространство на моем зеркале mdraid после перезагрузки? Как использовать curl для загрузки контента из sourceforge? Как настроить экран экрана экрана / занавес / внешний вид экрана Gnome? Что такое «статья 2001 года» для блокировки «автоматизированных поисковых программ», на которые ссылается страница wget man? Почему некоторые точки в AIX никогда не используются повторно? Как я могу запускать команду периодически и неограниченно, пока она не отключится? Запустите i3lock с паролем другого пользователя Как удалить файлы, отфильтрованные awk openwrt создает файлы ovpn История внутри петли Баш Mutt не отправляет электронную почту при указании SMTP-сервера Как перенести переменную из удаленной оболочки Как определить, какой сетевой интерфейс используется NFS для Solaris 10? Время вилки против поточной системы Как ограничить доступ к Интернету для определенного пользователя на LAN с помощью iptables в Linux

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

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

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

Да. Если система не работает во время загрузки, вы можете войти в корневую оболочку. Если у вас есть отдельный / 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, так как это наиболее широко используемая оболочка.