59
задан 26 October 2018 в 17:43

1 ответ

Команды adduser и addgroup.

Вот шаблон для Докера, можно использовать в busybox средах (альпийские), а также находящиеся в Debian среды (Ubuntu, и т.д.):

ENV USER=docker
ENV UID=12345
ENV GID=23456

RUN addgroup --gid "$GID" "$USER" \
    && adduser \
    --disabled-password \
    --gecos "" \
    --home "$(pwd)" \
    --ingroup "$USER" \
    --no-create-home \
    --uid "$UID" \
    "$USER"

Примечание следующее:

  • --disabled-password предотвращает подсказку для пароля
  • --gecos "", обходит подсказку для "Полного имени" и т.д. в находящихся в Debian системах
  • --home "$(pwd)" наборы дом пользователя к WORKDIR. Вы не можете хотеть это.
  • --no-create-home предотвращает хлам, скопированный в каталог от /etc/skel

, описание использования для этих приложений пропавшие без вести длинных флагов существующее в коде для [1 112] adduser и addgroup.

следующие подробные флаги должны работать оба в альпийском, а также debian-производных:

adduser

BusyBox v1.28.4 (2018-05-30 10:45:57 UTC) multi-call binary.

Usage: adduser [OPTIONS] USER [GROUP]

Create new user, or add USER to GROUP

        --home DIR           Home directory
        --gecos GECOS        GECOS field
        --shell SHELL        Login shell
        --ingroup GRP        Group (by name)
        --system             Create a system user
        --disabled-password  Don't assign a password
        --no-create-home     Don't create home directory
        --uid UID            User id

Одна вещь отметить состоит в том, что, если --ingroup не установлен затем, GID присвоен для соответствия UID. Если GID, соответствующий обеспеченному UID уже, будет существовать, то adduser перестанет работать.

addgroup

BusyBox v1.28.4 (2018-05-30 10:45:57 UTC) multi-call binary.

Usage: addgroup [-g GID] [-S] [USER] GROUP

Add a group or add a user to a group

        --gid GID  Group id
        --system   Create a system group

я обнаружил все это при попытке записать мою собственную альтернативу проект fixuid для рабочих контейнеров как хосты UID/GID.

Мой entrypoint сценарий помощника может быть найден на GitHub.

намерение состоит в том, чтобы предварительно ожидать тот сценарий как первый аргумент [1 111], который должен заставить Докера выводить UID, и GID от соответствующего связывают, монтируются.

переменная среды "ШАБЛОН" может потребоваться, чтобы определять, где полномочия должны быть выведены из.

(Во время записи у меня нет документации для моего сценария. Это находится все еще в списке ожидающих выполнения задач!!)

29
ответ дан 1 November 2019 в 11:39

Другие вопросы по тегам:

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