SSH 개인 키의 내용이 포함된 파일을 자동으로 생성하려면 umask 값을 수정하세요.

SSH 개인 키의 내용이 포함된 파일을 자동으로 생성하려면 umask 값을 수정하세요.

이 줄을 줄이는 방법을 찾으려고 노력 중입니다( CI_PRIVATE_SSH_KEY이미 설정됨).

mkdir -p "${HOME}/.ssh/"
chmod 700 "${HOME}/.ssh/"
echo "${CI_PRIVATE_SSH_KEY}" > "${HOME}/.ssh/id_rsa"
chmod 600 "${HOME}/.ssh/id_rsa"

이것이 내가 지금까지 가지고 있는 것입니다:

(umask 077; mkdir -p "${HOME}/.ssh/"; echo "${CI_PRIVATE_SSH_KEY}" > "${HOME}/.ssh/id_rsa")

group하지만 + 권한 없이 디렉토리가 생성되었기 때문에 이는 제대로 작동하지 않습니다 other.

그래서 내 질문은: 디렉터리 와 파일을 umask만들 수 있는 값이 있습니까 (기본값은 이라고 가정 )?7006000022

저도 그렇게 해봤는데 177그것도 안되네요.

답변1

@Jeff Schaller에 동의합니다. chmod는 umask에 비해 명확하게 표시됩니다. 연산자로 라이너를 구축
하고 디렉터리의 기본 권한을 644로 변경합니다. bash는 연산자의 왼쪽에서 오른쪽으로 명령을 실행하려고 시도하고 모든 "왼쪽" 명령이 상태 0을 반환하는 경우에만 계속합니다 .&&
.ssh
&&

mkdir -p "${HOME}/.ssh/" && chmod 644 "${HOME}/.ssh/" && echo "${CI_PRIVATE_SSH_KEY}" > "${HOME}/.ssh/id_rsa" && chmod 600 "${HOME}/.ssh/id_rsa"

또는 umask 133 .ssh, 177 키,

(umask 133; mkdir -p "${HOME}/.ssh/";umask 177; echo "${CI_PRIVATE_SSH_KEY}" > "${HOME}/.ssh/id_rsa")

답변2

umask 077은 다음을 수행합니다.

  • 권한 700으로 디렉터리 만들기
  • 권한이 600인 파일을 만듭니다.
    ➜ umask 077
    ➜ mkdir foo; ls -ld foo
    drwx------  2 richard  staff  64 13 Oct 12:42 foo
    ➜ touch foo/bar; ls -l foo/bar
    -rw-------  1 richard  staff  0 13 Oct 12:42 foo/bar

관련 정보