Профиль: Аноним (вход | регистрация) неRU opennet.me  
The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"В NPM 12.0 по умолчанию отключён запуск скриптов при установке пакетов"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"В NPM 12.0 по умолчанию отключён запуск скриптов при установке пакетов"  +/
Сообщение от opennews (??), 09-Июл-26, 21:34 
Опубликован выпуск пакетного менеджера NPM 12.0, входящего в поставку Node.js и применяемого для распространения модулей на языке JavaScript. Новая версия примечательна прекращением по умолчанию запуска скриптов во время установки пакетов. Предполагается, что изменение усложнит проведение атак через компрометацию зависимостей и замедлит распространение червей, активируемых из установочных скриптов...

Подробнее: https://www.opennet.me/opennews/art.shtml?num=65878

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

5. Сообщение от q (ok), 09-Июл-26, 22:04   +/
Неужели кто-то догадался, что пакет = метаданные + статичные файлы? Если ваш пакетный менеджер гоняет скрипты при установке-удалении, то это фигня на палочке, а не пакетный менеджер. Если твой дистр не уместился в наипростейшую концепцию "пакет = метаданные + статичные файлы", то твой дистр -- галиматья. На данный момент, все дистры галиматья, кроме NixOS/Guix.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #9, #11, #19

6. Сообщение от Аноним (6), 09-Июл-26, 22:07   +/
не поможет
Ответить | Правка | Наверх | Cообщить модератору

7. Сообщение от Ivan_83 (ok), 09-Июл-26, 22:31   –3 +/
А вот в windows XP до этого додумались раньше лет на 20 :)
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #42

9. Сообщение от Аноним (9), 09-Июл-26, 22:44   +3 +/
Скажи это твоим любимым деб пакетам
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #12

10. Сообщение от Аноним_83 (?), 09-Июл-26, 22:52   +3 +/
Не прошло и 500 лет
Ответить | Правка | Наверх | Cообщить модератору

11. Сообщение от Аноним (11), 09-Июл-26, 22:54   +4 +/
когда ставишь какой-нибудь ssh сервис, то ключи /etc/ssh/ssh_host_* должны поставляться как статичные файлы или генерироваться специальным скриптом, который просто идет отдельно от ssh?
Т.е. можно ли сделать любой пакетный менеджер нормальным, если вынести все скрипты в отдельный обязательный пакет и дергать их в зависимости от "метаданных"?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #14, #23, #30

12. Сообщение от Аноним_83 (?), 09-Июл-26, 23:10   +/
>деб пакетам

ты про зипарь, набитый скриптами запускающимися от рута?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9

13. Сообщение от localhostadmin (ok), 09-Июл-26, 23:11   –3 +/
А зачем это вообще было нужно? Не представляю в каких сценариях может понадобиться выполнение произвольного кода при установке пакета
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #16, #26, #27, #59

14. Сообщение от Аноним_83 (?), 09-Июл-26, 23:12   –4 +/
>когда ставишь какой-нибудь ssh сервис, то ключи /etc/ssh/ssh_host_* должны поставляться как статичные файлы или генерироваться специальным скриптом, который просто идет отдельно от ssh?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11 Ответы: #20, #33, #55

16. Сообщение от Аноним (16), 09-Июл-26, 23:18   +1 +/
ldconfig при любом обновлении в /usr/lib
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13

19. Сообщение от Аноним (19), 09-Июл-26, 23:40   +/
> На данный момент, все дистры галиматья, кроме NixOS/Guix.

flake.nix почему-то за скобками...
Сравнивать пакеты дистрибутива и NPM - такое себе.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

20. Сообщение от Аноним (-), 09-Июл-26, 23:54   +/
задача пакетного менеджера оставить пользователя с нерабочим приложением и необходимостью запускать какие-то скрипты с какими-то параметрами, угу.

А скрипт я должен сам написать или где-то взять? Его можно было бы положить в пакет, но в чем тогда будет отличие от запуска скрипта тем же пакетным менеджером?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14 Ответы: #25, #57, #65

21. Сообщение от Аноним (21), 09-Июл-26, 23:56   +/
Что это за ЯП такой которому нужен свой пакетный менеджер и столько суеты с ним? Зачем его вообще использовать?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #22, #37, #47

22. Сообщение от Аноним (27), 10-Июл-26, 00:00   –1 +/
node.js
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21

23. Сообщение от Аноним (23), 10-Июл-26, 00:00   +/
Ничего не мешает оформить это действие в виде метаданных пакета. Пусть пакетный менеджер сам выполняет необходимые действия, которые описаны в метаданных.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11 Ответы: #29

24. Сообщение от Аноним (24), 10-Июл-26, 00:02   +1 +/
И только на третий день индеец по прозвищу «Зоркий глаз» заметил, что в тюрьме не было четвертой стены…
Ответить | Правка | Наверх | Cообщить модератору

25. Сообщение от Аноним2 (?), 10-Июл-26, 00:09   +/
В ansible конфигурация сервера описывается одними лишь YAML-файлами, никаких скриптов. И это работает.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20 Ответы: #28, #40

26. Сообщение от Аноним (-), 10-Июл-26, 00:11   +2 +/
по разному бывает. Иногда в скриптах идет сборка нативных компонентов, которые линкуются к библитекам с хоста. Из альтернатив — носить все зависимости с собой или поддерживать пакеты для дистрибутивов.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13 Ответы: #38

27. Сообщение от Аноним (27), 10-Июл-26, 00:15   +/
Ну вот раньше был флеш популярным. flashplugininstaller скачивал с сайта адобе и настраивал блоб.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13 Ответы: #44

28. Сообщение от Аноним (-), 10-Июл-26, 00:19   +2 +/
вот только анзибл это не пакетный менеджер. И одними yaml-файликами там дело не обходится — во-первых jinja2 во все поля, а во-вторых там предлагается писать модули на питоне на все нестандартные хотелки
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25

29. Сообщение от Аноним (-), 10-Июл-26, 00:25   +1 +/
Чтобы пакетный менеджер выполнил какие-то действия, которые описаны в метаданных, он должен знать как это сделать — либо его код содержит всю логику для всех пакетов (для простых случаев работает), либо где-то лежит россыпь скриптов.

Ну и еще момент, что описание "необходимых действий" это и есть по факту скрипт, который выполняет пакетный менеджер

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23

30. Сообщение от q (ok), 10-Июл-26, 02:48   +/
Догадываешься ли ты о том, что ключи — это часть состояния системы? sshd.service может иметь ExecStart=башскрипт.sh, который, в свою очередь, сгенерит тебе ключи, а уже потом выполнит exec sshd. Любой нормальный сервис должен уметь запускаться, имея абсолютно пустую state directory.

И именно в этом примере, ключи надобно хранить в /var, а не в /etc, ибо /etc может быть смонтирован как readonly. Писать в /etc -- абсолютно трэшовая практика, о чем многие здесь присутствующие даже не догадываются. /etc должен формироваться еще ДО запуска системы, точка. Буквально. Как только ядро смонтировало /etc, всё. Нельзя туда писать. Вообще. Даже если "просто хочу подправить конфиг быстренько". Нельзя и точка. Хочешь изменить поведение системы -- протестируй новый конфиг в виртуалке, затем создай новую generation хоста, а затем перезагрузись.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11 Ответы: #34, #45

33. Сообщение от Аноним (33), 10-Июл-26, 03:27   +2 +/
> делаешь руками

У нас в ДЦ смонтировали 20 стоек. Чтобы через час везде руками нагенерил. Время пошло.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14 Ответы: #56, #66

34. Сообщение от windows10email (ok), 10-Июл-26, 04:02   +1 +/
> Догадываешься ли ты о том, что ключи — это часть состояния системы?

Догадываешься ли ты, что человек лишь привел пример необходимости запуска триггера, а не спорит о ключах?

DKMS тебе при установке драйвера кто будет генерить?

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

Локаль кто будет генерить при обновлении glibc?

> Любой нормальный сервис должен уметь запускаться, имея абсолютно пустую state directory.

Уметь запускаться, и функционировать как нужно - два разных по своей сути действия.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30 Ответы: #35

35. Сообщение от q (ok), 10-Июл-26, 04:46   –2 +/
> человек лишь привел пример необходимости запуска триггера

А я привел демонстрацию того, что такая необходимость надуманна. Практический пример: в NixOS ни один пакет не имеет скриптов. Там это тупо не предусмотрено. Невозможно добавить скрипт. Понял? Значит, как-то обошлись, и populate state directory on service run -- лишь один из многих способов обойтись без скриптов.

> DKMS тебе при установке драйвера кто будет генерить?

Ты понимаешь бредовость своего вопроса? Сборка происходит ДО формирования пакета, а не ПОСЛЕ его установки мля. Если в твоем дистре при установке пакета происходит СБОРКА, то это хрен собачий, а не дистр. В нормальных дистрах цикл такой: сборка -> получился пакет -> установили пакет. А у тебя хвост виляет собакой: установили пакет -> СБОРКА НАХРЕН.

> Локаль кто будет генерить при обновлении glibc?

Опять-сызнова. Генерация -- это часть сборки мля. Сборка предшествует пакету.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34 Ответы: #41, #53

36. Сообщение от Аноним (38), 10-Июл-26, 05:01   +/
Ну да... Компресс спасет от всего. Ровно на время реакции устанавливающего.
Не приучены долго разбираться в тонкостях. Соглашайся и поехали.
Ответить | Правка | Наверх | Cообщить модератору

37. Сообщение от Аноним (38), 10-Июл-26, 05:03   +/
Всё для удобства, а не развития. Хочу вот это - есть уже готовый пакет
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21

38. Сообщение от Аноним (38), 10-Июл-26, 05:05   –1 +/
Мы будем так часто обновлять, что Вы не будете поспевать. Используй скрипт.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26

39. Сообщение от Аноним (38), 10-Июл-26, 05:40   +/
Чтобы отмазка - Я не хотел запускать код, я только хотел посмотреть какие файлы - не работала? Вы даете согласие на исполнение непрочитанного кода?
Ответить | Правка | Наверх | Cообщить модератору

40. Сообщение от МИСАКА (?), 10-Июл-26, 07:47   –1 +/
Ага, потому что ansible это буквально запускала команд обернутся в красивенький уамл на сотню-другую файлов
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25

41. Сообщение от МИСАКА (?), 10-Июл-26, 07:49   +1 +/
Я так смотрю, фанаты Никса оказались ещё менее умненькими, чем были фанаты рача
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35

42. Сообщение от Аноним (42), 10-Июл-26, 07:53   +1 +/
Ты про пакеты msi? Так-то там любой установочный exe творит всё что хочет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #49

43. Сообщение от Аноним (42), 10-Июл-26, 07:55   +1 +/
Вместо того чтобы делать удобную изоляцию они творят что угодно кроме того что нужно.
Ответить | Правка | Наверх | Cообщить модератору

44. Сообщение от Аноним (44), 10-Июл-26, 07:58   +/
Пакеты с ним ничего не скачивали и не настраивали.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27 Ответы: #54

45. Сообщение от Аноним (-), 10-Июл-26, 08:44   +/
> sshd.service может иметь ExecStart=башскрипт.sh

И в чем принципиальное отличие от запуска того же скрипта пакетным менеджером?
В новости скрипты отключают потому что туда пихают всякую каку, ну будет кака запускаться под системд

PS: использовать системд для запуска башпортянок... там нет опции для генерации ssh ключей? ;)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30 Ответы: #61

