[부인 성명: 이 질문에는 악의적인 의도가 없습니다. 학교 프로젝트에 대한 ln -s 명령을 이해하려고 노력하고 있습니다.]
내 홈 폴더인 /home/anna
. /home/bob
내가 접근할 수 없는 폴더와 접근할 수 없는 파일이 있는,foo.txt
ln -s /home/bob/foo.txt
내 홈 폴더에서 성공적으로 실행할 수 있나요 ? 가능하다면 내가 액세스할 수 없는( 와 동일한 권한으로 foo.txt
) 링크를 생성할 것이라고 가정하는 것이 맞습니까?
에 대한 읽기 권한은 있지만 foo.txt
에 대한 액세스 권한은 없으면 어떻게 됩니까 /home/bob
?
/home/bob
접근할 수는 있지만 읽을 수는 없는 반대의 경우는 어떻습니까 foo.txt
?
답변1
예,당신은 심볼릭 링크를 만들 수 있습니다어느위치.
ln -s /home/bob/foo.txt
내 홈 폴더에서 성공적으로 실행할 수 있나요 ? 가능하다면 내가 액세스할 수 없는( 와 동일한 권한으로foo.txt
) 링크를 생성할 것이라고 가정하는 것이 맞습니까?
옳은. 대상 파일의 액세스 제한이 적용됩니다. 제한된 리소스에 대한 심볼릭 링크를 생성하면 해당 리소스에 액세스할 수 없습니다. 대상 파일이 실제로 존재할 필요도 없습니다.
데모:
$ ln -s /etc/shadow foo
$ file foo
foo: symbolic link to /etc/shadow
$ cat foo
cat: foo: Permission denied
$ ln -s /etc/nonexistent bar
$ file bar
bar: broken symbolic link to /etc/nonexistent
에 대한 읽기 권한은 있지만
foo.txt
에 대한 액세스 권한은 없으면 어떻게 됩니까/home/bob
?
상위 디렉터리에 대한 권한이 없는 경우포함된 파일에 접근할 수 없습니다. 따라서 심볼릭 링크를 사용하면 여전히 액세스할 수 없습니다. 심볼릭 링크를 생성해도 권한에는 영향이 없습니다.
/home/bob
접근할 수는 있지만 읽을 수는 없는 반대의 경우는 어떻습니까foo.txt
?
다시 말하지만, 심볼릭 링크를 만들 수 있지만 파일에 액세스할 수는 없습니다.