programing

알파인을 기본 이미지로 사용할 때 사용자를 추가하려면 어떻게 해야 합니까?

instargram 2023. 9. 19. 20:46
반응형

알파인을 기본 이미지로 사용할 때 사용자를 추가하려면 어떻게 해야 합니까?

사용하고 있습니다.alpine(또는 Alpine 기반 이미지)를 내 Docker 파일의 기본 이미지로 지정합니다.사용자를 만들려면 어떤 지침을 추가해야 합니까?

결국 이 사용자를 사용하여 컨테이너에 넣을 애플리케이션을 실행하여 루트 사용자가 실행하지 않도록 하겠습니다.

알파인은 명령을 사용합니다.adduser그리고.addgroup사용자 및 그룹을 생성하기 위해 사용할 수 있습니다.useradd그리고.usergroup).

FROM alpine:latest

# Create a group and user
RUN addgroup -S appgroup && adduser -S appuser -G appgroup

# Tell docker that all future commands should run as the appuser user
USER appuser

의 깃발은.adduser다음과 같습니다.

용도: adduser [OPTIONS] USER [GROUP]
새 사용자 만들기 또는 그룹에 사용자 추가
-hDIR 홈 디렉토리-g GECOS GECOS 필드-s SHELL 로그인 셸-GRP그룹-S 시스템 사용자 생성-D 암호 할당 안 함-H 홈 디렉토리를 만들지 않습니다.-u UID 사용자 ID-k SKEL 스켈레톤 디렉토리(/etc/skel)

새 사용자 공식 문서 추가

명령은.adduser그리고.addgroup.

다음은 debian 기반 환경(Ubuntu 등)뿐만 아니라 busybox 환경(알파인)에서 사용할 수 있는 Docker용 템플릿입니다.

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

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

다음 사항에 유의합니다.

  • --disabled-password암호를 묻는 메시지 표시 안 함
  • --gecos ""Debian 기반 시스템에서 "Full Name" 등에 대한 프롬프트를 우회합니다.
  • --home "$(pwd)"사용자의 집을 WORKDIR로 설정합니다.당신은 이것을 원하지 않을지도 모릅니다.
  • --no-create-home디렉터리에 크래프트가 복사되는 것을 방지합니다./etc/skel

이러한 응용 프로그램에 대한 사용 설명에 adduseraddgroup 코드에 있는 긴 플래그가 없습니다.

다음과 같은 긴 형태의 깃발은 알파인과 데비안 파생물 모두에서 작동해야 합니다.

사용자 추가

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와 일치하도록 할당됩니다.제공된 UID에 해당하는 GID가 이미 존재하는 경우 adduser가 실패합니다.

그룹추가

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

컨테이너를 호스트 UID/GID로 실행하는 fixuid 프로젝트에 대한 대안을 직접 작성하려고 하다가 이 모든 것을 발견했습니다.

나의 진입점 도우미 스크립트는 깃허브에서 확인할 수 있습니다.

의도는 그 스크립트를 첫번째 인수로 추가하는 것입니다.ENTRYPOINT도커가 관련 바인딩 마운트에서 UID 및 GID를 추론하도록 해야 합니다.

사용 권한이 어디에서 유추되어야 하는지 결정하기 위해 환경 변수 "TEMPATE"가 필요할 수 있습니다.

(작성 당시 대본에 대한 설명서가 없습니다.아직도 할 일 목록에 있어요!!"

.shadows을 가져다 줍니다.useradd&usermod.

adduser몇 같은 다.

$ sudo adduser --disabled-password root
adduser: user 'root' in use

그렇지만usermod그렇지 않음:

$ sudo apk add shadow
$ sudo usermod --unlock root

언급URL : https://stackoverflow.com/questions/49955097/how-do-i-add-a-user-when-im-using-alpine-as-a-base-image

반응형