파일을 심볼릭 링크로 chmod하는 방법은 무엇입니까?

파일을 심볼릭 링크로 chmod하는 방법은 무엇입니까?

Samba 공유의 한 지점에서 다른 지점(동일한 드라이브의)으로 심볼릭 링크를 생성하면 심볼릭 링크를 포함하는 파일이 다른 클라이언트에서는 손상되지만 원래 클라이언트에서는 손상되지 않습니다.

예를 들어, 링크를 만드는 클라이언트에서 심볼릭 링크는 완벽하게 작동하며 다시 마운트한 후에도 원래 OS에서 인식됩니다.

lrwxrwxrwx 1 g g       38 Mar 17 11:15 npm2 -> ../lib/node_modules/npm/bin/npm-cli.js

그러나 서버나 다른 클라이언트에서 링크는 다음과 같은 내용을 포함하는 파일입니다.

XSym
0038
36c91a46c3a5a86837deff259c6d0874
../lib/node_modules/npm/bin/npm-cli.js

... 권한이 있는 경우:

-rwxrw-r-- 1 z z     1067 Mar 17 11:15 npm2

그럼... 기본적으로... 이것은 일종의 마운트 오류입니다. 그런데 chmod를 사용하여 원래 의도한 심볼릭 링크에 "미핑"할 수 있는 방법이 있습니까? 그것은 많은 도움이 될 것입니다.

답변1

아니요, chmod를 사용하여 파일의 기본 유형을 변경할 수 없습니다. 하지만 버그 때문에 파일이 되는 것은 아닙니다. Samba 서버가 파일로 생성했기 때문에 파일이고, 그 자체도 단순히 클라이언트가 실제로 파일로 만들었기 때문일 수도 있습니다.물었다특정 내용이 담긴 파일을 생성하는 것입니다.

일반 SMB는 심볼릭 링크에 대해 아무것도 모르고, 가장 일반적인 SMB 서버(Windows)도 오랫동안 심볼릭 링크를 지원하지 않았습니다. 결과적으로 다양한 SMB 클라이언트는 심볼릭 링크를 이상한 모양의 일반 파일로 저장하는 방법을 고안했습니다.

당신이 가지고 있는 특정 형식을민샬+프렌치macOS 및 Linux "cifs" 커널 모듈에서 사용되는 심볼릭 링크 - 공유가 옵션으로 마운트된 경우 mfsymlinksLinux는 "XSym" 마커를 인식하고척하다클라이언트 측 애플리케이션에 대한 심볼릭 링크입니다. 따라서 한 클라이언트가 이 옵션을 사용하면 다른 모든 클라이언트도 동일한 옵션을 사용해야 합니다.

아쉽게도 갖고 싶으시다면진짜서버의 심볼릭 링크를 사용하려면 SMB를 사용해야 합니다.v1(일명 "NT1") 서버와 클라이언트가 모두 "CIFS Unix Extensions"를 지원하는지 확인하세요. 그리고 참고하세요 이건~ 아니다곧 출시될 SMBv3 POSIX 확장과 함께 작업할 계획입니다. Samba 개발자는 (주요 보안 문제로 인해) 서버측 심볼릭 링크를 생성하는 기능이 더 이상 존재하지 않기를 원하며 Samba가 POSIX 기능을 지원하게 되면 이를 명시적으로 밝혔습니다. SMBv3에서는 이러한 "특수 파일"을 계속 생성합니다.


원래 질문에 대한 다른 답변으로 다음과 같을 수 있습니다.기술적으로"debugfs" 유형 도구를 사용하여 파일을 심볼릭 링크로 변경하거나 그 반대로 변경할 수 있지만 특정 파일 시스템의 내부에 크게 의존합니다. (일부는 유형 비트만 다를 뿐 일반 파일과 똑같이 심볼릭 링크를 저장할 수 있지만 NTFS와 같은 다른 파일은 완전히 호환되지 않는 형식을 가질 수 있습니다.)

그러나 이는 일반적으로 정상적인 작업의 일부가 아닌 심각하게 손상된 파일 시스템을 복구할 때만 수행됩니다. 물론 원본 "pseudo-symlink" 파일에 MF 형식의 데이터가 포함되어 있으면 아무 소용이 없습니다.~ 아니다파일 시스템이 내부적으로 사용하는 것과 동일한 형식입니다.

관련 정보