AFP
From Alessandro's Wiki
this is the protocol used for network file sharing in Apple systems (at leas for the latest ones)
server settings
user permissions
- in /etc/netatalk/AppleVolumes.default we can set the file permissions to use for each service.
- example: we have a network with an all-users group and we want them to be able to overwrite each-other files. Others can read:
- umask:002
- dperm:0775
- fperm:0664
- default linux behaviour, with read only to group users.
- umask:022
- dperm:0755
- fperm:0644
- example: we have a network with an all-users group and we want them to be able to overwrite each-other files. Others can read:
- the complete line:
/directory/shared/ "Awesome Share" options:usedots,upriv,noadouble,nohex cnidscheme:cdb umask:002 dperm:0775 fperm:0664
veto files
- this option hides the objects specified between slashes
veto: recycled/desktop.ini/Folder Settings/
Volumes
- defaults:
:DEFAULT: options:upriv,usedots,tm umask:002 dperm:0775 fperm:0664
- only user home with defaults:
~
- a time machine volume (user based) :
/backup/timemachine/$u/ "TimeMachine" options:usedots,upriv,noadouble,nohex,tm
- a share allowed only to some users and group "video"
/export/ingestion "Ingest" options:usedots,upriv,noadouble,nohex cnidscheme:cdb umask:002 dperm:0775 fperm:0664 allow:ale,jack,@video
- we need to create an hidden folder for AppleDB files:
mkdir /share/hidden chmod 700 /share/hidden dbpath:/share/hidden/.AppleDB/
- a read only share
/export/mirror/share "Share-snapshot" options:usedots,noadouble,nohex,ro,nocnidcache
problem solving
- in the log you'll see the server stopping after a message like this:
afpd[]: Setting uid/gid to 100/100
- the solution in my case was:
- stop the server
- remove the Finder database file .AppleDB
- restart server.
when having a mirror server
- DB becomes inconsistent due to path change (if different server) , the RSYNC command will need to exclude some files:
cat /mirror/excludes_afp .AppleDB/ .DS_Store .AppleDesktop/ .TemporaryItems/ Temporary Items/ Network Trash Folder/
- example:
rsync -a --delete --delete-excluded --exclude-from=/mirror/excludes_afp source_host:/intestine/ /mirror/host/
- mediacluster excludes
.encoding.log .encoding.log.post.txt .encoding.log.p2.txt .stats.mbtree .stats ingestion/done/ virtual/