บริบท
จาก Mac ที่รัน Mountain Lion ส่วนแบ่ง "มัลติมีเดีย" ที่ให้บริการโดย QNAP NAS จะถูกเมาท์เป็นรูทผ่าน SAMBA ใน Finder สมมติว่าฉันสร้างลิงก์สัญลักษณ์ของไดเรกทอรีใน NAS เช่น:
[/share/Multimedia] # ln -s /share/MD0_DATA/Multimedia/test/ ./folder/symlink
มันได้ผล:
[/share/Multimedia] # ls -la folder
lrwxrwxrwx 1 admin administ 34 Oct 14 19:24 symlink -> /share/MD0_DATA/Multimedia/test//
ฉันยังสามารถmv
และcp
ไฟล์โดยไม่มีปัญหาไปและกลับจากsymlink
เมื่อเข้าสู่ระบบใน NAS
นี่คือสถานการณ์ที่ฝั่งไคลเอ็นต์ Mac ที่รัน 10.8.2:
client:~ myself$ id
uid=501(myself) gid=20(staff) groups=20(staff),401(com.apple.access_screensharing),
12(everyone),33(_appstore),61(localaccounts),79(_appserverusr),80(admin),
81(_appserveradm),98(_lpadmin),100(_lpoperator),204(_developer)
น่าแปลกที่ลูกค้าไม่รู้จักsymlink
เช่นนั้น เป็นไดเรกทอรีปกติแทน (โปรดทราบว่าตามผลลัพธ์ที่ฉันมีrwx
สิทธิ์):
client:folder myself$ ls -la
drwx------ 1 myself staff 16384 18 Okt 23:25 symlink
สิ่งเดียวกันนี้เกิดขึ้นใน Finder ซึ่งโฟลเดอร์symlink
ไม่ปรากฏเป็นนามแฝง แต่เป็นโฟลเดอร์ปกติ
ฉันสามารถcd
เข้าsymlink
และฉันยังสามารถอ่านไฟล์ในนั้นได้โดยไม่มีปัญหา เช่นเดียวกันใน Finder
ปัญหา
ถ้าฉันพยายามเขียน ( mv
หรือcp
) ไฟล์ลงsymlink
ในฝั่งไคลเอ็นต์มันล้มเหลว:
client:folder myself$ mv test.txt symlink/
mv: rename test.txt to symlink/test.txt: No such file or directory
ความพยายามใด ๆ ในการย้ายหรือคัดลอกไฟล์symlink
ผ่าน drag-n-drop ใน Finder จะส่งกลับข้อผิดพลาดต่อไปนี้:
ไม่สามารถดำเนินการให้เสร็จสมบูรณ์ได้เนื่องจากไม่พบรายการที่ต้องการอย่างน้อยหนึ่งรายการ (รหัสข้อผิดพลาด = -43)
(ย้าย / คัดลอกไฟล์จาก symlink
ไปยังตำแหน่งอื่นบน NAS ทำงานได้ดี.)
นี่คือผลลัพธ์ของการดำเนินการเขียนใน Terminal:
client:symlink myself$ touch text.txt
touch: text.txt: Permission denied
ที่น่าสนใจฉันสามารถลบไฟล์ที่มีอยู่แล้ว:
client:symlink myself$ ls -la
total 64
drwx------ 1 myself staff 16384 18 Okt 23:51 .
drwx------ 1 myself staff 16384 18 Okt 23:48 ..
-rwx------ 1 myself staff 5 18 Okt 23:51 text.txt
client:symlink myself$ rm text.txt
client:symlink myself$ ls -la
total 64
drwx------ 1 myself staff 16384 18 Okt 23:56 .
drwx------ 1 myself staff 16384 18 Okt 23:48 ..
ฉันสูญเสียวิธีการวินิจฉัยและแก้ไขปัญหานี้จริงๆ
Apple kb ที่เกี่ยวข้องระบุว่า Error -43 สามารถมีสามสาเหตุ:
- อักขระผิดกฎหมาย ( ไม่มีเลย )
- สิทธิ์ (การอนุญาตดูเหมือนดีเห็น
ls -la
ผลลัพธ์ด้านบนฉันเมานต์การแชร์ด้วยบัญชีผู้ดูแลระบบของ NAS และฉันเข้าสู่ระบบในฐานะผู้ดูแลระบบบนไคลเอนต์ Mac ของฉัน ) - จุดแบ่งปันที่ไม่มีอยู่ ( การแบ่งปันมีอยู่และทำงานได้ดีเป็นอย่างอื่น )
ข้อมูลเพิ่มเติม
นี่คือข้อมูลเพิ่มเติมสำหรับการแก้ปัญหา:
ตัวเลือกทั่วโลกใน/etc/smb.conf
NAS ถูกตั้งค่าดังนี้:
[global]
passdb backend = smbpasswd
workgroup = WORKGROUP
security = USER
server string =
encrypt passwords = Yes
username level = 0
map to guest = Bad User
null passwords = yes
max log size = 10
socket options = TCP_NODELAY SO_KEEPALIVE SO_SNDBUF=65536 SO_RCVBUF=65536
os level = 20
preferred master = no
dns proxy = No
smb passwd file=/etc/config/smbpasswd
username map = /etc/config/smbusers
guest account = guest
directory mask = 0777
create mask = 0777
oplocks = yes
locking = yes
disable spoolss = yes
load printers = no
force directory security mode = 0000
veto files = /.AppleDB/.AppleDouble/.AppleDesktop/:2eDS_Store/Network Trash Folder/Temporary Items/TheVolumeSettingsFolder/.@__thumb/.@__desc/:2e*/
delete veto files = yes
map archive = no
map system = no
map hidden = no
map read only = no
deadtime = 10
use sendfile = yes
display charset = UTF8
unix extensions = no
store dos attributes = yes
client ntlmv2 auth = yes
dos filetime resolution = no
min receivefile size = 4096
case sensitive = auto
domain master = auto
local master = yes
inherit acls = yes
wide links = yes
follow symlinks = yes
wins support = no
force unknown acl user = yes
template homedir = /share/homes/DOMAIN=%D/%U
domain logons = no
ตัวเลือกเฉพาะ:
[Multimedia]
comment = System default share
path = /share/MD0_DATA/Multimedia
browsable = yes
oplocks = no
ftp write only = no
public = yes
invalid users =
read list = @"everyone","gast"
write list = "admin","guest"
valid users = "root",@"everyone","admin","guest","gast"
inherit permissions = yes
บันทึกในฝั่งของลูกค้าไม่พูดมาก:
/private/var/log/system.log
(ซึ่งรวมถึง kernel.log ตั้งแต่ 10.8) แสดงรายการที่มีโอกาสเช่น:
Oct 18 22:13:43 client kernel[0]: smb_iod_reconnect: Reconnected share MULTIMEDIA with server qnap-SAMBA._smb._tcp.local
และ/private/var/log/samba/
ไม่มีอยู่ในระบบของฉัน
ความช่วยเหลือใด ๆ ที่ชื่นชมมาก
drwxrwxrwx 2 admin administ 4096 Oct 19 21:12 test/
@ jm666
ln -s /share/MD0_DATA/Multimedia/test/ etc.
ดูเหมือนว่าจะเป็นไวยากรณ์ที่ไม่ถูกต้อง (สังเกตเครื่องหมายทับท้าย) อย่างไรก็ตามln -s /share/MD0_DATA/Multimedia/test etc.
ไม่เปลี่ยนสถานการณ์
cd /share/MD0_DATA/Multimedia/folder; ln -s ../test ./symlink
. อาจไม่ได้ช่วย แต่ยังไม่มีแนวคิดอื่นและอาจมีการส่งออกค่อนข้างยุ่งเหยิงเส้นทางที่แน่นอนโดยมุมมองของลูกค้า ...
mv
และcp
ไฟล์ที่ไม่มีปัญหาไปมาsymlink
" และ "ถ้าฉันพยายามเขียน ( mv
หรือcp
) ไฟล์ลงไปsymlink
มันจะล้มเหลว" ดังนั้นฉันจึงสับสน
ls -ld /share/MD0_DATA/Multimedia/test/
ผลลัพธ์คำสั่ง ดังนั้นการอนุญาตของไดเรกทอรีที่จุด symlink คืออะไร