47. Сообщение от Смузихеб забывший пароль (?), 10-Июл-26, 09:51   +1 +/
нода - это не ЯП
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21

48. Сообщение от Смузихеб забывший пароль (?), 10-Июл-26, 09:54   +/
> параметры "--allow-git" и "--allow-remote" по умолчанию
> теперь выставлены в значение "none",
> что отключает автоматическую загрузку зависимостей
> из Git-репозиториев и по прямым ссылкам на сайты с tar-архивами

Но разве подобное( вместо конкретных версий пакетов тупо ссылка на гит-репу ) не заявлялось чуть ли не одной из крутых фич того же дЭна который Дено ?

Ответить | Правка | Наверх | Cообщить модератору

49. Сообщение от aname (ok), 10-Июл-26, 10:01   +/
Так exe или msi?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #42

50. Сообщение от Соль земли2 (?), 10-Июл-26, 10:06   +/
Вот вирусы и научились сами собирать себя из исходников.
Ответить | Правка | Наверх | Cообщить модератору

52. Сообщение от Аноним (52), 10-Июл-26, 10:40   +2 +/
<зевая> И будет npm approve-scripts --all во всех руководствах по установке.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #62, #63

53. Сообщение от windows10email (ok), 10-Июл-26, 11:02   +/
При чем здесь сборка к адаптации пакета к текущей конфигурации, или текущей конфигурации к пакету?

Угу, можешь таскать за собой /boot/grub/grub.cfg с захардкоженными записями для ядра. Или написать отдельную утилиту для установки ядра.

> Практический пример: в NixOS ни один пакет не имеет скриптов.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35

54. Сообщение от Аноним (27), 10-Июл-26, 14:07   +1 +/
Пакет был flashplugininstaler скачивал блоб с адобосайта и спрашивал согласен ли ты с лицензией, потом устанавливал куда надо.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44

55. Сообщение от Аноним (57), 10-Июл-26, 14:59   +/
> это вообще не задача

это даже не задача ваших рук, запускается демон и генерирует ключи, дело рук может касаться только если есть необходимость их собственноручного импорта, то есть тупого копирования в соответствующую директорию. Идиотизм лишь в том, что это все они называют секурностью.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14

56. Сообщение от Аноним (57), 10-Июл-26, 15:00   +/
а ты руками монтировал эти 20 стоек?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33

57. Сообщение от Аноним (57), 10-Июл-26, 15:10   +/
> задача пакетного менеджера

никому не сдался пакетный системный менеджер когда в нем можно шаманить, это равносильно самому навайбкодить инсталлятор, пакетный менеджер нужен для унификации.

> А скрипт я должен сам написать или где-то взять?

ты должен документацию к устанавливаемому софту прочитать ибо на кой ты его ставишь, а там будет написано, перед тем как запустить ****d демон, запусти команду ****d-keygen. А если автор софта хоть на секунду дружит с логикой, всю рутину он бы засунул бы в понятие "при первом запуске". Вам даже в системГ для этого все дали.

> Его можно было бы положить в пакет, но в чем тогда будет отличие от запуска скрипта тем же пакетным менеджером?

В привилегиях, очевидно ведь, все же идет в сторону изоляции от системы.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20 Ответы: #58

58. Сообщение от Аноним (58), 10-Июл-26, 16:02   +/
> никому не сдался пакетный системный менеджер когда в нем можно шаманить

пока что практика показывает, что никому не сдался тот, в котором нельзя шаманить

> ты должен документацию к устанавливаемому софту прочитать ибо на кой ты его ставишь

у меня в системе больше 3 тыщ пакетов и большую часть я напрямую не ставил. Остается только перечитать доки для мульёна скачанного npm

> А если автор софта хоть на секунду дружит с логикой, всю рутину он бы засунул бы в понятие "при первом запуске"

ну или в скрипт, да

