¿Cómo escribir en HFS+ a través de AFP/Netatalk sin permiso denegado y error cnid_metad?

¿Cómo escribir en HFS+ a través de AFP/Netatalk sin permiso denegado y error cnid_metad?

Paso las últimas 24 horas instalando mi servidor Debian con todo tipo de paquetes. Como este servidor se ejecuta en el entorno Mac OS X (10.8), mi objetivo inicial era utilizar este servidor como reemplazo de TimeCapsule.

Por lo tanto, instalé Netatalk 3.0.2 y avahi-daemon para compatibilidad con zeroConfig y Time Machine.

Los discos duros conectados a mi servidor tienen formato HFS+ con un esquema de partición GUID.

Configuré un volumen con una carpeta para cada Mac como volúmenes TimeCapsule y agregué dos usuarios de Unix para que pudieran acceder a esas unidades y dos unidades adicionales como unidades de datos. Cambié la propiedad de las unidades/carpetas TimeCapsule al

chown -R userA:userA /media/usb/TimeCapsuleA
and
chown -R userB:userB /media/usb/TimeCapsuleB

Mi /etc/afp.conf se ve así

[Global]
hostname = TimeCapsule
log file = /var/log/netatalk.log
uam list = uams_guest.so, uams_dhx.so, uams_dhx2.so,
zeroconf = yes
save password = yes
mimic model = TimeCapsule6,106
log level = default:warn
log file = /var/log/netatalk.log
hosts allow = 192.168.178.0/24

[default_for_all_vol]


[TimeCapsuleA]
path = /media/usb/TimeCapsuleBackup/TimeCapsuleA/
time machine = yes
valid user = usera
invisible dots = yes
search db = yes
ea = auto
cnid scheme = dbd

[TimeCapsuleB]
path = /media/usb/TimeCapsuleBackup/TimeCapsuleB/
time machine = yes
valid user = userb
invisible dots = yes
search db = yes
ea = auto

[PogoPlug1]
path = /media/usb/PogoPlug1/
cnid scheme = dbd
ea = auto 
mac charset = MAC_ROMAN
invisible dots = yes
search db = yes
valid user = userA userB

[OSX-Exchange]
path = /media/usb/OSX-Exchange/
cnid scheme = dbd
ea = auto 
mac charset = MAC_ROMAN
invisible dots = yes
search db = yes
valid user = userA userB

mi mesa de montaje

/etc/auto.misc on /media/usb type autofs (rw,relatime,fd=6,pgrp=1658,timeout=300,minproto=5,maxproto=5,indirect)
/dev/sdb2 on /media/usb/TimeCapsuleBackup type hfsplus (ro,nosuid,nodev,noexec,relatime,sync,umask=22,uid=0,gid=0,nls=utf8)
/dev/sdc2 on /media/usb/PogoPlug1 type hfsplus (ro,nosuid,nodev,noexec,relatime,sync,umask=22,uid=0,gid=0,nls=utf8)
/dev/sdd2 on /media/usb/OSX-Exchange type hfsplus (ro,nosuid,nodev,noexec,relatime,sync,umask=22,uid=0,gid=0,nls=utf8)

Permisos de /media/usb/

drwxrwxrwx 1 evils evils   20 Feb 27 01:24 OSX-Exchange
drwxrwxr-x 1 evils evils   18 Feb 27 01:19 PogoPlug1
drwxrwxr-x 1 root  root    12 Feb 27 01:00 TimeCapsuleBackup

Todas las unidades se montan mediante autofs. UsuarioA y UsuarioB son miembros del grupo 0 y pueden escribir en todas las unidades cuando intentan hacerlo a través del terminal.

Ahora, cuando intento acceder al volumen TimeCapsuleA como UsuarioA, obtengo acceso completo de escritura y puedo usar el volumen como volumen de copia de seguridad de TimeMachine. Pero cuando accedo a OSX-Exchange o PogoPlug1 con el mismo usuario que forma parte del grupo 0, no obtengo ningún acceso de escritura, lo que es realmente extraño ya que puedo escribir en el mismo disco con el mismo usuario a través del terminal. Cuando cambio la propiedad exactamente a este usuario, obtengo acceso de escritura nuevamente, pero solo este usuario en particular puede escribir nuevamente y ninguno de los demás en el mismo gid o en el parámetro de usuario válido puede escribir.

Ahora que tengo varios usuarios que necesitan acceder a esas unidades de datos, necesito encontrar una manera de escribir en la misma unidad sin cambiar la propiedad cada vez que cambia el usuario que escribe.

Mi archivo de registro de netatalk genera esto al iniciar netatalk:

