따르다다른 사용자의 질문나는 쉽게 합리화할 수 없는 특이한 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
내 사용자에게 속하며 물론 ~
내 사용자에게도 속합니다. 이름을 바꿀 수 있고이동하다다른 사용자가 소유한 파일입니다. 다른 사용자가 소유한 디렉터리의 이름을 바꿀 수 있지만 변경할 수는 없습니다.이동하다다른 사용자가 소유한 디렉터리입니다.
이는 매우 구체적인 제한사항인 것 같으며 어떤 위험이 예방되고 있는지 또는 기본 메커니즘이 이 방식으로만 작동할 수 있다는 것을 의미하는지 이해하지 못합니다.
다른 사용자의 디렉터리를 이동할 수 없는 이유는 무엇입니까?
답변1
이런 상황 중 하나에요녹음된다음으로 이어진다 EACCES
:
oldpath
쓰기 권한을 허용하지 않는 디렉터리입니다(..
항목 업데이트 필요).
내부적으로 쓸 수는 없습니다 . 즉 , 새 값을 가리키도록 bob
업데이트할 수 없다는 뜻입니다 .bob/..
my_dir
파일 이동에는 쓰기가 포함되지 않지만 디렉터리 이동에는 쓰기가 포함됩니다.