Как записать в HFS+ через AFP/Netatalk без отказа в доступе и ошибки cnid_metad?

Как записать в HFS+ через AFP/Netatalk без отказа в доступе и ошибки cnid_metad?

Я потратил последние 24 часа на установку своего сервера Debian со всеми видами пакетов. Поскольку этот сервер работает в среде Mac OS X (10.8), моей первоначальной целью было использовать этот сервер в качестве замены TimeCapsule.

Поэтому я установил Netatalk 3.0.2 и avahi-daemon для поддержки zeroConfig и Time Machine.

Жесткие диски, подключенные к моему серверу, отформатированы в файловой системе HFS+ со схемой разделов GUID.

Я настроил один том с одной папкой для каждого Mac как TimeCapsule Volumes и добавил двух пользователей unix для доступа к этим дискам и два дополнительных диска как Data Drives. Я изменил владельца дисков/папок TimeCapsule,

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

Мой /etc/afp.conf выглядит так

[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

Мой стол для крепления

/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)

Разрешения /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

Все диски смонтированы через autofs. UserA и UserB оба являются членами группы 0 и могут записывать на все диски при попытке сделать это через терминал.

Теперь, когда я пытаюсь получить доступ к тому TimeCapsuleA как UserA, я получаю полный доступ на запись и могу использовать том как том резервного копирования TimeMachine. Но когда я получаю доступ к OSX-Exchange или PogoPlug1 с тем же пользователем, который входит в группу 0, я не получаю никакого доступа на запись, что действительно странно, так как я могу писать на тот же диск с тем же пользователем через терминал. Когда я меняю владельца на этого пользователя, я снова получаю доступ на запись, но тогда только этот конкретный пользователь может снова писать, и никто из других в том же gid или в допустимом параметре пользователя не может писать.

Теперь, поскольку у меня есть несколько пользователей, которым необходим доступ к этим дискам с данными, мне нужно найти способ записи на один и тот же диск, не меняя владельца каждый раз, когда меняется пользователь, осуществляющий запись.

Мой файл журнала netatalk выводит следующее при запуске 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

Даже если у меня есть полный доступ на запись, если владелец совпадает с вошедшим в систему пользователем.

Вот ошибки, которые я получаю при попытке создать новую папку через 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

Любая помощь будет высоко оценена!

решение1

Может быть, это как-то связано с тем, что все ваши монтировки доступны только для чтения? Все три тома имеютроатрибут в таблице монтирования. Используйтерв(чтение-запись) опция в/etc/fstabфайл, если вы монтируете автоматически, например так:

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

Или, если вы монтируете вручную, используйте:

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

решение2

Я бился головой об стену с похожей проблемой, сообщение об ошибке точно такое же: cnid_metad[]: volume "MyVolume" does not support Extended Attributes or read-only volume

Версия Netatalk использовала 3.1.8, но в принципе любая версия 3.x выдает одно и то же сообщение.

В моем случае я делил файловую систему reiserfs и мне не нужны расширенные атрибуты, это только объем доступа к данным. Поэтому я хотел очистить ошибку из daemon.log моего сервера Debian linux system, потому что она засоряет логи.

Решение — отключить расширенные атрибуты во всех настройках ea = noneи вернуться к старой версии AppleDouble с appledouble = v2.

Поместите код в раздел «Объем»:

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

решение3

Ключ конфигурации имеет множественное число: valid users.

Связанный контент