Чи Samba добре працює з Windows, коли включені регістри імена?


12

Я хочу, щоб доступ до * nix Samba був доступний клієнтам Windows.

У Samba є можливість увімкнути або вимкнути чутливість регістру до імені файлів. Зазвичай для доступу до Windows це вимкнено, так що fred == FRED = fReD.

Однак це призводить до однієї основної проблеми, AFAICT:

  • У unix ви створюєте дві папки під назвою "RODDY" та "roddy"
  • У Windows ви побачите обидві папки, але ...
  • Коли ви видалите / перейменуєте / відкриєте її з Windows, ви можете в кінцевому рахунку видалити / перейменувати / тощо будь-яку з них. Ви не можете знати, які! .

Отже, моє запитання полягає в тому, як поводиться Samba на windows, якщо прапор, що відрізняється від регістру, встановлений "ON"? Чи може користувач ще бачити обидві папки та чи послідовно працювати файлові операції?

Відповіді:


12

Це повинно бути добре. Провідник Windows чудово виконує правильне відображення регістру імен файлів. Я використовую це в своєму smb.conf, щоб переконатися, що я ввожу в Explorer, те, що використовує Samba (я встановлюю всі ці частки на акцію):

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

Я пробіг швидкий тест (Samba 3.0.24 на бекенді, WinXP на передній частині). Файли були створені на сервері samba через сеанс SSH.

$ 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 у вікні Провідника, щоб оновити вміст папки, дисплей змінився, щоб відобразити правильні назви папок.

Caveat: Файлові системи Linux дозволяють деяким символам, яких Windows не має (як ":"). У Samba є варіант "ім'я", щоб перетворити ці файли в те, що Windows сподобається. Якщо я створюю файл під назвою "FA: 23" у своєму вікні SSH, наприклад, Samba маніпулює ім'ям "F7T4H0 ~ F", і це те, що з'являється у вікні Провідника.


Зауважте, що з клієнтом Windows 95 ви не можете отримати доступ до каталогів всередині спільних ресурсів, коли case sensitiveпараметр включений. У autoцьому випадку слід скористатися опцією.
devius

Припустимо, у вашій файловій системі Unix є дві папки: Test1 та test1. Що з них побачить користувач у Windows? Чи можу я впевнитись у Samba, що якщо папка Test1 існує, а хтось в unix намагається створити теку test1, що він автоматично замість неї тестує Test1, щоб користувачі Windows завжди змогли побачити всі файли? На мій досвід, користувач Windows не може бачити обидві папки, якщо існують Test1 та test1, але лише одну з них.
Ерік

@Erik Зазвичай обидва з’являться. Windows розуміє чутливість регістрів на всіх рівнях і впроваджує її вглиб своїх файлових систем. Не намагався, хоча.
Tiberiu-Ionuț Stan

1

Параметри, які працювали для мене, наведені нижче:

preserve case           = yes
short preserve case     = yes
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.