Samba có hoạt động tốt với Windows khi bật các tên phân biệt chữ hoa chữ thường không?


12

Tôi muốn có một chia sẻ * nix Samba có thể truy cập bởi các máy khách Windows.

Samba có một tùy chọn để bật hoặc tắt phân biệt chữ hoa chữ thường. Thông thường đối với truy cập windows, điều này bị vô hiệu hóa, do đó fred == FRED = fReD.

Tuy nhiên, điều này dẫn đến một vấn đề lớn, AFAICT:

  • Trên unix, bạn tạo hai thư mục có tên "RODDY" và "Roddy"
  • Trên Windows, bạn sẽ thấy cả hai thư mục, nhưng ...
  • Khi bạn xóa / đổi tên / mở một cái từ Windows, bạn có thể sẽ xóa / đổi tên / v.v. Bạn không có cách nào để biết được! .

Vì vậy, câu hỏi của tôi là, Samba hành xử thế nào trên windows nếu cờ phân biệt chữ hoa chữ thường được đặt "BẬT"? Người dùng vẫn có thể xem cả hai thư mục và có các thao tác tệp hoạt động một cách nhất quán không?

Câu trả lời:


12

Nó sẽ ổn thôi Windows Explorer thực hiện tốt công việc hiển thị trường hợp tên tệp một cách chính xác. Tôi sử dụng điều này trong smb.conf của mình để đảm bảo những gì tôi nhập trong Explorer là những gì Samba sử dụng (tôi đặt tất cả các chia sẻ này):

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

Tôi đã chạy qua một bài kiểm tra nhanh (Samba 3.0.24 ở phần phụ trợ, WinXP ở mặt trước). Các tệp đã được tạo trên máy chủ samba thông qua phiên SSH.

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

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

Sau này, tôi duyệt qua ổ đĩa được ánh xạ của mình đến thư mục kiểm tra. Tôi có thể thấy cả hai thư mục "test1" và "TEST1". Tôi đã mở "test1" và thấy tập tin "foo". Tôi đã mở "TEST1" và thấy tệp "thanh". Càng xa càng tốt.

Sau đó, tôi quay lại thư mục thử nghiệm và trong cửa sổ Explorer, đổi tên TEST1 thành TEST2. Windows hơi bối rối - nó đổi tên thư mục, sau đó hiển thị các thư mục BÓNG là TEST2 - dường như đã đổi tên cả hai thư mục. Nhưng, trong thiết bị đầu cuối SSH, tôi đã kiểm tra:

$ ls
test1 TEST2

Vì vậy, Windows đã đổi tên tệp và Samba có tên tệp chính xác. Khi tôi nhấn F5 trong cửa sổ Explorer để làm mới nội dung thư mục, màn hình sẽ thay đổi để hiển thị tên thư mục chính xác.

Hãy cẩn thận: Hệ thống tập tin Linux cho phép một số ký tự mà Windows không (như ":"). Samba có tùy chọn "xáo trộn tên" để biến những tên tệp đó thành thứ mà Windows sẽ thích. Ví dụ, nếu tôi tạo một tệp có tên "FA: 23" trong cửa sổ SSH của mình, Samba sẽ đặt tên thành "F7T4H0 ~ F" và đó là những gì xuất hiện trong cửa sổ Explorer.


Lưu ý rằng với máy khách Windows 95, bạn không thể truy cập các thư mục bên trong chia sẻ khi case sensitivetùy chọn được bật. Bạn nên sử dụng autotùy chọn trong trường hợp này.
devius

Giả sử bạn có hai thư mục trên hệ thống tập tin unix của mình: Test1 và test1 Người dùng sẽ nhìn thấy thư mục nào trong windows? Tôi có thể đảm bảo trong Samba rằng nếu thư mục Test1 tồn tại và ai đó trên unix cố gắng tạo thư mục test1, thì nó sẽ tự động hợp nhất nó với Test1 để người dùng Windows luôn có thể xem tất cả các tệp? Theo kinh nghiệm của tôi, người dùng Windows không thể thấy cả hai thư mục nếu Test1 và test1 tồn tại, nhưng chỉ một trong số đó.
Erik

@Erik Thông thường cả hai sẽ xuất hiện. Windows hiểu độ nhạy trường hợp ở tất cả các cấp và đã triển khai sâu vào các hệ thống tệp của nó. Mặc dù vậy, đã không thử.
Tiberiu-Ionuț Stan

1

Các tùy chọn làm việc cho tôi dưới đây:

preserve case           = yes
short preserve case     = yes
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.