Linux는 대부분의 유닉스 계열 시스템과 마찬가지로 (예를 들어 Apple OS / X는 드문 예외 중 하나임) 대상을 확인할 때 symlink에 대한 권한을 무시합니다.
그러나 다른 파일과 마찬가지로 심볼릭 링크의 소유권은 t
비트 세트 가있는 디렉토리에서 항목의 이름을 바꾸거나 링크를 해제 할 수있는 권한 과 관련이 /tmp
있습니다 ( 예 :) .
에서 파일을 제거하거나 이름을 바꾸려면 (symlink의 유무) /tmp
파일의 소유자 여야합니다. 이것이 심볼릭 링크의 소유권을 변경 (링크 해제 / 이름 바꾸기 권한 부여 또는 제거)하려는 이유 중 하나입니다.
$ ln -s / /tmp/x
$ rm /tmp/x
# OK removed
$ ln -s / /tmp/x
$ sudo chown -h nobody /tmp/x
$ rm /tmp/x
rm: cannot remove ‘/tmp/x’: Operation not permitted
또한 Mark Plotnick이 현재 삭제 한 답변 에서 언급했듯이 백업 및 아카이브 응용 프로그램 lchown()
은 원래 소유자에게 심볼릭 링크를 복원 해야 합니다. 또 다른 옵션은 심볼릭 링크를 만들기 전에 euid와 egid를 전환하는 것이지만 심볼릭 링크가 추출 된 디렉토리에 대한 효율적이고 복잡한 관리는 아닙니다.
lrwxrwxrwx
입니다. Achmod
는 여기서 의미가 없습니다. 링크를 따라 가면 대상 권한으로 연결됩니다.