OS X 리소스 포크를 도트 바 파일보다 * 어딘가 *의 Samba 공유에 저장할 수 있습니까?


15

OS X 리소스 포크는 일반 파일에 첨부 된 대체 데이터 스트림입니다. 파일의 사용자 정의 아이콘, 색상 레이블, 키워드 또는 사용자 또는 응용 프로그램에서 설정 한 기타 메타 데이터를 포함 할 수 있습니다.

그들은 기본적으로 OS X의 HFS + 파일 시스템에서 지원하지만, OS X 그들이 소위 "dotbar"파일에 저장됩니다 (NFS, SMB) 원격 (FAT32) 로컬 또는 여부를 다른 파일 시스템을 마운트 할 때마다 있습니다 : 일반 파일의 리소스 포크 name.ext입니다 다른 일반이지만 숨겨진 파일에 저장됩니다 ._name.ext. .DS_Store아이콘과 열보기 또는 창 위치와 같은 디렉토리보기 설정을 저장하는 파일 과 혼동해서는 안됩니다 .

도트 바 ._파일 의 문제점 은 대상 파일 시스템에서 원본 파일과 동일한 확장자를 가진 실제 일반 파일이므로 여러 가지 방식으로 혼란을 겪습니다. 예를 들어 Ant와 Maven은 ._MyClass.java컴파일 할 또 다른 Java 파일로 간주됩니다.

나는 것을 볼 OS X은 SMB라는 이름의 스트림에서 저장 리소스 포크로 구성 할 수 삼바가 구성 할 수있는 POSIX가 확장 속성에 지정된 스트림 저장 대안, 또는 다른 곳 저장소 디렉토리를 .

두 솔루션 모두 대상 파일 시스템을 오염시키는 도트 바 파일의 문제를 해결할 수 있지만 어느 쪽도 작동하지 않습니다.

 
Xattr

먼저 xattr로 시도했습니다.

vfs objects = streams_xattr
kernel oplocks = no

후자의 옵션은 이 버그 로 인한 것 입니다. OS X에 마운트하기 전에 공유 루트 에서이 작업을 수행하여 사용하도록 지시했습니다.

touch .com.apple.smb.streams.on

그러나 Finder로 파일을 복사하려고 할 때이 오류가 발생했습니다.

"hello.java"의 일부 데이터를 읽거나 쓸 수 없으므로 Finder가 조작을 완료 할 수 없습니다.
(오류 코드 -36)

 
정거장

그런 다음 저장소로 시도했습니다.

vfs objects = streams_depot

.com.apple.smb.streams.on주식의 뿌리에 남겨두고 . Finder로 동일한 파일을 복사하려고 할 때 다른 오류가 발생했습니다.

예기치 않은 오류가 발생하여 작업을 완료 할 수 없습니다
(오류 코드 -50)

 
이 두 옵션 중 하나를 사용하여 OS X를 작동 시키려면 어떻게해야합니까? 저의 목적은 사람들을 ._공유 디렉토리에서 꺼내는 것입니다.

나는 단순히 도트 바 파일을 거부하려고 시도했다.

veto files = /._*/
delete veto files = yes

그러나 OS X에서 마운트 된 SMB 공유를 통해 실행할 때 Mercurial 과 같은 일부 응용 프로그램이 실패 합니다.

클라이언트로 OS X 10.9.5를 사용하고 있습니다. 서버로 Debian Wheezy의 Samba 3.6.6.

편집 : 요청 된 구성은 다음과 같습니다.

[global]
    security = user
    invalid users = root
    workgroup = COMPANY_NAME
    encrypt passwords = true
    panic action = /usr/share/samba/panic-action %d
    syslog = yes
    syslog only = yes

    # PERFORMANCE TUNING
    socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=131072 SO_SNDBUF=131072 SO_KEEPALIVE
    read raw = true
    write raw = true
    use sendfile = true
    min receivefile size = 16384
    aio read size = 16384
    aio write size = 16384
    max xmit = 131072
    getwd cache = true

    # DEFAULT OPTIONS FOR ALL SHARES
    writeable = true
    force group = company_group

    create mask = 664
    security mask = 664
    force create mode = 664
    force security mode = 664

    directory mask = 2775
    directory security mask = 2775
    force directory mode = 2775
    force directory security mode = 2775

    # solve problem where OS X clients remove mode 0100
    map archive = no

[homes]
    browseable = no

사건을 해결하기 위해 unix extensions지시문을 [global]세션 으로 변경하려고 했습니까 ? testparm명령 출력으로 질문을 업데이트 할 수 있습니까 ?
fgbreel

@fgbreel 질문에 구성을 추가했습니다. 기본적으로 활성화되어 있기 때문에 유닉스 확장을 변경하려고 시도하지 않았습니다 (심볼 링크와 물건을 매핑해야합니다). 비활성화해야한다고 생각하십니까?
Tobia

그렇습니다, 이해가되지 않습니다 :(
fgbreel

답변:


2

당신은 것 같습니다 수있는 새로운이 작업을 수행 할 수 vfs_fruit의 적층 모듈, vfs_streams_xattr VFS 모듈.

예를 들어, 이 메일 링리스트 스레드 를 참조하십시오 . 확장 된 속성을 지원하는 기본 파일 시스템이 필요하며이를 활성화하여 마운트해야합니다.

그러나 의에 따라 삼바 위키 업그레이드 할 필요 해요, 그래서 이것은 삼바 4.2의 새로운 기능이다. (현재로서는 데비안 시드 [실험]조차도 아직 4.2가 없습니다.)

데비안 꾸러미를 버리고 새 버전의 삼바를 만드는 데 관심이 없다면 (또는 Jessie로 업그레이드하고 jessie-backports에 4.2가 표시되기를 기다리는 동안) 클라이언트에서 도트 파일을 숨길있습니다.

동일한 디렉토리를 가리키는 두 개의 다른 공유를 가질 수 있는데, 그 중 하나는 ._files를 숨 깁니다. 아마도 최적은 아니지만 실행 가능할 수 있습니다.


0

기본 Mac 환경 설정에서 가능한지 모르겠지만 Asepsis 와 같은 도구를 사용하여 해당 문제를 해결할 수 있습니다. 모든 Mac 배설물을 자신의 폴더로 이동합니다.


내가 마지막으로 확인했을 때, .DS_StoreAsepsis ._*는 네트워크 공유에서 가장 큰 문제를 일으키는 "dotbar" 파일이 아닌 파일 만 제거 합니다
Tobia

@Tobia : 좋은 지적입니다. 이 경우 BlueHarvest 도 찾았 지만 무료는 아닙니다. BlueHarvest는 실시간 모니터링을 사용하는 반면 Asepsis는 시스템 파일 패치를 통해 수동 리디렉션을 사용합니다.
Blake Johnson

감사. 그러나 Samba 측의 솔루션은 구성의 문제라고 생각하기 때문에 기다릴 것입니다.
Tobia
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.