Часто ли zsh устанавливается на рабочих серверах? [закрыто]

xterm делает несколько (различных) проверок для путей, участвующих в выполнении команды. Вот краткое описание:

  • если вы скажете "xterm -e command", xterm будет полагаться на существующие настройки $SHELL и/или конфигурацию luit (которая также использует $SHELL другим способом), чтобы решить, будет ли команда успешной.
  • если вы говорите "xterm command" (без опции -e), xterm рассматривает это как особый случай, требуя, чтобы это было абсолютное имя пути. Здесь и возникает обычная проблема.

В изменениях, начиная с патча #301 и далее (и за исключением специального случая без -e) xterm проверяет существующий $SHELL, чтобы убедиться, что он указан в /etc/shells. (Здесь длинная история, но вкратце можно сказать, что это улучшение безопасности...). Если вы прочитаете журнал изменений, то увидите, что для того, чтобы сделать это правильно, потребовалось несколько попыток обработки особых случаев.

Из предоставленной информации:

  • Поскольку вы используете -e в одном случае (из ProcessBuilder) и не используете в другом, возможно, там есть какая-то проблема.
  • Или ваш $SHELL может быть не указан в /etc/shells.
  • Наконец, может быть какая-то настройка ресурсов (в сочетании с неправильными переменными локали), заставляющая программу неожиданно выполнять luit. Например, если xterm пытается использовать luit, но ресурс localeFilter установлен на относительный путь, это приведет к такой ошибке.

4
27.08.2018, 18:48
3 ответа

zsh— это просто оболочка, она не запускает никаких служб и не поставляется с какой-либо командой setuid. Таким образом, простая установка пакета ничего не даст, пока кто-то или что-то его не использует. Поскольку ему не нужны никакие привилегии, любой пользователь может установить его самостоятельно в своем домашнем каталоге или в любом другом месте, к которому у него есть доступ.

Если бы это не было производственным качеством , можно было бы возразить, что если сделать его оболочкой для входа в систему и пользователя-администратора, возникнет некоторый риск, но с его гораздо более разумным синтаксисом, чем другие оболочки, такие как bashили tcsh, я бы сказал, что это значительно улучшит ситуацию.

Хотя в основном он используется в качестве интерактивной оболочки, я бы сказал, что написание скриптов в zsh, скорее всего, сделает их более безопасными и надежными, чем bashскрипты (посмотрите, сколько людей неосознанно пишут bashскрипты в синтаксисе zsh, когда они забывают заключать свои переменные в кавычки, и как изменение шебанга с #! /bin/bashна #! /bin/zshисправит многие ошибки в их скриптах ).

В любом случае, установка zsh— одна из первых вещей, которые я делаю для всех развертываний серверов во всех местах, где я работал.

Тем не менее, я обычно не делаю его оболочкой для входа любого пользователя по умолчанию, так как некоторые программы нередко ожидают -ориентированную на bash среду.

11
27.01.2020, 20:45

Возможны и другие мнения, но вот мое.

  1. Is installing zsh on production server harmless to the system?

Внедрение нового программного обеспечения редко бывает безвредным. Например, необходимо обеспечить выявление и исправление любых связанных с ним уязвимостей.

  1. Would you allow to install zsh in this case, and why so?

Нет. Хотелось бы, чтобы была определена ощутимая выгода.

  1. Does it make sense to restrict users with bash on production server?

Да, bashэто здорово. :-)И если какая-то нишевая группа пользователей в компании начнет писать zshскрипты без ведома более широких групп поддержки, они обалдеют.

3
27.01.2020, 20:45

Судя по моему опыту, да, установка zsh на производственный сервер является редкостью. При этом я работаю в основном с более «консервативными» клиентами (банками, администрациями и т. д. ), поэтому ваш пробег может варьироваться.

  1. Zsh сама по себе безвредна . Это «просто еще одна оболочка», такая как bash, ksh,... Однако во многих корпорациях политика безопасности заключается в максимальном ограничении поверхности атаки , т.е. требуется. Несмотря на то, что zsh безвреден, его кодовая база может содержать ошибки . Прочтите о Shellshock , если вы еще не знаете об этом.:)
    При этом существует определенная снисходительность к «товарам», таким как наличие vim вместо просто vi. Zsh может попасть в эту категорию.

  2. Не в производстве , не происходит. Помимо уменьшения поверхности атаки, вам также нужно дважды протестировать свои сценарии -один раз с помощью zsh, один раз с помощью bash. Это требует времени и денег.

  3. Я бы не назвал это ограничением bash:Есть ли что-то, что вы можете сделать с помощью zsh, чего нельзя сделать с помощью bash?

Заключительное примечание:bash в значительной степени является отраслевым стандартом . Это оболочка по умолчанию для большинства корпоративных -дистрибутивов (RHEL, SUSE,... ), а также для многих очень популярных дистрибутивов, таких как Debia, Ubuntun...
Я пробовал «новые» снаряды на протяжении многих лет :zsh и fish — вот два из них, которые мне очень понравились. Для домашнего использования, возможно, однако, на работе это bash полностью (и ksh при работе с AIX и т. д. ). В конечном итоге я использую bash и дома, старые привычки не умирают.

3
27.01.2020, 20:45

Теги

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