samba: symlinks

samba รุ่นตั้งแต่ 3.5 เป็นต้นมา ไม่อนุญาตให้ใช้ symlinks ในการโยงไดเรคทอรี่ไปที่อื่น
สามารถแก้ไขได้ 2 วิธี คือ

  • แก้ smb.conf ดังนี้
    ...
    [global]
        unix extensions = no
    
    ...
    [share2]
        ...
        wide links = yes
        follow symlinks = yes    #default
    ...

    วิธีนี้มีข้อเสียคือ permission ของผู้ใช้และกลุ่ม จะเพี้ยน อาจมีปัญหาในการเขียนไฟล์

  • ใช้การ mount แบบ bind แทนการใช้ symbolic links
    เช่นเดิมเคยโยงว่า
    # ln -sf /samba/share1/dir1 /samba/share2/dir1

    ให้เปลี่ยนเป็น

    # mkdir /samba/share2/dir1
    # mount -o bind /samba/share1/dir1 /samba/share2/dir1

    เป็นต้น

    เราสามารถทำให้เป็นอัตโนมัติได้ด้วยการนำไปใส่ไว้ใน smb.conf ดังนี้

    ...
    [share2]
        ...
        root preexec = sh -c "mount -o bind /samba/share1/dir1 /samba/share2/dir1"
    ...
    

จบแล้ว

Topic: