인간 친화적 인 삼바 이름 맹 글링


11

대부분의 컴퓨터는 Ubuntu를 실행하지만 그 중 두 대는 Windows로 이중 부팅하며 게스트가 있으면 일반적으로 Windows 컴퓨터도 실행합니다. 따라서 파일 서버 (Ubuntu 서버)는 NFS를 사용하는 것 외에도 Samba를 실행합니다.

또한 우분투를 주로 사용하기 때문에 \:*?"<>|파일 이름에 문자를 사용할 수있는 것과 같이 Windows에 비해 장점을 활용 하려고합니다. 물론 문제는 Windows가 파일 이름에 해당 문자를 허용하지 않기 때문에 Samba가 파일 이름을보다 수용 가능한 것으로 변환해야한다는 것입니다. 그러나 이것이 수행되는 방식은 불쾌합니다.

Episode 182 - Exorcist 2: The Heretic.mp4예를 들어 파일 이름 이로 바뀝니다 E4Q82R~Y.MP4. 이것은 끔찍한 "수정"입니다. 삼바의 맹 글링을 인간에게 좀 더 친근하게 만드는 방법이 있습니까? Episode 182 - Exorcist 2_ The Heretic.mp4불법 문자가 단순히 대체되는 대신에 이를 "수정"할 수 있습니까?


1
Samba 메일 링리스트 에서이 패치에 대한 설명을 확인하십시오 . 설명 된 방법은로 즉시 작동합니다 Samba 4.1.4-Debian.
mpy

@mpy 나는 이것을 시도했지만 불법 윈도우 문자가있는 파일을 삼바 공유에 복사 할 때 여전히 작동하지 않습니다. 공간이 기호로 변환 된 것처럼 확인 된 것만 변환하지만 작동하지 않는 것 ( ':'이 다른 기호로 변환 된 것)은 변환하지 않습니다. 어떤 포인터?
pd12

답변:


11

mangled map 는 더 이상 사용되지 않으며 새 버전의 Samba에서 더 이상 작동하지 않습니다.

vfs_catia 를 사용 하여 문제점을 해결할 수 있습니다 . smb.conf에 다음 행을 추가하십시오.

vfs objects = catia
catia:mappings = 0x003a:0x2236,0x003f:0x0294,0x002a:0x2217,0x003c:0x276e,0x003e:0x276f,0x0022:0x02ba,0x007c:0x2223,0x005c:0x29f9

맵핑은 콜론으로 구분 된 0x 접 두부 16 진 문자 코드로 지정됩니다. 제공된 매핑은 불법 문자를 모든 언어에서 사용되지 않는 유니 코드 모양으로 다시 매핑합니다.

:? * <> "| \
∶ ʔ ∗ ❮ ❯ ʺ ∣ ⧹

코드 [global]는 개별 [share]섹션 아래 또는 개별 섹션 에 넣을 수 있습니다 . 그것을 넣으면 [global]성능에 영향을 줄 수 있습니다.

매핑 한 문자는 서버의 파일 이름에 사용할 수 없거나 액세스 할 수 없습니다.

예 : file❮name.txt서버에서 이름이 지정된 파일에 액세스하는 Windows 클라이언트 file<name.txt는 맵핑으로 인해 서버에서 요청 하므로 파일을 찾을 수 없음 오류가 발생합니다.


나는 이것을 시도했지만 불법 윈도우 문자가있는 파일을 삼바 공유에 복사 할 때 여전히 작동하지 않습니다. 공간이 기호로 변환 된 것처럼 확인 된 것만 변환하지만 작동하지 않는 것 ( ':'이 다른 기호로 변환 된 것)은 변환하지 않습니다. 어떤 포인터?
pd12

2
이것은 잘 작동합니다! 한 가지 주목할 점은 모든 것을 동일한 캐릭터에 매핑 할 수 없으며, 예를 들어 실제로 밑줄이있는 것은 더 이상 액세스 할 수 없다는 것입니다. 대신에 나는 다음과 같은 매핑을 사용 : 0x3a:0x7e 0x3f:0x5e그래서 :하게 ~?된다 ^.
Geoffrey

2

에서 이 링크 당신은 맹 글링 옵션을 볼 수 있습니다. 먼저 옵션을 비활성화해야한다고 생각합니다.

mangled names

그 후 나는 이름이 더 좋아 보일 것 같아요 ...

콜론을 교체하려면 예를 들어 다음 줄을 사용하십시오.

mangled map =(: _)

다음과 같이 교체 규칙을 더 추가 할 수 있습니다.

mangled map =(: _) (foo bar)

(또한 foo 발생을 bar로 바꿉니다)


그들은 지금 더 좋아 보인다. 실제로 "혼합 된 이름"을 "no"로 설정하면 파일 이름이 Windows에서 완전히 변경되지 않은 상태로 표시됩니다. 확실히 좋아 보이지만 Windows 응용 프로그램에서 파일을 열 수 없습니다. tes:t.txt예를 들어 메모장에서 파일을 열려고하면 "[...] \ tes : t.txt 파일을 찾을 수 없습니다"라는 메시지가 나타납니다. 해당 응용 프로그램의 다른 "불법"파일도 마찬가지입니다.
Alex

내 답변을 편집했습니다!
Michael K

mangled map삼바에서 제거되었습니다. 조금 둘러 본 후 내가 알 수있는 것에서 몇 년 전에 제거되었습니다. 이 log.smbd파일을 사용하려고하면 다음과 같이 말합니다.Ignoring unknown parameter "mangled map"
Alex

당신 말이 맞아요 ... 더 이상 사용되지 않습니다. 작동하지 않습니다. 그렇게 단순하지는 않습니다. 복잡한 파일 이름은 담임 이름을 가진 두 개의 파일이 없도록 방지하는 것입니다. foo : .txt 및 foo_.txt 파일이 존재할 수 있으며 이름 변경이 실패합니다. 따라서 두 파일 시스템 모두에서 허용되는 이름 만 허용되도록 파일 이름 규칙을 적용하는 것이 가장 좋습니다.
Michael K
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.