แซมบ้าทำงานได้ดีกับ Windows เมื่อเปิดใช้งานชื่อที่เล็ก


12

ฉันต้องการให้ * nix Samba ใช้งานร่วมกันได้โดยไคลเอนต์ Windows

Samba มีตัวเลือกเพื่อเปิดใช้งานหรือปิดใช้งานชื่อไฟล์ โดยปกติสำหรับการเข้าถึงหน้าต่างนี้ถูกปิดใช้งานดังนั้น fred == FRED = fReD

อย่างไรก็ตามสิ่งนี้นำไปสู่ ​​gotcha สำคัญหนึ่งรายการ AFAICT:

  • บนยูนิกซ์คุณสร้างสองโฟลเดอร์ชื่อ "RODDY" และ "roddy"
  • ใน Windows คุณจะเห็นทั้งสองโฟลเดอร์ แต่ ...
  • เมื่อคุณลบ / เปลี่ยนชื่อ / เปิดจาก Windows คุณสามารถท้าย / ลบ / เปลี่ยนชื่อ / etc อย่างใดอย่างหนึ่ง คุณไม่มีทางรู้ได้เลย! .

ดังนั้นคำถามของฉันคือ Samba ทำงานบนหน้าต่างอย่างไรหากตั้งค่าสถานะแบบตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ "ON" ผู้ใช้ยังสามารถเห็นทั้งสองโฟลเดอร์และการทำงานของไฟล์ทำงานในลักษณะที่สอดคล้องกันได้หรือไม่?

คำตอบ:


12

มันควรจะดี Windows Explorer ทำงานได้ดีในการแสดงชื่อไฟล์อย่างถูกต้อง ฉันใช้สิ่งนี้ใน 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" และเห็นไฟล์ "บาร์" จนถึงตอนนี้ดีมาก

จากนั้นฉันกลับไปที่ไดเรกทอรีทดสอบและในหน้าต่าง Explorer เปลี่ยนชื่อ TEST1 เป็น TEST2 Windows เปิดใช้งานเล็กน้อย - เปลี่ยนชื่อโฟลเดอร์จากนั้นแสดงทั้งสองโฟลเดอร์เป็น TEST2 - ดูเหมือนจะเปลี่ยนชื่อทั้งสองโฟลเดอร์ แต่ในเทอร์มินัล SSH ฉันได้ตรวจสอบ:

$ ls
test1 TEST2

ดังนั้น Windows จึงเปลี่ยนชื่อไฟล์และแซมบ้าได้ชื่อไฟล์อย่างถูกต้อง เมื่อฉันกด F5 ในหน้าต่าง Explorer เพื่อรีเฟรชเนื้อหาของโฟลเดอร์จอแสดงผลจะเปลี่ยนเพื่อแสดงชื่อโฟลเดอร์ที่ถูกต้อง

Caveat:ระบบไฟล์ Linux อนุญาตให้ใช้อักขระบางตัวที่ Windows ไม่ได้ (เช่น ":") Samba มีตัวเลือก "name mangling"เพื่อเปลี่ยนชื่อไฟล์เหล่านั้นให้เป็นสิ่งที่ Windows จะชอบ ถ้าฉันสร้างไฟล์ชื่อ "FA: 23" ในหน้าต่าง SSH ของฉัน Samba จะเปลี่ยนชื่อเป็น "F7T4H0 ~ F" และนั่นคือสิ่งที่ปรากฏในหน้าต่าง Explorer


โปรดทราบว่าด้วยไคลเอนต์ Windows 95 คุณจะไม่สามารถเข้าถึงไดเรกทอรีภายในแชร์ได้เมื่อcase sensitiveเปิดใช้งานตัวเลือก คุณควรใช้autoตัวเลือกในกรณีนี้
devius

สมมติว่าคุณมีสองโฟลเดอร์ในระบบไฟล์ยูนิกซ์ของคุณ: Test1 และ test1 ผู้ใช้คนใดจะเห็นใน windows ฉันสามารถทำให้แน่ใจใน Samba ได้หรือไม่ว่ามีโฟลเดอร์ Test1 อยู่และมีคนในยูนิกซ์พยายามสร้างโฟลเดอร์ test1 นั้นจะรวมเข้ากับ Test1 โดยอัตโนมัติเพื่อให้ผู้ใช้ Windows สามารถดูไฟล์ทั้งหมดได้ตลอดเวลา จากประสบการณ์ของฉันผู้ใช้ Windows ไม่สามารถดูทั้งสองโฟลเดอร์ได้หาก Test1 และ test1 มีอยู่ แต่หนึ่งในนั้น
Erik

@Erik ปกติทั้งสองจะปรากฏขึ้น Windows เข้าใจถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ในทุกระดับและนำมาใช้อย่างลึกซึ้งกับระบบไฟล์ ไม่ได้ลอง
Tiberiu-Ionuț Stan

1

ตัวเลือกที่ใช้งานได้สำหรับฉันอยู่ด้านล่าง:

preserve case           = yes
short preserve case     = yes
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.