내가 디렉토리의 소유자이고 읽기 및 쓰기 권한은 있지만 실행 권한은 없다고 가정합니다. 디렉토리 구조는 다음과 같습니다.
x/ (drw-r--r--)
y (-rw-r--r--)
z (-rw-r--r--)
실행 권한이 없으면 디렉터리에 액세스할 수 없다는 것을 알고 있지만 cd
디렉터리에서 파일 이름을 바꾸는 것은 디렉터리에 "쓰기"로 간주될 것이라고 생각했습니다. 놀랍게도 다음 명령은 권한 거부를 제공합니다.
mv x/y x/w
mv
디렉토리에 대한 실행 권한이 필요한 이유 는 무엇 입니까 x
? 이 명령 mv
에 특별한 것이 있나요 ? 내부 mv
용 인가요 cd
? 아니면 무엇인가요?
답변1
읽고 나서이 답변관련 질문에 대해서는 이해한다고 생각합니다.
디렉터리는 파일 목록이며, 해당 디렉터리를 "실행"한다는 것은 디렉터리 목록에 있는 파일 자체의 링크를 따라가는 것을 의미합니다. 따라서 실행 권한이 없기 때문에 x
명령의 x/y
실제 파일 경로를 구문 분석할 수 없습니다. (실제 파일을 얻으려면 의 디렉토리 항목을 따라야 하는데, 이는 "실행"이라는 의미의 일부입니다.)y
mv x/y x/w
y
y
x
x
그러나 사용자에게 실행 권한은 부여하고 쓰기 권한은 부여하지 않으면 다음과 같이 x
파일을 내부에서 x
외부로 복사할 수 있습니다.x
chmod u+x-w x
cp x/y y