Сбой Node Setuid на Docker Apline - PullRequest
0 голосов
/ 29 мая 2018

Я использую Node 6 внутри образа Alpine 3.7 Docker.Следующая команда:

node -e "process.setuid(1002)"

аварийно завершает работу, генерируя Ошибка сегментации (сбрасывается ядро) .Я пытался с Node 10, но я получаю ту же ошибку.1002 является действительным пользователем.Я пытался с несколькими другими пользователями, но безуспешно.

Мой образ докера запускается на экземпляре Google Compute Engine с операционной системой по умолчанию «Оптимизированная для контейнеров ОС 66-10452.89.0» (рабочая версия).

Ответы [ 2 ]

0 голосов
/ 06 апреля 2019

(Отказ от ответственности: я руководитель проекта Adélie Linux.)

Node.js устанавливает размер стека своих потоков ввода / вывода равным PTHREAD_STACK_MIN, что недостаточно для обработки сигналов.musl libc использует сигналы для реализации setuid, потому что системный вызов ядра Linux ведет себя небезопасно в многопоточном программном обеспечении.

Более чем на Adélie Linux , мы пропатчели Node дляубедитесь, что это не вызывает сбой.

0 голосов
/ 30 мая 2018

setuid внутри Docker сложно.Разве вы не можете просто запустить процесс Node.js с нужным пользователем?

...