Windows/CIFS 서버 및 Linux 클라이언트에 대한 심볼릭 링크 지원

Windows/CIFS 서버 및 Linux 클라이언트에 대한 심볼릭 링크 지원

네트워크 공유를 통해 코드 저장소와 같은 것을 호스팅하는 Win10 파일 서버가 있습니다.

저는 모든 코딩과 개발을 Linux(주로 CentOS 또는 Lubuntu)에서 수행하므로 이것이 매우 유용하다는 것을 알았습니다.

mount -t cifs....명령을 사용하면 Windows 공유를 쉽게 마운트할 수 있습니다. 하지만 제가 겪고 있는 문제는 공유 설치 내부의 게스트로부터 심볼릭 링크를 만들려고 한다는 것입니다. 특히 이와 같은 작업은 이 파일 및 다른 파일과 같은 파일에 대한 심볼릭 링크를 automake --add-missing생성하려고 시도하기 때문에 실패합니다 .install-sh

Linux와 Windows의 차이로 인해 몇 가지 복잡한 문제가 있다는 것을 알고 있지만 이를 허용하기 위해 서버(및 클라이언트)에서 활성화할 수 있는 옵션이 있는지는 확실하지 않습니다.

일부 책을 읽었지만 온라인의 다른 답변은 명확하지 않은 것 같습니다. 예를 들어 이 기사는 다음과 같습니다.심볼릭 링크 권한이 거부됨, cifs를 통한 공유 폴더sfu (Services For Unix), - 이 옵션을 사용하면 가능하다는 것을 나타내는 것 같습니다 . 이는 cifs 커널 모듈이 최소한 1.4.

내 CentOS 7.1 시스템에 버전이 있고 2.03시도했지만 sudo mount -t cifs -o username=,password=,sfu //Remote_Server/Share /Share성공하지 못했습니다. 또한 secpol내 Windows 사용자 계정이 심볼릭 링크를 생성할 수 있도록 Windows에서 권한을 설정했습니다 . (구현 시 양쪽에 심볼릭 링크를 생성하려고 시도했지만 Windows 계정 권한으로 인해 생성할 수 없는 경우를 대비하여 이것이 요인인지 확실하지 않습니다.) Windows cmd 프롬프트에서 관리자로 실행하고 명령을 사용하여 이 작업을 수행할 수 있지만 mklinkLinux 게스트에서 표준 심볼릭 링크를 생성하려고 하면 여전히 다음과 같은 결과가 나타납니다.failed to create symbolic link:........Operation not supported

그렇다면 CIFS와 현재 솔루션에서 작동하도록 할 수 있는 방법이 있습니까? 아니면 Linux와 Windows의 심볼릭 링크 간의 차이점을 어떻게든 추상화하고 마운트된 폴더를 다른 클라이언트와 마찬가지로 Linux 클라이언트에서 사용할 수 있도록 하는 솔루션이 있습니까? 가능합니까?

답변1

Linux 컨텍스트에서만 심볼릭 링크를 사용하려는 경우 mfsymlinksmount.cifs 옵션이 필요할 수 있습니다.

   mfsymlinks
       Enable support for Minshall+French symlinks(see
       http://wiki.samba.org/index.php/UNIX_Extensions#Minshall.2BFrench_symlinks).
       This option is ignored when specified together with the 'sfu' option.
       Minshall+French symlinks are used even if the server supports the CIFS Unix
       Extensions.

또는 명령줄 마운트에 mfsymlinks를 추가합니다.

   sudo mount -t cifs //ip.add.re.ss/share_name /path/to/mount -o username=hostusername,vers=3.0,uid=clientusername,gid=clientgroupname,soft,rsize=8192,wsize=8192,mfsymlinks

일부 배경을 보려면 다음을 참조하세요.이 문제.

관련 정보