이 줄을 줄이는 방법을 찾으려고 노력 중입니다( 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
만들 수 있는 값이 있습니까 (기본값은 이라고 가정 )?700
600
0022
저도 그렇게 해봤는데
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