다른 사용자의 질문 에 따라 쉽게 합리화 할 수없는 Linux 파일 시스템 권한의 기이 한 문제에 부딪 혔습니다.
sudo mkdir ~/foo ~/foo/bar
sudo touch ~/baz
mkdir ~/my_dir
chown 700 ~/my_dir
# this is fine
mv ~/baz ~/my_dir
# renaming is fine
mv ~/foo ~/bob
# Moving caused: Permission denied
mv ~/bob ~/my_dir/
명확성을 위해 foo
foo/bar
baz
루트가 소유합니다. my_dir
내 사용자 ~
가 소유하고 물론 내 사용자가 소유합니다. 다른 사용자가 소유 한 파일의 이름을 바꾸고 이동할 수 있습니다 . 다른 사용자가 소유 한 디렉토리의 이름을 바꿀 수 있지만 다른 사용자가 소유 한 디렉토리는 이동할 수 없습니다 .
이것은 매우 구체적인 제한으로 보이며 어떤 위험으로부터 보호되고 있는지 또는 이러한 방식으로 만 작동 할 수 있다는 기본 메커니즘이 무엇을 의미하는지 이해하지 못합니다.
다른 사용자의 디렉토리를 이동할 수없는 이유는 무엇입니까?
이 상황 중 하나입니다 문서화 에 이끌 EACCES
:
oldpath
디렉토리이고 쓰기 권한을 허용하지 않습니다 (..
항목 을 업데이트하는 데 필요함 ).
내부 bob
에 쓸 수 없습니다. 즉 bob/..
, 새 값을 가리 키도록 업데이트 할 수 없습니다 my_dir
.
파일 이동은 파일에 쓰기를 포함하지 않지만 디렉토리 이동은 수행합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다