2 votes

Comment éviter l'erreur -43 lors de la copie d'un dossier lié par un lien symbolique dans le Finder avec un partage SAMBA ?

Le contexte

Depuis un Mac fonctionnant sous Mountain Lion, un partage "Multimedia" servi par le NAS QNAP est monté en tant que Root via SAMBA dans le Finder. Supposons que je crée un lien symbolique d'un répertoire sur le NAS tel que :

[/share/Multimedia] # ln -s /share/MD0_DATA/Multimedia/test/ ./folder/symlink     

Cela fonctionne :

[/share/Multimedia] # ls -la folder
lrwxrwxrwx  1 admin  administ  34 Oct 14 19:24 symlink -> /share/MD0_DATA/Multimedia/test//

Je peux également mv y cp Les fichiers sont transférés sans problème vers et à partir de symlink lorsqu'il est connecté au NAS.

Voici la situation côté client, un Mac fonctionnant sous la version 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)

Curieusement, le client ne reconnaît pas symlink en tant que tel ; il s'agit plutôt d'un répertoire normal (veuillez noter que d'après la sortie, j'ai rwx autorisations) :

client:folder myself$ ls -la
drwx------  1 myself  staff  16384 18 Okt 23:25 symlink

Il en va de même dans le Finder, où le dossier symlink n'apparaît pas comme un alias, mais comme un dossier normal.

Je peux cd en symlink et je peux également y lire des fichiers sans problème. Il en va de même dans le Finder.

Le problème

Si j'essaie d'écrire ( mv ou cp ) un fichier dans symlink côté client, il échoue :

 client:folder myself$ mv test.txt symlink/
 mv: rename test.txt to symlink/test.txt: No such file or directory

De même, toute tentative de déplacement ou de copie d'un fichier dans le système symlink par glisser-déposer dans le Finder renvoie l'erreur suivante :

L'opération ne peut être achevée car un ou plusieurs éléments requis sont introuvables. (Code d'erreur = -43).

(Déplacement/copie d'un fichier de symlink vers un autre emplacement du NAS fonctionne parfaitement).

Voici le résultat d'une opération d'écriture dans le terminal :

 client:symlink myself$ touch text.txt
 touch: text.txt: Permission denied

Il est intéressant de noter que je peux supprimer avec succès des fichiers déjà présents :

 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 ..

Je ne sais vraiment pas comment diagnostiquer et résoudre ce problème.

Les éléments pertinents Apple kb indique que l'erreur -43 peut avoir trois causes :

  • Caractères illégaux ( Aucun n'est présent )
  • Permissions ( Les autorisations semblent correctes, voir la page ls -la ci-dessus. Je monte le partage avec le compte administrateur du NAS et je suis connecté en tant qu'administrateur sur mon client Mac. )
  • Point de partage inexistant ( le partage existe et fonctionne bien par ailleurs )

Informations complémentaires

Voici quelques informations supplémentaires pour le dépannage :

Les options globales de la rubrique /etc/smb.conf sur le NAS sont définies comme suit :

[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

Les options spécifiques :

[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

Les journaux du côté du client ne disent pas grand-chose :

/private/var/log/system.log (qui inclut kernel.log depuis la version 10.8) montre des entrées occasionnelles comme :

 Oct 18 22:13:43 client kernel[0]: smb_iod_reconnect: Reconnected share MULTIMEDIA with server qnap-SAMBA._smb._tcp.local

Et /private/var/log/samba/ n'existe pas sur mon système.

Toute aide est la bienvenue.

2voto

Old Pro Points 5634

Dans votre configuration, vous avez unix extensions = no ce qui est très bien, mais c'est la raison pour laquelle les liens symboliques sur le serveur apparaissent comme des dossiers et non comme des alias. Dans ce mode, le serveur résout les liens symboliques et le client ne les voit jamais. Si le client tente de créer un lien symbolique, le serveur génère en fait un fichier alias, et non un lien symbolique host-OS. Cela s'explique notamment par des raisons de sécurité (pour éviter que quelqu'un n'accède aux fichiers /etc/passwd sur le serveur en créant un lien symbolique vers celui-ci) et la compatibilité avec les clients, car OS X, Windows et Unix ont des idées légèrement différentes sur ce qui constitue un lien symbolique, mais ils sont à peu près d'accord sur ce qu'est un répertoire ou un fichier.

Les problèmes de permissions avec SAMBA sont complexes, il n'est donc pas certain que vous n'ayez pas de problème de permissions. De même, la résolution de problèmes symboliques est complexe, il n'est donc pas certain que ce que vous faites devrait, en théorie, fonctionner, et il est toujours possible qu'il y ait un bogue (très probablement dans le serveur SAMBA).

Lorsque l'on accède à un serveur SAMBA à partir d'un Mac, ces identités et autorisations sont impliquées :

  • L'utilisateur Mac sous lequel vous êtes connecté au Mac
  • L'utilisateur SAMBA sous lequel vous êtes connecté au serveur SAMBA
  • L'utilisateur du système d'exploitation hôte du serveur SMABA est converti en
  • Permissions de fichiers de type Unix
  • Pour NTFS et HFS+, les ACL associées au système de fichiers

Ainsi, même si vous avez fourni de nombreuses informations, il n'est toujours pas clair que vous n'avez pas de problèmes de permissions. Le fait que vous puissiez mv y cp sur le serveur (en utilisant quel compte ?) ne signifie pas que vous n'avez pas un problème de permissions vous empêchant de le faire sur le client (en utilisant quels comptes et avec quel compte effectif sur le serveur ?)

Si le serveur prend en charge les listes de contrôle d'accès (ACL) et que vous disposez d'options telles que inherit permissions = yes y inherit acls = yes Il se peut qu'il y ait un problème d'ACL qui n'autorise que l'accès en lecture aux répertoires accessibles par des liens symboliques. Il existe plusieurs autres pistes de recherche en fonction de la configuration du serveur.

Je m'attends à ce que vous puissiez trouver plus d'informations dans les journaux du serveur SAMBA que celles que vous avez communiquées. Ils devraient vous donner une bien meilleure idée de ce qui est refusé.

Pour ce que cela vaut, j'ai essayé de reproduire votre configuration en utilisant un hôte Ubuntu 12.04 comme serveur SAMBA et je n'ai pas pu reproduire votre problème. Symb

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X