Feb 27 00:59:08.422374 cnid_dbd[3314] {netatalk_conf.c:196} (W:AFPDaemon): volume "TimeMachineFH" does not support Extended Attributes or read-only volume
Feb 27 00:59:08.423147 cnid_dbd[3314] {netatalk_conf.c:196} (W:AFPDaemon): volume "TimeMachineNS" does not support Extended Attributes or read-only volume
Feb 27 00:59:08.423549 cnid_dbd[3314] {netatalk_conf.c:196} (W:AFPDaemon): volume "PogoPlug1" does not support Extended Attributes or read-only volume
Feb 27 00:59:08.423828 cnid_dbd[3314] {netatalk_conf.c:196} (W:AFPDaemon): volume "OSX-Exchange" does not support Extended Attributes or read-only volume
Feb 27 01:04:34.658562 cnid_metad[3460] {netatalk_conf.c:196} (W:AFPDaemon): volume "TimeMachineFH" does not support Extended Attributes or read-only volume
Feb 27 01:04:34.659329 cnid_metad[3460] {netatalk_conf.c:196} (W:AFPDaemon): volume "TimeMachineNS" does not support Extended Attributes or read-only volume
Feb 27 01:04:34.659725 cnid_metad[3460] {netatalk_conf.c:196} (W:AFPDaemon): volume "PogoPlug1" does not support Extended Attributes or read-only volume
Feb 27 01:04:34.660002 cnid_metad[3460] {netatalk_conf.c:196} (W:AFPDaemon): volume "OSX-Exchange" does not support Extended Attributes or read-only volume
Feb 27 01:04:34.799875 afpd[3459] {netatalk_conf.c:196} (W:AFPDaemon): volume "TimeMachineFH" does not support Extended Attributes or read-only volume
Feb 27 01:04:34.800798 afpd[3459] {netatalk_conf.c:196} (W:AFPDaemon): volume "TimeMachineNS" does not support Extended Attributes or read-only volume
Feb 27 01:04:34.801209 afpd[3459] {netatalk_conf.c:196} (W:AFPDaemon): volume "PogoPlug1" does not support Extended Attributes or read-only volume
Feb 27 01:04:34.801534 afpd[3459] {netatalk_conf.c:196} (W:AFPDaemon): volume "OSX-Exchange" does not support Extended Attributes or read-only volume
Feb 27 01:04:53.508492 afpd[3464] {netatalk_conf.c:196} (W:AFPDaemon): volume "TimeMachineFH" does not support Extended Attributes or read-only volume
Feb 27 01:04:53.508942 afpd[3464] {netatalk_conf.c:196} (W:AFPDaemon): volume "TimeMachineNS" does not support Extended Attributes or read-only volume
Feb 27 01:04:53.509239 afpd[3464] {netatalk_conf.c:196} (W:AFPDaemon): volume "PogoPlug1" does not support Extended Attributes or read-only volume
Feb 27 01:04:53.509531 afpd[3464] {netatalk_conf.c:196} (W:AFPDaemon): volume "OSX-Exchange" does not support Extended Attributes or read-only volume

Aunque tengo acceso completo de escritura cuando la propiedad coincide con la del usuario que inició sesión.

Estos son los errores que recibo cuando intento crear una nueva carpeta a través de AFP:

Feb 27 01:05:08.355873 afpd[3467] {ad_open.c:976} (E:Default): ad->ad_ops->ad_mkrf(ad_p) failed: Permission denied

¡Cualquier ayuda será muy apreciada!

Respuesta1

¿Puede tener algo que ver con el hecho de que todas sus monturas son de solo lectura? Los tres volúmenes tienen elroatributo en la tabla de montaje. Utilizar elrw(lectura-escritura) en el/etc/fstabarchivo si lo monta automáticamente, así:

/dev/sXXX /media/usb/volume_name type hfsplus rw,nosuid,nodev,noexec,relatime,sync,umask=22,uid=0,gid=0,nls=utf8

O, si monta manualmente, use:

sudo mount /dev/XXX /media/usb/volume_name -t hfsplus -o rw,nosuid,nodev,noexec,relatime,sync,umask=22,uid=0,gid=0,nls=utf8

Respuesta2

Me he estado golpeando la cabeza contra la pared con un problema similar, el mensaje de error es exactamente el mismo: cnid_metad[]: volume "MyVolume" does not support Extended Attributes or read-only volume

La versión de Netatalk usaba 3.1.8, pero básicamente cualquier 3.x produce el mismo mensaje.

En mi caso, estaba compartiendo el sistema de archivos reiserfs y no necesito atributos extendidos, esto es solo el volumen de acceso a datos. Entonces quería borrar el error de daemon.log de mi servidor de sistema Linux Debian, porque está destruyendo los registros.

La solución es deshabilitar los atributos extendidos en todas las configuraciones ea = noney recurrir a una versión anterior de AppleDouble con appledouble = v2.

Poner código en la sección Volumen:

[MyVolume]
...
appledouble = v2
ea = none

Respuesta3

La clave de configuración es plural: valid users.

información relacionada