태그 보관물: server-message-block

server-message-block

대소 문자를 구분하는 이름이 활성화되어 있으면 Samba가 Windows에서 잘 작동합니까? … Windows에서 하나를 삭제 / 이름 바꾸기

Windows 클라이언트가 액세스 할 수있는 * nix Samba 공유를 갖고 싶습니다.

Samba는 파일 이름 대소 문자 구분을 활성화 또는 비활성화하는 옵션이 있습니다. 일반적으로 Windows 액세스의 경우 fred == FRED = fReD가되도록 비활성화됩니다.

그러나 이로 인해 AFAICT라는 중요한 문제가 발생합니다.

  • 유닉스에서는 “RODDY”와 “roddy”라는 두 개의 폴더를 만듭니다.
  • Windows에서는 두 폴더가 모두 표시되지만 …
  • Windows에서 하나를 삭제 / 이름 바꾸기 / 열면 둘 중 하나가 삭제 / 이름 바꾸기 등이 될 수 있습니다.
    당신은 어느 것을 알 방법이 없습니다! .

제 질문은 대소 문자를 구분하는 플래그가 “ON”으로 설정되어 있으면 Samba가 어떻게 Windows에서 동작합니까? 사용자는 여전히 두 폴더를 모두 볼 수 있고 파일 작업이 일관된 방식으로 작동 할 수 있습니까?



답변

괜찮습니다. Windows 탐색기는 파일 이름 대소 문자를 올바르게 표시합니다. 나는 이것을 smb.conf에서 사용하여 Explorer에서 입력하는 것이 Samba가 사용하는 것인지 확인합니다 (이 모든 공유 당 설정).

case sensitive = True
default case = lower
preserve case = yes
short preserve case = yes

빠른 테스트 (백엔드의 Samba 3.0.24, 전면의 WinXP)를 실행했습니다. SSH 세션을 통해 samba 서버에 파일이 작성되었습니다.

$ cd /some/samba/share/path
$ mkdir test
$ cd test

$ mkdir test1 TEST1
$ touch test1/foo TEST1/bar

그런 다음 매핑 된 드라이브를 통해 테스트 디렉토리를 탐색했습니다. “test1″및 “TEST1″디렉토리를 모두 볼 수 있습니다. “test1″을 열고 “foo”파일을 보았습니다. “TEST1″을 열고 “bar”파일을 보았습니다. 여태까지는 그런대로 잘됐다.

그런 다음 테스트 디렉토리로 돌아가 탐색기 창에서 TEST1의 이름을 TEST2로 바꿨습니다. Windows는 약간 놀라서 폴더 이름을 바꾼 다음 두 폴더를 모두 TEST2로 표시하여 두 폴더의 이름을 모두 바꿨습니다. 그러나 SSH 터미널에서 다음을 확인했습니다.

$ ls
test1 TEST2

그래서 Windows는 파일 이름을 바꾸었고 Samba는 파일 이름을 올바르게 얻었습니다. 탐색기 창에서 F5를 눌러 폴더 내용을 새로 고치면 디스플레이에 올바른 폴더 이름이 표시되도록 변경되었습니다.

주의 사항 : Linux 파일 시스템에서는 Windows에서 “:”와 같이 일부 문자를 사용할 수 없습니다. Samba는 “name mangling”옵션 을 통해 해당 파일 이름을 Windows가 원하는 것으로 바꿀 수 있습니다. 예를 들어 SSH 창에 “FA : 23″이라는 파일을 만들면 Samba가 이름을 “F7T4H0 ~ F”로 맹 글링하고 탐색기 창에 나타납니다.