
사용 중일 때는 764 권한 mkdir -pm 764 a/b/c
만 얻었고 기본 권한이 있습니다 . 왜 그럴까? 모든 디렉토리에 764 권한이 부여되지 않는 이유는 무엇입니까?c
a
b
답변1
유틸리티 mkdir
는 단일 디렉터리를 생성합니다. 이 옵션을 사용하면 -m
디렉터리가 생성되고 chmod
주어진 권한으로 해당 디렉터리에서 효과적으로 실행됩니다(그러나 이는 두 단계로 발생하지 않으며 일부 상황에서는 중요할 수 있음).
을 사용하면 -p
아직 존재하지 않는 중간 디렉터리가 생성됩니다. 주어진 모드는 -m
여전히 경로 이름의 성에만 적용됩니다. 왜냐하면 이것이 여러분이 생성하려는 디렉토리이기 때문입니다(중간 디렉토리는 주어진 모드로 해당 디렉토리를 생성할 수 있도록 생성됩니다).
그만큼POSIX 표준mkdir
각 중간 디렉토리는 쉘의 umask 값이 있는 (S_IWUSR|S_IXUSR|~filemask)&0777
모드 로 생성되어야 한다고 가정합니다 .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