Büyük / küçük harf duyarlı isimler etkinleştirildiğinde Samba Windows ile iyi çalışır mı?


12

Windows istemcileri tarafından erişilebilir bir * nix Samba paylaşımına sahip olmak istiyorum.

Samba'da dosya adı büyük / küçük harf duyarlılığını etkinleştirme veya devre dışı bırakma seçeneği vardır. Normalde pencerelere erişim için bu devre dışıdır, böylece fred == FRED = fReD.

Ancak, bu önemli bir gotcha, AFAICT yol açar:

  • Unix'te "RODDY" ve "roddy" adlı iki klasör oluşturursunuz
  • Windows'ta her iki klasörü de göreceksiniz, ancak ...
  • Birini Windows'dan sildiğinizde / yeniden adlandırdığınızda / açtığınızda, bunlardan birini silebilir / yeniden adlandırabilirsiniz / vb. Hangisini bilmenin bir yolu yok! .

Benim sorum, Samba büyük / küçük harfe duyarlı bayrak "AÇIK" olarak ayarlanmışsa nasıl davranır? Bir kullanıcı hala her iki klasörü de görebilir ve dosya işlemlerinin tutarlı bir şekilde çalışmasını sağlayabilir mi?

Yanıtlar:


12

İyi olmalı. Windows Gezgini, dosya adı büyük / küçük harf durumunu doğru bir şekilde görüntülemek için iyi bir iş yapar. Explorer'da yazdığım şeyin Samba'nın kullandığı şey olduğundan emin olmak için benim smb.conf dosyasında kullanıyorum (tüm bu paylaşım başına ayarladım):

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

Hızlı bir testten geçtim (arka uçta Samba 3.0.24, önde WinXP). Dosyalar bir SSH oturumu aracılığıyla samba sunucusunda oluşturuldu.

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

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

Bundan sonra, eşlenen sürücümden test dizinine göz attım. Hem "test1" hem de "TEST1" dizinlerini görebiliyorum. "Test1" i açtım ve "foo" dosyasını gördüm. "TEST1" i açtım ve "bar" dosyasını gördüm. Çok uzak çok iyi.

Sonra test dizinine geri döndüm ve Explorer penceresinde TEST1 adını TEST2 olarak değiştirdim. Windows hafifçe çıldırdı - klasörü yeniden adlandırdı, ardından her iki klasörü de yeniden adlandırmış gibi görünen BOTH klasörleri TEST2 olarak gösterdi. Ancak, SSH terminalinde kontrol ettim:

$ ls
test1 TEST2

Böylece Windows dosyayı yeniden adlandırdı ve Samba dosya adını doğru bir şekilde aldı. Klasör içeriğini yenilemek için Gezgin penceresinde F5 tuşuna bastığımda, ekran doğru klasör adlarını gösterecek şekilde değişti.

Dikkat: Linux dosya sistemleri Windows'un izin vermediği bazı karakterlere izin verir (":" gibi). Samba, bu dosya adlarını Windows'un beğeneceği bir şeye dönüştürmek için bir "ad yönetimi" seçeneğine sahiptir. Örneğin, SSH penceremde "FA: 23" adlı bir dosya yaparsam, Samba adı "F7T4H0 ~ F" olarak değiştirir ve Explorer penceresinde görünen şey budur.


Windows 95 istemcisi ile case sensitiveseçenek etkinleştirildiğinde paylaşımların içindeki dizinlere erişemeyeceğinizi unutmayın. autoBu durumda seçeneği kullanmalısınız .
devius

Unix dosya sisteminizde iki klasörünüz olduğunu varsayın: Test1 ve test1 Bir kullanıcı pencerelerde hangisini görecek? Samba'da, Test1 klasörü varsa ve unix'teki birisinin bir klasör test1 oluşturmaya çalıştığından, Windows kullanıcılarının tüm dosyaları görebilmesi için otomatik olarak Test1 ile birleştirdiğinden emin olabilir miyim? Deneyimlerime göre, Windows kullanıcısı Test1 ve test1 varsa her iki klasörü de göremez, ancak bunlardan yalnızca birini görür.
Erik

@Erik Normalde her ikisi de görünecektir. Windows, tüm düzeylerde büyük / küçük harf duyarlılığını anlar ve dosya sistemlerine derinlemesine uygular. Yine de denemedim.
Tiberiu-Ionuț Stan

1

Benim için çalışan seçenekler aşağıdadır:

preserve case           = yes
short preserve case     = yes
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.