Подготовленный в Microsoft deb-пакет с Open R принудительно заменяет /bin/sh на bash
Как сообщает opennet.ru компания Microsoft опубликовала deb-пакет (microsoft-r-open-mro-3.5.0) с инструментарием Open R (вариант языка R от Microsoft) для Debian и Ubuntu, в установочном сценарии которого обнаружена серия недопустимых оплошностей. В частности, скрипт настройки, вызываемый после установки пакета (postinstall), удаляет /bin/sh, после чего создает символическую ссылку /bin/sh на /bin/bash. Если в системе нет /bin/bash то /bin/sh остается удаленным и пользователь получает неработающее окружение.
Примечательно, что на идентичный код удаления /bin/sh в RPM-пакетах пользователи обращали внимание еще в 2016 году. В то время проблема осталась нерешенной, а представитель Microsoft лишь пояснил, что /bin/sh заменяется, так как в Ubuntu в качестве shell по умолчанию применяется dash, а shell-обвязка над Microsoft R Server может работать только в bash. На этот раз критика не осталась без внимания и инженеры из Microsoft обновили deb- и rpm-пакеты, удалив в скрипте postinstall строки замены /bin/sh, вместо которых задействованы dpkg-divert для DEB и update-alternatives для RPM.
Кроме того, в скриптах есть и другие ошибки, например, в случае наличия уже установленного оригинального R, установочный скрипт завершается ошибкой, а в случае удаления пакета Microsoft удаляет и исполняемые файлы оригинального R (/usr/bin/R, /usr/bin/Rscript). Скрипт prerm: