samba làm thế nào để hiển thị các tập tin với dấu hai chấm trong tên của họ?


13

Samba không hiển thị tệp chính xác khi chúng chứa dấu hai chấm.

Tên tệp gốc: test:file.txt

Tên hiển thị trong Windows: T8S6CH~R.TXT

Làm thế nào tôi có thể sửa chữa nó?

Thông tin:

Linux: SLES 11 SP 3

Samba: Version 3.6.3-0.33.39.1-3128-SUSE-CODE11-x86_64

Câu trả lời:


13

Vấn đề với mangled namestùy chọn của Samba là không thiết lập nào là lý tưởng. Bạn có thể có các tên không được đọc sai, nhưng không thể được truy cập theo bất kỳ cách nào vì chúng chứa các ký tự không hợp lệ hoặc các tên được đưa vào định dạng DOS 8.3 và do đó gần như không thể đọc được.

May mắn thay, có (bây giờ) một mô-đun VFS được gọicatia sẽ cung cấp ánh xạ ký tự tùy chỉnh. Cụ thể, có thể vạch ra các ký tự được coi là bất hợp pháp trong tên tệp Windows.

Trong [global]phần đặt các dòng này:

    # Mapping illegal characters, where enabled with "vfs objects = catia"
    mangled names = no
    catia:mappings = 0x22:0xa8,0x2a:0xa4,0x2f:0xf8,0x3a:0xf7,0x3c:0xab,0x3e:0xbb,0x3f:0xbf,0x5c:0xff,0x7c:0xa6

Trong mỗi [share_name]phần, thêm dòng tiếp theo này (nếu bạn đã có một vfs objectsdòng, chỉ cần thêm catiavào danh sách):

    vfs objects = catia

Trên hệ thống dựa trên Debian của tôi, mô-đun đối tượng VFS này đã được cài đặt như một phần của gói tiêu chuẩn.

Một ví dụ về tên tệp được ánh xạ bởi cài đặt này là 2017-12-24 12:23.txt. Sử dụng mangled names = yescó tập tin này được hiển thị như 2BB0Y9~4.TXT. Sử dụng vfs objects = catiathay thế có tên tập tin này được hiển thị là 2017-12-24 12÷23.txt. Nó không hoàn hảo nhưng nó khá tốt. Và quan trọng nhất, tôi có thể truy cập nó từ các ứng dụng Windows.


1
Xem ∶ để biết các ký tự khác trông giống dấu hai chấm ASCII.
Stéphane Chazelas

@ StéphaneChazelas xin vui lòng gửi nó như một đề nghị cho nhóm phát triển Samba. Tôi chỉ lấy danh sách gợi ý của họ.
roaima

Khi tôi chia sẻ một thư mục với Nautilus, rõ ràng thư mục đó không hiển thị trong /etc/samba/smb.conf. Làm thế nào tôi có thể áp dụng giải pháp của bạn trong kịch bản này?
Hans Deragon

Điều này là hoàn hảo, cảm ơn bạn.
Sẽ

5

Vì một số lý do, Samba bắt đầu đọc tên tập tin có chứa dấu hai chấm. Cho đến nay tôi không thể tìm thấy bất cứ điều gì liên quan đến hành vi này trên Internet.

Giải pháp này rất đơn giản. Thêm mangled names = novào [global]phần /etc/samba/smb.confvà khởi động lại Samba đã khắc phục vấn đề.


Thật tuyệt khi biết điều đó! +1
Luciano Andress Martini

4
Giải pháp này không đầy đủ. Các tệp có ký tự Windows bất hợp pháp như ':' không được hiển thị. Xem giải pháp của roaima.
Hans Deragon

1

Dấu hỏi ký tự đặc biệt? \ <> * vv là bất hợp pháp trong tên tệp của windows và tôi luôn tránh sử dụng chúng.

Tuy nhiên, tôi không gặp vấn đề gì với những nhân vật này khi sử dụng macOS Catalina của tôi khi truy cập cài đặt FreeNAS-11.3-U1 và SMB / Samba của tôi. Tôi không chắc chắn tại sao cài đặt này không theo mặc định, nhưng bạn sẽ phải làm theo các bước sau để làm cho nó hoạt động hoàn hảo với MacOS.

Trong webUI FreeNAS, chia sẻ goto> SMB> Chỉnh sửa

  1. Chọn "chế độ nâng cao" và đánh dấu cả catiatrái cây trong "đối tượng VFS"
  2. Đặt tham số phụ trợ thành fruit:encoding = native

Sau đó, dịch vụ goto và khởi động lại SMB

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.