"mkdir -pm 764 a/b/c"를 사용하여 생성된 중간 폴더의 권한에 대해

"mkdir -pm 764 a/b/c"를 사용하여 생성된 중간 폴더의 권한에 대해

사용하면 기본 권한 으로 764 권한 mkdir -pm 764 a/b/c 만 얻습니다 . 왜 그럴까요? 모든 디렉터리에 764 권한이 부여되지 않는 이유는 무엇입니까?cab

답변1

mkdir유틸리티는 디렉토리를 생성합니다. 이 기능을 사용하면 -m디렉토리가 생성되고 chmod주어진 권한으로 해당 디렉토리에서 효과적으로 실행됩니다(비록 두 단계로 수행되지는 않지만 경우에 따라 중요할 수 있음).

을 사용하면 -p아직 존재하지 않는 중간 디렉터리가 생성됩니다. 주어진 패턴은 -m여전히 ​​경로 이름의 성에만 적용됩니다. 이는 생성하려는 디렉터리이기 때문입니다(중간 디렉터리는 주어진 패턴을 사용하여 디렉터리를 생성할 수 있도록 생성됩니다).

이것POSIX 표준mkdir(S_IWUSR|S_IXUSR|~filemask)&0777각 중간 디렉토리는 쉘의 umask 값 패턴을 사용하여 생성되어야 한다고 가정합니다 .filemask

"응용 프로그램 사용" 섹션에 다음과 같이 나와 있습니다.

[...] 에 의해 생성된 중간 경로 이름 구성 요소의 경우 파일 모드 생성 마스크에 관계없이 항상 하위 디렉터리를 생성할 수 있도록 mkdir모드가 기본적으로 수정됩니다 u+ wx. 중간 디렉터리에 다른 최종 권한이 필요한 경우 나중에 를 사용하여 변경할 수 있습니다 chmod.

이는 사용자 쓰기 또는 실행 권한이 없는 디렉터리를 생성할 수 있도록 중간 디렉터리의 모드가 설정되어 있음을 의미합니다. 중간 디렉터리에 실행 및/또는 쓰기 권한도 부여되지 않은 경우 디렉터리 경로의 마지막 부분은 생성되지 않습니다.

상황에 따라 활용해보세요

mkdir -p -m 764 a/b/c
chmod 764 a/b
chmod 764 a

이전에 디렉토리가 존재하지 않았다고 확신하는 경우 다음을 사용하십시오.

mkdir -p -m 764 a/b/c
chmod -R 764 a

관련 정보