Czy Samba działa dobrze w systemie Windows, gdy włączono rozróżnianie wielkości liter?

12

Chcę, aby udział * nix Samba był dostępny dla klientów Windows.

Samba ma opcję włączenia lub wyłączenia rozróżniania wielkości liter w nazwach plików. Zwykle w przypadku dostępu do systemu Windows jest to wyłączone, więc fred == FRED = fReD.

Prowadzi to jednak do jednego poważnego problemu: AFAICT:

  • Na Uniksie tworzysz dwa foldery o nazwie „RODDY” i „roddy”
  • W systemie Windows zobaczysz oba foldery, ale ...
  • Po usunięciu / zmianie nazwy / otwarciu jednego z systemu Windows możesz zakończyć usuwanie / zmianę nazwy / etc dowolnego z nich. Nie możesz wiedzieć, który! .

Więc moje pytanie brzmi: jak zachowuje się Samba w systemie Windows, jeśli flaga z rozróżnianiem wielkości liter jest ustawiona na „ON”? Czy użytkownik może nadal widzieć oba foldery i mieć spójne operacje na plikach?

Roddy
źródło

Odpowiedzi:

12

Powinno być dobrze. Eksplorator Windows dobrze wyświetla poprawne wyświetlanie wielkości liter w nazwie pliku. Używam tego w moim pliku smb.conf, aby upewnić się, że to, co wpisuję w Eksploratorze, jest tym, czego używa Samba (ustawiam wszystkie te na udział):

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

Przeprowadziłem szybki test (Samba 3.0.24 na backendie, WinXP na froncie). Pliki zostały utworzone na serwerze samby za pośrednictwem sesji SSH.

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

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

Następnie przeszukałem zmapowany dysk do katalogu testowego. Widzę katalogi „test1” i „TEST1”. Otworzyłem „test1” i zobaczyłem plik „foo”. Otworzyłem „TEST1” i zobaczyłem plik „paska”. Jak na razie dobrze.

Potem wróciłem do katalogu testowego iw oknie Eksploratora przemianowałem TEST1 na TEST2. Windows nieco przestraszył - zmienił nazwę folderu, a następnie pokazał OBIE foldery jako TEST2 - najwyraźniej zmienił nazwę obu folderów. Ale w terminalu SSH sprawdziłem:

$ ls
test1 TEST2

Dlatego Windows zmienił nazwę pliku, a Samba poprawnie nazwa pliku. Kiedy nacisnąłem F5 w oknie Eksploratora, aby odświeżyć zawartość folderu, wyświetlacz zmienił się, aby pokazać prawidłowe nazwy folderów.

Uwaga: systemy plików Linux dopuszczają niektóre znaki, których Windows nie obsługuje (np. „:”). Samba ma opcję „zmiany nazwy”, aby zmienić te nazwy plików w coś, co spodoba się Windowsowi. Na przykład, jeśli utworzę plik o nazwie „FA: 23” w oknie SSH, Samba zmienia nazwę na „F7T4H0 ~ F” i to pojawia się w oknie Eksploratora.

quack quixote
źródło
Uwaga: w przypadku klienta Windows 95 nie można uzyskać dostępu do katalogów w udziałach, gdy case sensitiveopcja jest włączona. W autotakim przypadku należy skorzystać z opcji.
devius
Załóżmy, że masz dwa foldery w systemie plików Unix: Test1 i test1 Który użytkownik zobaczy w systemie Windows? Czy mogę upewnić się w Sambie, że jeśli istnieje folder Test1, a ktoś na Uniksie próbuje utworzyć folder test1, to zamiast tego automatycznie łączy go z Test1, aby użytkownicy systemu Windows zawsze mogli zobaczyć wszystkie pliki? Z mojego doświadczenia wynika, że ​​użytkownik systemu Windows nie widzi obu folderów, jeśli Test1 i Test1 istnieją, ale tylko jeden z nich.
Erik
@Erik Zwykle oba się pojawią. Windows rozumie rozróżnianie wielkości liter na wszystkich poziomach i zaimplementował głęboko w swoich systemach plików. Nie próbowałem jednak.
Tiberiu-Ionuț Stan
1

Opcje, które działały dla mnie, są poniżej:

preserve case           = yes
short preserve case     = yes
surajmohan
źródło