> В привилегиях, очевидно ведь, все же идет в сторону изоляции от системы.

угу. Просто в упомянутой документации будет сказано запустить скрипт от рута.
Или же можно научить пакетный менеджер запускать скрипты с нужными привилегиями

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #57 Ответы: #60

59. Сообщение от Джон Титор (ok), 10-Июл-26, 16:46    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13

60. Сообщение от Аноним (57), 10-Июл-26, 16:48   +/
> пока что практика показывает, что никому не сдался тот, в котором нельзя шаманить

на кой разработчику еще шаманить на n+1 пакетном менеджере под каждый дристыр? фетиш такой? повторяю - пакетный менеджер это унификация дристровая, если там еще нужно шамать - в топку такой дристыр.

> у меня в системе больше 3 тыщ пакетов и большую часть я напрямую не ставил. Остается только перечитать доки для мульёна скачанного npm

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

> ну или в скрипт, да

да хоть в скрипт, но дергать его не пользователь не пакетный менеджер не обязан, зачем перекладывать собственную функцию на кого-то? А если в системе нет интерпретатора того или иного скрипта, что тогда - ставить? Серьезно?

> Или же можно научить пакетный менеджер запускать скрипты с нужными привилегиями

Слушай, хорошая идея, архиватор с автораном :)

пс: раньше выдернул мышь или клаву из разЪема, и куй вставив обратно она будет работать, а  щас, пихай любую хрень под видом юсб и получи клавиатурный ввод и всякую хрень :)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #58

61. Сообщение от Аноним (57), 10-Июл-26, 16:54   +/
> И в чем принципиальное отличие от запуска того же скрипта пакетным менеджером?

как в чем? в явном и не явном исполнении стороннего кода, в случае с пакетным менеджером ты не контроллируешь процесс этого запуска, это своего рода авторан как с усб, сразу запустит код, а в случае с системГ это типа запись в реестровый авторан, который можно еще обнаружить и т.д.

Вы не понимаете одно, это тупо произвольное исполнение стороннего кода, а такое поведение с точки зрения безопасТности - бред!!!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #45 Ответы: #68

62. Сообщение от Аноним (57), 10-Июл-26, 17:09   +/
да не, давно уже curl | bash зачем людей напрягать, и так загружены 20-ю стойками в дц.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #52

63. Сообщение от онанист (?), 10-Июл-26, 17:51   +/
так оно не для решения проблемы, а для смещения ответственности,
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #52

65. Сообщение от Аноним (65), 10-Июл-26, 18:15   +/
> задача пакетного менеджера оставить пользователя с нерабочим приложением

Чего это вдруг "нерабочим"? Ключи генерятся за несколько минут, включая время на чтение мана для освежения в памяти аргументов командной строки. А если человек с полномочиями ставить софт не осилил этот вопрос, то ssh ему противопоказан.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20

66. Сообщение от Аноним (65), 10-Июл-26, 18:22   +/
Если у вас в ДЦ монтируют по 20 стоек и при этом не имеют кастомного установщика ОС, который поставит ssh, сгенерирует ключи и автоматом отправит открытые ключи в какую-то центраньную репу, то сиди и жди, пока эникейщик обойдет все ваши новые стойки.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33

67. Сообщение от Аноним (65), 10-Июл-26, 18:26   +/
Представляю, какой вой поднимется. Ждем в ближайшее время NPM 12.0.1 с возвращенной возможностью запуска скриптов.
Ответить | Правка | Наверх | Cообщить модератору

68. Сообщение от Аноним (11), 10-Июл-26, 18:43   +/
на любом компе в принципе постоянно происходит запуск стороннего кода. Упомянутый "системГ" вообще ни разу не "явное" исполнение кода — я его явно никогда не запускал и даже явно не устанавливал

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

В общем — скрипты в пакетах плохо, остальные варианты не лучше, серебряной пули до сих пор нет

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #61


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2026 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру