다음 명령을 사용하여 일부 디렉토리를 만들었습니다.mkdir -pm 700 /tmp/a/b/c
제가 요청한 권한 이 아닌 다른 /tmp/a
권한이 있다는 사실에 놀랐습니다 .775
700
mkdir
지정된 패턴을 마지막으로 생성된 디렉터리에만 적용하고 상위 디렉터리는 무시하는 이유가 있나요 ?
답변1
이는 POSIX에서 필요합니다.기준을 위한 mkdir
:
옵션 의 경우 -p
:
누락된 중간 경로 이름 구성 요소를 만듭니다.
다음은:
그런 다음 다음 매개변수를 사용하여 chmod() 함수를 호출합니다.
- mkdir() 호출과 동일한 경로 매개변수
- 모드 매개변수 값 (S_IWUSR|S_IXUSR|~filemask)&0777. 여기서 filemask는 프로세스의 파일 모드 생성 마스크입니다.
이는 chmod
경로의 마지막 디렉터리에서만 실행된다는 의미입니다.