Новости и события » Hi-Tech » Критическая проблема в NPM 5.7, приводящая к смене прав доступа на системные каталоги

Критическая проблема в NPM 5.7, приводящая к смене прав доступа на системные каталоги

Как сообщает opennet.ru в опубликованном вчера выпуске пакетного менеджера NPM 5.7.0 выявлена серьезная проблема, которая может привести к нарушению нормальной работы компонентов операционной системы. При запуске npm с использованием утилиты sudo (не важно, какая команда выполняется, достаточно запустить "sudo npm --help" или "npm update -g") рекурсивно меняются права доступа на каталоги, относительно корневого префикса npm. Судя по отчетам пострадавших пользователей, после подобного изменения могут возникнуть проблемы с загрузкой операционной системы и работой локальных приложений. Проблема проявляется только при запуске npm с использованием утилиты sudo.

При запуске с применением sudo вместо root в качестве владельца для системных каталогов, включая все содержимое /etc, /usr и /boot, устанавливается текущий непривилегированный пользователь. Источником проблемы стал переход версии 5.7.0 на новую реализацию mkdir, сохраняющую исходные права доступа и владельца при запуске с правами root с использованием sudo.

Проблема уже решена в обновлении 5.7.1. Массовых проблем удалось избежать благодаря тому, что в репозитории выпуски npm 5.7.x были помечены как экспериментальные и не доставлялись через каналы обновления стабильных релизов. При этом на сайте анонс был опубликован в форме, не отличающейся от объявлений стабильных релизов, что ввело в заблуждение некоторых пользователей, которые попытались перевести на NPM 5.7 свои рабочие системы. Также интересно, что сообщение об ошибке с описанием проблемы было отправлено за неделю до релиза 5.7.0, но осталось без внимания разработчиков.

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

RPM: for p in $(rpm -qa); do rpm --setperms $p; do rpm --setugids $p; done DEB: dpkg --get-selections | grep install | grep -v deinstall | cut -f1 | xargs apt-get --reinstall -y --force-yes install FreeBSD: mtree -U -f /etc/mtree/BSD.root.dist mtree -U -f /etc/mtree/BSD.var.dist mtree -U -f /etc/mtree/BSD.include.dist mtree -U -f /etc/mtree/BSD.sendmail.dist mtree -U -f /etc/mtree/BSD.usr.dist.


Сучасні та економічні методи зведення будівель

Сучасні та економічні методи зведення будівель

У сучасному будівництві швидкість, економічність та універсальність є ключовими факторами при виборі технологій і матеріалів. Швидкомонтовані сталеві будівлі повністю відповідають цим вимогам, завдяки чому вони набувають великої популярності у різних сферах...

сегодня 10:39

Свежие новости Украины на сегодня и последние события в мире экономики и политики, культуры и спорта, технологий, здоровья, происшествий, авто и мото

Вверх