Apakah Samba bekerja dengan baik dengan Windows ketika nama case-sensitive diaktifkan?

12

Saya ingin memiliki * nix Samba share yang dapat diakses oleh klien Windows.

Samba memiliki opsi untuk mengaktifkan atau menonaktifkan sensitivitas nama file. Biasanya untuk akses windows, ini dinonaktifkan, sehingga fred == FRED = fReD.

Namun, ini mengarah pada satu gotcha utama, AFAICT:

  • Pada unix, Anda membuat dua folder yang disebut "RODDY" dan "roddy"
  • Di Windows, Anda akan melihat kedua folder, tetapi ...
  • Ketika Anda menghapus / mengganti nama / membukanya dari Windows, Anda bisa menghapus / mengganti nama / dll. Anda tidak memiliki cara untuk mengetahui yang mana! .

Jadi, pertanyaan saya adalah, bagaimana Samba berperilaku di windows jika flag case-sensitive diatur "ON"? Apakah pengguna masih dapat melihat kedua folder, dan menjalankan operasi file secara konsisten?

Roddy
sumber

Jawaban:

12

Itu harus baik-baik saja. Windows Explorer melakukan pekerjaan yang baik untuk menampilkan case nama dengan benar. Saya menggunakan ini di smb.conf saya untuk memastikan apa yang saya ketik di Explorer adalah yang digunakan Samba (saya mengatur semua per-saham ini):

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

Saya berlari melalui tes cepat (Samba 3.0.24 di backend, WinXP di depan). File dibuat di server samba melalui sesi SSH.

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

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

Setelah ini, saya melihat-lihat drive saya yang dipetakan ke direktori tes. Saya dapat melihat direktori "test1" dan "TEST1". Saya membuka "test1" dan melihat file "foo". Saya membuka "TEST1" dan melihat file "bar". Sejauh ini baik.

Kemudian saya kembali ke direktori tes, dan di jendela Explorer, berganti nama menjadi TEST1 menjadi TEST2. Windows sedikit panik - namanya diganti folder, lalu menunjukkan KEDUA folder sebagai TEST2 - tampaknya telah mengubah nama kedua folder. Tapi, di terminal SSH, saya memeriksa:

$ ls
test1 TEST2

Jadi Windows mengganti nama file, dan Samba mendapatkan nama file dengan benar. Ketika saya menekan F5 di jendela Explorer untuk menyegarkan isi folder, tampilan berubah untuk menunjukkan nama folder yang benar.

Peringatan: Sistem file Linux memungkinkan beberapa karakter yang tidak dimiliki Windows (seperti ":"). Samba memiliki opsi "name mangling" untuk mengubah nama file itu menjadi sesuatu yang disukai Windows. Jika saya membuat file bernama "FA: 23" di jendela SSH saya, misalnya, Samba mengubah nama menjadi "F7T4H0 ~ F" dan itulah yang muncul di jendela Explorer.

quack quixote
sumber
Perhatikan bahwa dengan klien Windows 95 Anda tidak dapat mengakses direktori di dalam share ketika case sensitiveopsi ini diaktifkan. Anda harus menggunakan autoopsi dalam hal ini.
devius
Asumsikan Anda memiliki dua folder pada sistem file unix Anda: Test1 dan test1 Yang mana yang akan dilihat pengguna di windows? Dapatkah saya memastikan di Samba bahwa jika folder Test1 ada, dan seseorang di unix mencoba membuat folder test1, maka ia secara otomatis menggabungkannya ke Test1, sehingga pengguna Windows akan selalu dapat melihat semua file? Dalam pengalaman saya, pengguna Windows tidak dapat melihat kedua folder jika Test1 dan test1 ada, tetapi hanya salah satunya.
Erik
@Erik Biasanya keduanya akan muncul. Windows memahami sensitivitas kasus di semua tingkatan dan menerapkannya jauh ke dalam sistem file-nya. Tapi tidak mencoba.
Tiberiu-Ionuț Stan
1

Opsi yang bekerja untuk saya adalah di bawah ini:

preserve case           = yes
short preserve case     = yes
surajmohan
sumber