Я только что заметил, что в OS X 10.6.4 оболочка root установлена в /bin/sh . Есть проблема безопасности или что-то с запуском Bash?

4 ответа4

5

Ubuntu использует dash в качестве системной оболочки по умолчанию для скорости вместо sh. Я думаю, если это действительно sh, то, вероятно, это та же причина.

Здесь есть веские причины, по которым bash на самом деле не лучший выбор в качестве системной оболочки по умолчанию: https://wiki.ubuntu.com/DashAsBinSh

3

Разве не /bin /sh Bash?

Сделайте 'ls -lisa' в /bin. Затем выполните «./sh -version» в каталоге, и sh идентифицирует себя как GNU bash.

2

Я считаю, что по соображениям совместимости с Unix корневой оболочкой по умолчанию является /bin /sh.

Смотрите http://en.wikipedia.org/wiki/Bourne_shell

В какой-то момент /bin /sh был оболочкой zsh, я считаю. Apple изменила его на bash, потому что zsh не был POSIX-совместимым или каким-то другим.

РЕДАКТИРОВАТЬ:

Исходный код Makefile, показывающий, что /bin /sh создан из исходного кода bash.

РЕДАКТИРОВАТЬ № 2:

Скучно, я проверил. Похоже, что Mac OS X 10.1.5 была последней версией, которая использовала zsh для /bin /sh. Это было изменено на Bash в 10.2.

0

Установка логина / интерактивной оболочки root в /bin/bash не влияет на сценарии оболочки, которые имеют #!/bin/sh как их линия Шебанга. Для этих сценариев любой файл действует как /bin/sh будь то автономный исполняемый файл, символическая или жесткая ссылка будет использоваться для интерпретации этого сценария. Аналогично для сценариев запускаются из командной строки следующим образом: sh script .

Вполне нормально установить для интерактивной оболочки пользователя root значение /bin /bash.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .