쓰기 불가능한 파일 이동 및 쓰기 불가능한 디렉토리 이동

쓰기 불가능한 파일 이동 및 쓰기 불가능한 디렉토리 이동

다음 동작(Linux, Debian 8.3, ext2 파일 시스템)에 대해 약간 혼란스럽습니다.

test@linux:~$ ls -ld directory/ file
drwxr-xr-x 2 root root 4096 Mar 10 18:51 directory/
-rw-r--r-- 1 root root    8 Mar 10 18:51 file
test@linux:~$ ls -ld target_directory/
drwxr-xr-x 2 test test 4096 Mar 10 18:47 target_directory/
test@linux:~$ mv file target_directory/
test@linux:~$ mv directory/ target_directory/
mv: cannot move ‘directory/’ to ‘target_directory/directory’: Permission denied

directory/비어 있는 경우에도 마찬가지입니다. 재미있는 사실: rmdir directory/이 경우에도 작동합니다.
왜? mv파일과 디렉터리가 쓰기 권한이 없을 정도로 다르게 동작하는 이유를 아는 것이 좋을 것입니다 .


사실 "사람에게 낚시하는 법을 가르쳐라..."라는 정신으로 이 내용과 권한 시스템을 설명하는 책을 주저하지 말고 추천해 주세요.바르게(약간 호언장담) 나는 종종 다음과 같은 내용을 본다(유명한 리눅스 책에서):

$ ls -ld ch3 test
-rw-rw-r-- 1 joe sales 4983 Jan 18 22:13 ch3
drwxr-xr-x 2 joe sales 1024 Jan 24 13:47 test

첫 번째 줄은 ch3파일에 소유자와 그룹에 대한 읽기 및 쓰기 권한이 있음을 보여줍니다. 다른 모든 사용자에게는 읽기 권한이 있습니다. 즉, 파일을 볼 수는 있지만 내용을 변경하거나 삭제할 수는 없습니다.

PS/경고: 예, 위 단락의 설명은 실제로 잘못되었습니다. 나에게 이 사실을 말하지 말고 게시물을 "수정"하지 마십시오. 나는 이 주제에 대해 알려진 바가 얼마나 적은지 설명하기 위해 여기에 인용합니다.

답변1

디렉토리 삭제또는파일은 디렉터리 권한에만 관련됩니다.포함하다삭제할 파일/디렉토리입니다. 파일/디렉토리 자체에 대한 권한은 관련이 없습니다. 따라서 다음에 속하더라도 directory사용을 삭제할 수 있는 이유는 다음 과 같습니다. 출력에는 표시되지 않지만 분명히 디렉토리에 대한 읽기, 쓰기 및 실행 권한이 있습니다.rmdirroot포함하다 directory.

나는 이것에 대해 다른 곳에서 더 많이 썼습니다.디렉토리에 대한 각 개별 권한을 통해 정확히 무엇을 수행할 수 있습니까?.

왜 체크인할 수 없는지는 directorytarget_directory모르겠습니다. 내 상자에서 이것을 재현할 수 없습니다. 여기에는 확장된 속성을 설정하는 것부터 파일 시스템을 포함하는 마운트 지점이 아닌 별도의 파일 시스템일 directory수 있는 마운트 지점까지 다양한 이유가 있습니다 . . target_directorydirectory그러나 권한만으로는 원인이 되지 않습니다.

(PS: 다음에는 더 나은 예제 이름을 선택하십시오. "디렉토리" 및 "파일"이라는 이름을 사용하면 무슨 일이 일어나고 있는지 설명하기가 정말 짜증납니다.)

답변2

아마도 directory으로 이동하면서 내부 항목이 target directory변경되었고 에 쓰기가 허용되지 않기 때문에 허용되지 않는 것일까요?..directorydirectory

나는 내 디렉토리에서 동일한 상황을 겪었지만(OP와 유사하게 혼란스러웠습니다) 소유자 쓰기 권한이 설정되지 않았습니다. chmod u+w디렉터리에 설정하기 만 하면 이동을 허용할 수 있습니다(동일한 파티션에서는 복사 및 삭제가 불가능함). 이 글을 읽고 위의 상황을 깨달았습니다. 파일에 그런 문제가 없는 이유를 자세히 설명합니다.

관련 정보