Von einem Mac mit Mountain Lion wird eine vom QNAP NAS bereitgestellte Freigabe „Multimedia“ über SAMBA im Finder als Root gemountet. Nehmen wir an, ich erstelle einen symbolischen Link eines Verzeichnisses auf dem NAS, wie zum Beispiel:
[/share/Multimedia] # ln -s /share/MD0_DATA/Multimedia/test/ ./folder/symlink
Es klappt:
[/share/Multimedia] # ls -la folder
lrwxrwxrwx 1 admin administ 34 Oct 14 19:24 symlink -> /share/MD0_DATA/Multimedia/test//
Ich kann auch mv
und cp
Dateien ohne Probleme hin und her symlink
wenn ich auf dem NAS eingeloggt bin.
Dies ist die Situation auf der Client-Seite, einem Mac mit 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
Seltsamerweise erkennt der Client dies nicht ; es ist stattdessen ein normales Verzeichnis (bitte beachten Sie, dass ich gemäß der Ausgabe rwx
Berechtigungen habe):
client:folder myself$ ls -la
drwx------ 1 myself staff 16384 18 Okt 23:25 symlink
Das Gleiche passiert im Finder, wo der Ordner symlink
nicht als Alias, sondern als normaler Ordner erscheint.
Ich kann cd
hinein symlink
und ich kann auch Dateien darin ohne Probleme lesen. Dasselbe im Finder.
Wenn ich versuche, eine Datei auf der Client-Seite zu schreiben ( mv
oder ), schlägt dies fehl:cp
symlink
client:folder myself$ mv test.txt symlink/
mv: rename test.txt to symlink/test.txt: No such file or directory
Ebenso gibt jeder Versuch, eine Datei per Drag-and-Drop in den Finder zu verschieben oder zu kopieren, symlink
den folgenden Fehler zurück:
Der Vorgang kann nicht abgeschlossen werden, da mindestens ein erforderliches Element nicht gefunden werden kann. (Fehlercode = -43).
(Das Verschieben/Kopieren einer Datei an symlink
einen anderen Speicherort auf dem NAS funktioniert einwandfrei.)
Hier ist die Ausgabe eines Schreibvorgangs im Terminal:
client:symlink myself$ touch text.txt
touch: text.txt: Permission denied
Interessanterweise kann ich bereits vorhandene Dateien erfolgreich löschen:
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 ..
Das entsprechende Apple kb gibt an, dass Error -43 drei Ursachen haben kann:
ls -la
Ausgabe oben. Ich mounte die Freigabe mit dem Administratorkonto des NAS und bin als Administrator auf meinem Mac-Client angemeldet. )Hier sind weitere Informationen zur Fehlerbehebung:
Die globalen Optionen /etc/smb.conf
auf dem NAS sind wie folgt eingestellt:
[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
Die konkreten Optionen:
[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
Die Logs auf der Clientseite sagen nicht viel aus:
/private/var/log/system.log
(das seit 10.8 Kernel.log enthält) zeigt gelegentlich Einträge wie:
Oct 18 22:13:43 client kernel[0]: smb_iod_reconnect: Reconnected share MULTIMEDIA with server qnap-SAMBA._smb._tcp.local
Und /private/var/log/samba/
existiert nicht auf meinem System.
Jede Hilfe wird sehr geschätzt.
In Ihrer Konfiguration haben Sie unix extensions = no
das in Ordnung, aber deshalb werden symbolische Links auf dem Server als Ordner und nicht als Aliase angezeigt. In diesem Modus löst der Server die symbolischen Links auf und der Client sieht sie nie. Wenn der Client versucht, einen symbolischen Link zu erstellen, generiert der Server tatsächlich eine Aliasdatei, keinen symbolischen Link zum Host-Betriebssystem. Gründe dafür sind Sicherheit (Verhindern, dass jemand Zugriff auf /etc/passwd
den Server erhält, indem ein symbolischer Link darauf erstellt wird) und Client-Kompatibilität, da OS X und Windows und Unix etwas unterschiedliche Vorstellungen davon haben, was einen symbolischen Link ausmacht, aber sie sind sich ziemlich einig was ist ein verzeichnis oder eine datei.
Berechtigungsprobleme mit SAMBA sind komplex, daher ist nicht klar, dass Sie kein Berechtigungsproblem haben. Ebenso symbolisch wie das Auflösen ist komplex, daher ist nicht klar, dass das, was Sie tun, theoretisch funktionieren sollte, und es besteht immer die Möglichkeit eines Fehlers (höchstwahrscheinlich im SAMBA-Server).
Beim Zugriff auf einen SAMBA-Server von einem Mac sind diese Identitäten und Berechtigungen beteiligt:
Obwohl Sie also viele Informationen bereitgestellt haben, ist immer noch nicht klar, dass Sie keine Berechtigungsprobleme haben. Die Tatsache, dass Sie mv
dies cp
auf dem Server tun können (mit welchem Konto?), bedeutet nicht, dass Sie kein Berechtigungsproblem haben, das Sie daran hindert, dies auf dem Client zu tun (mit welchen Konten und mit welchem effektiven Konto auf dem Server?).
Wenn der Server ACLs unterstützt und Sie Optionen wie inherit permissions = yes
und inherit acls = yes
set haben, könnte es eine Art ACL-Problem geben, das nur Lesezugriff auf Verzeichnisse zulässt, auf die über symbolische Links zugegriffen wird. Basierend auf der Serverkonfiguration gibt es mehrere andere Untersuchungsmöglichkeiten.
Ich würde wirklich erwarten, dass Sie mehr Informationen in den SAMBA-Serverprotokollen finden können, als Sie mitgeteilt haben. Sie sollten Ihnen ein viel besseres Gefühl dafür geben, was genau verweigert wird.
Für das, was es wert ist, habe ich versucht, Ihr Setup mit einem Ubuntu 12.04-Host als SAMBA-Server zu duplizieren, und konnte Ihr Problem nicht reproduzieren. Symbolische Links haben bei mir wie erwartet funktioniert.
[~] # tail -f /var/log/log.smbd [2012/10/24 00:00:06, 0] smbd/server.c:1329(main) smbd version 3.5.2 started. Copyright Andrew Tridgell and the Samba Team 1992-2010 [2012/10/24 00:00:09.447243, 1] smbd/service.c:1073(make_connection_snum) client (***.***.***.***) connect to service Multimedia initially as user admin (uid=0, gid=0) (pid 28255) [2012/10/24 00:00:17.518605, 1] smbd/service.c:1073(make_connection_snum) [2012/10/24 00:03:06.528095, 0] smbd/server.c:313(remove_child_pid) Could not find child 28314 -- ignoring
clt60
ls -ld /share/MD0_DATA/Multimedia/test/
Befehlsergebnis wundern. Also, was ist die Berechtigung des Verzeichnisses, auf das der Symlink zeigt.DBK
drwxrwxrwx 2 admin administ 4096 Oct 19 21:12 test/
.DBK
ln -s /share/MD0_DATA/Multimedia/test/ etc.
die falsche Syntax zu sein (beachten Sie den abschließenden Schrägstrich am Ende). Ändert jedochln -s /share/MD0_DATA/Multimedia/test etc.
nichts an der Situation.clt60
cd /share/MD0_DATA/Multimedia/folder; ln -s ../test ./symlink
. Hilft wahrscheinlich nicht, aber ich habe keine andere Idee und vielleicht ein Export, der die absoluten Pfade durch die Client-Ansicht etwas durcheinander bringt ...Alter Profi
mv
undcp
Dateien ohne Probleme hin und hersymlink
" als auch "Wenn ich versuche, eine Datei in zu schreiben (mv
oder ) , schlägt dies fehl", also bin ich verwirrt.cp
symlink
DBK
DBK
Graham Perrin
Graham Perrin
Graham Perrin