명령 전에 umask 000을 사용했음에도 불구하고 쉘 스크립트가 "권한 거부됨"을 얻습니다.

명령 전에 umask 000을 사용했음에도 불구하고 쉘 스크립트가 "권한 거부됨"을 얻습니다.

일부 파일을 새 디렉토리에 복사하려고 시도하는 쉘 스크립트(build.sh)가 있습니다. 그러나 그것은 말합니다:

mkdir: '/files/ondisk/shared//comp/auto/bleeding-1169-b28d31a' 디렉터리를 생성할 수 없습니다: 권한이 거부되었습니다.

스크립트를 실행할 때.

명령은 다음과 같습니다:

( umask 000; mkdir -p "${BASE}/${TARGET}" ) || exit -1
( umask 000; cp -r ${STORE} "${BASE}/${TARGET}" ) || exit -1

umask 000은 해당 위치에 쓸 수 있도록 보장하지 않습니까?

답변1

경로 이름의 이중 슬래시가 이상해 보입니다. 어쩌면 당신은 글을 쓸 권한이 없을 ${BASE}수도 있습니다 /files/ondisk/shared. 이 값은 복사되는 기존 디렉터리 가 아니라 umask생성된 디렉터리 및 파일의 권한에만 영향을 미치므로 중요하지 않습니다 .mkdircp

관련 정보