ฉันเองแล็ปท็อปแอปเปิ้ล Macbook Pro กับ 64 บิต OS X 10.11 "El Capitan" แซมบ้าทำงาน 3 ที่ผมติดตั้งผ่านMacports
ฉันยังเป็นเจ้าของแล็ปท็อป Dell Inspiron พร้อม 64-bit GNU / Linux XUbuntu 16.04 "Xenial Xerus" ที่ใช้งาน Samba 3 ที่ฉันติดตั้งผ่าน APT
ทั้งสองเครื่องมีโฟลเดอร์แชร์เครือข่ายและใช้แซมบ้าเพื่อสื่อสารกับ WLAN (LAN แบบไร้สาย) ของฉัน
ทั้งระบบของฉันเป็นภาษาโปรตุเกสแบบบราซิล ดังนั้นฉันใช้ตัวอักษรพิเศษเช่นç , á , ã , â , ô , é , ó et cetera
เมื่อฉันใช้แล็ปท็อป Linux เพื่อเข้าถึงการแชร์ OS X Samba ของฉันสตริงทั้งหมดจะแสดงอย่างถูกต้อง: คำเช่นmaçã , ônusและbênçãoแสดงอย่างถูกต้อง ไฟล์และโฟลเดอร์ที่มีชื่อยาวจะปรากฏขึ้นและแสดงชื่ออย่างถูกต้อง ดังนั้นเซิร์ฟเวอร์ Samba ที่ทำงานบน OS X ได้รับการกำหนดค่าอย่างเหมาะสมแล้ว ...
... แต่สิ่งต่าง ๆ ไม่ทำงานในทางตรงกันข้าม: ถ้าฉันใช้แอพ Finder บน OS X เพื่อเข้าถึงการแบ่งปัน Linux Samba ของฉันไฟล์และโฟลเดอร์ทั้งหมดที่มีอักขระพิเศษอย่างน้อยหนึ่งตัวไม่ปรากฏขึ้น ฉัน) และชื่อยาวของไฟล์และโฟลเดอร์ถูกแปลงเป็นชื่อย่อแปลก ๆ ดังนั้นมีบางอย่างผิดปกติกับเซิร์ฟเวอร์ Samba ที่ทำงานบนเครื่อง Linux ของฉัน
=> ในกรณีของฉันสิ่งที่แก้ไขปัญหานี้คือการเพิ่มบรรทัดต่อไปนี้ลงใน[global]
ส่วนภายในsmb.conf
ไฟล์บนเครื่อง Linux ของฉัน:
mangled names = no
dos charset = CP850
unix charset = UTF-8
หลังจากนั้นฉันเปิดหน้าต่างเทอร์มินัลเชลล์และรีสตาร์ทเซิร์ฟเวอร์ Linux Samba ด้วยคำสั่งนี้:
sudo service smbd restart
... ซึ่งสามารถถูกแทนที่ด้วยคำสั่งอื่นนี้ (ในกรณีที่คำสั่งข้างต้นไม่สามารถใช้กับการกระจาย Linux ของคุณ):
sudo systemctl restart smbd.service
หลังจากฉันรีสตาร์ทเซิร์ฟเวอร์ Linux Samba แล้ว Finder Finder บน OS X ในที่สุดก็แสดงไฟล์และโฟลเดอร์ทั้งหมดที่ถูกซ่อนไว้ก่อนหน้านี้อย่างถูกต้องเพราะชื่อของพวกเขามีอักขระพิเศษอย่างน้อยหนึ่งตัว ชื่อ mangled ("shortened") ก็เป็น "unmangled" เช่นกัน
เชิงอรรถ :
- ในระบบ GNU / Linux ที่ตั้งมาตรฐานของ
smb.conf
ไฟล์คือ/etc/samba/smb.conf
- สมมติว่าระบบ Linux ของคุณมี
smb.conf
ไฟล์ที่เก็บไว้ในตำแหน่งมาตรฐาน/etc/samba/
: มีหลายวิธีในการแก้ไขsmb.conf
ไฟล์ ตัวอย่างเช่นถ้าคุณไม่ได้ใช้สภาพแวดล้อมสก์ท็อป (เช่นระบบของคุณมีเพียงขั้วเปลือกไม่มีหน้าต่าง) คุณสามารถติดตั้งนาโนแก้ไขข้อความโดยการออกคำสั่งเช่นsudo apt-get install nano -y
หรือsudo dnf -b -y install nano
หรือสิ่งอื่น (ขึ้นอยู่กับ Linux distro คุณ กำลังใช้) sudo nano /etc/samba/smb.conf
และจากนั้นก็วิ่ง ในกรณีที่คุณกำลังใช้สภาพแวดล้อมสำหรับเดสก์ทอปคุณสามารถติดตั้งโปรแกรมแก้ไขข้อความกราฟิกเช่นGNOME แก้ไขโดยการออกคำสั่งเช่นsudo apt-get install gedit -y
หรือsudo dnf -b -y install gedit
หรือสิ่งอื่น (ขึ้นอยู่กับ Linux distro ที่คุณใช้) sudo gedit /etc/samba/smb.conf
และเรียกใช้แล้ว
- ใน Samba 3+
display charset
พารามิเตอร์เลิกใช้แล้ว
dos charset
พารามิเตอร์ไม่สนับสนุนUTF-8
ข้อโต้แย้ง CP850
ดังนั้นจึงต้องใช้อาร์กิวเมนต์เริ่มต้น
mangled names = no
สั่งให้เซิร์ฟเวอร์แซมบ้าไม่ย่อชื่อไฟล์และโฟลเดอร์ให้สั้นลง ดังนั้นเนื่องจากไคลเอนต์ Samba เพิ่งทำซ้ำกับผู้ใช้สิ่งที่เซิร์ฟเวอร์ Samba ให้กับลูกค้าเมื่อเซิร์ฟเวอร์ได้รับการกำหนดค่าอย่างถูกต้องไคลเอนต์จะไม่แสดงชื่อที่สั้นลงของผู้ใช้อีกต่อไป