How to write to HFS+ through AFP/Netatalk without permission denied and cnid_metad error?

2

1

I spend the last 24 hours installing my debian server with all kind of packages. As this server runs in Mac OS X (10.8) Environment, my initial goal was to use this server as a TimeCapsule replacement.

Therefore I installed Netatalk 3.0.2 and avahi-daemon for zeroConfig and Time Machine support.

The harddrives attached to my server are HFS+ formatted with a GUID Partition scheme.

I did set up one volume with one folders for each Mac as TimeCapsule Volumes and added two unix user for them to access those drives and two additional drives as Data Drives. I changed the ownership of the TimeCapsule drives/folders by

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

My /etc/afp.conf looks like this

[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

My mount table

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

Permissions of /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

All drives are mounted through autofs. UserA and UserB are both member of the group 0 and can write to all drive when trying to do this through the terminal.

Now when I try to access the TimeCapsuleA Volume as UserA through, I get full write access and I can use the volume as TimeMachine Backup Volume. But when I access OSX-Exchange or PogoPlug1 with the same user who's part of the group 0, I don't get any write access, what's really strange as I can write to the same disc with the same user through the terminal. When I change the ownership to exactly this user, I get write access again, but then only this particular user is able to write again and none of the others in the same gid or in the valid user parameter is able to write.

Now as I have several users who need to access those data drives, I need to find a way how to write to the same drive without changing the ownership each time the writing user changes.

My netatalk log file outputs this when starting 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

Even though I have full write access when the ownership matches with the logged in user.

These are the errors I get when I try to create a new folder through 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

Any help will be highly appreciated!

Evils

Posted 2013-02-27T10:09:27.517

Reputation: 154

Answers

1

May it be something to do with the fact that all your mounts are read-only? All three volumes have the ro attribute in the mount table. Use the rw (read-write) option in the /etc/fstab file if you mount automatically, like so:

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

Or, if you mount manually, 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

Charles G.

Posted 2013-02-27T10:09:27.517

Reputation: 26

You're right that it's ro mounted in this example, but this just happened mistakenly when I copy pasted the output for this question here. Normally (and especially when the error occured) all drives were mounted read write. – Evils – 2013-03-16T14:41:52.643

1

I have been beating head on wall with similar problem, the error message is exaclty the same: cnid_metad[]: volume "MyVolume" does not support Extended Attributes or read-only volume

Netatalk version used 3.1.8, but basically any 3.x produce the same message.

In my case I was sharing reiserfs file system and I have no need for extended attributes, this is only data access volume. So I wanted to clear error from daemon.log of my Debian linux system server, because its trashing the logs.

Solution is to disable extended attributes at all setting ea = none and fallback to older version of AppleDouble with appledouble = v2.

Put code to Volume section:

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

Arunas Bartisius

Posted 2013-02-27T10:09:27.517

Reputation: 895

This helped me to get going again on a Raspberry Pi, that has an external HDD attached, mounted with a NTFS and EXT4 partition. After applying your suggested change to afp.conf I could (again) create/rename/delete files. Beforehand I only had read-only access. – Peter Pablo – 2018-02-17T18:43:30.083

-1

The configuration key is plural: valid users.

C Fraire

Posted 2013-02-27T10:09:27.517

Reputation: 99