Почему не рекомендуется устанавливать оболочку по умолчанию для корневого пользователя в оболочку не POSIX?

371
Cy8099

Я собираюсь изменить стандартную оболочку моего корня с bash на fish. Насколько я знаю, fish - это не стандартная оболочка POSIX. С другой стороны, возможно, ядро ​​или другие элементы в системе связаны со стандартами POSIX, поэтому установка оболочки по умолчанию для root не в POSIX не рекомендуется, так как это может вызвать проблемы в моих частях ОС. Я видел людей на некоторые темы, которые советуют другим не устанавливать оболочку по умолчанию для пользователя root на не-POSIX! Это правильно?

Должен ли я изменить мою оболочку по умолчанию для root на не POSIX или нет? (Я буду рад, если вы объясните это причинами, я новичок в Unix-подобных мирах!)

3
У меня есть подозрение, что рекомендация в основном связана с другими оболочками, живущими в `/ usr` и / или имеющими там библиотечные зависимости (что относится к системам split / usr). Кроме того, оболочка _login_ root не используется системой вообще - пока сама `/ bin / sh` не изменена, все должно быть в порядке. grawity 6 лет назад 1

1 ответ на вопрос

1
Kurtis Rader

Если в качестве оболочки по умолчанию для входа в систему используется fish, SHELLбудет задано значение env var для fish. Многие программы (например, vim, tmux) используют его как оболочку, используемую для выполнения команд оболочки, если вы явно не настроите их для использования другой оболочки (например, / bin / sh ). Поскольку эти команды оболочки с высокой вероятностью содержат синтаксис оболочки POSIX, команды fish не будут корректно выполняться. Это означает, что вы, скорее всего, будете испытывать случайные, разочаровывающие проблемы.

Вы можете установить fish в качестве оболочки по умолчанию для входа. Я делаю это на двух моих основных компьютерах. Но я опытный пользователь UNIX, который знает о потенциальных проблемах, которые это может вызвать. Я также знаю, как обойти их. Например, добавив set shell=/bin/shв мой конфигурационный файл vimrc. Если вы неопытны или просто не хотите иметь дело с дополнительной конфигурацией, которая потребуется, лучше оставить для вашей оболочки входа bash или другую оболочку POSIX. Затем запустите рыбу из этой раковины в интерактивном режиме. Это также безопаснее, потому что вы с большей вероятностью испортите конфигурацию рыбы таким образом, что вы не сможете начать интерактивную сессию рыбы. Если вы сделали fish своей стандартной оболочкой для входа, вы не сможете войти.

Суть в том, что если вы неопытный пользователь UNIX CLI или новичок в fish, не устанавливайте его в качестве оболочки по умолчанию. Если вы опытный пользователь UNIX CLI и уже несколько недель используете fish и уверены, что вы можете правильно настроить его, не стесняйтесь сделать его оболочкой по умолчанию.

Вопрос не столько в «вашей оболочке по умолчанию», сколько в «оболочке root по умолчанию». Вероятно, это различие и важность учетной записи root являются причинами, по которым вопрос возник в первую очередь. Ваш ответ, кажется, игнорирует этот аспект, вы вообще не упоминаете root. Означает ли это, что ваш ответ относится и к некорневым и корневым аккаунтам? и вы не видите необходимости относиться к ним по-другому в этом вопросе? Kamil Maciorowski 6 лет назад 1
Нет, я не думаю, что есть какая-либо причина по-разному относиться к учетным записям root и не-root по отношению к этому вопросу. Вот почему я не сформулировал свой ответ с точки зрения учетной записи root. Вероятность возникновения проблем на самом деле выше для учетной записи без полномочий root, поскольку вы, скорее всего, будете запускать приложения (например, IDE), на которые влияет оболочка по умолчанию, которая не совместима с POSIX. Kurtis Rader 6 лет назад 0

Похожие вопросы