Netatalk Manual

Upgrading from prior Netatalk versions

Upgrading from Netatalk 3

Upgrading to Netatalk 4 from Netatalk 3 is trivial. Just install the new version on top of the old one. The primary difference is that Netatalk 4 brings back essential AppleTalk services, configuration files, and tools that were removed between Netatalk 2 and Netatalk 3.

Notably, the atalkd daemon with its atalkd.conf configuration file, and the papd daemon with its papd.conf configuration file are once more available.

Upgrading from Netatalk 2

There are three major changes between Netatalk 2 and Netatalk 4:

  1. New configuration files that replaces most of the previous ones: afp.conf and extmap.conf

  2. New backend for file metadata which stores metadata in extended attributes of the filesystem.

  3. The AppleTalk transport layer is disabled by default. If you want to use Netatalk with very old Macs, turn it on with the appletalk = yes option in afp.conf. Then start the atalkd daemon before netatalk in order to activate the AppleTalk transport layer.

New configuration

afp.conf

WARNING

most option names have changed, read the full manpage afp.conf for details

extmap.conf

New metadata backend

New file metadata backend ea = sys which stores macOS extended attributes and Classic Mac OS resource forks in extended attributes of the filesystem.

Implementation details:

Other major changes

Upgrading procedure

  1. Stop Netatalk 2.x

  2. Install Netatalk 4

  3. Manually recreate configurations in afp.conf and extmap.conf

  4. Update your Netatalk init script to start netatalk instead of afpd and cnid_metad, or replace it with the appropriate stock init script for your system.

  5. Move afp_voluuid.conf and afp_signature.conf to the localstate directory (default $prefix/var/netatalk/), you can use afpd -v in order to find the correct path

  6. Start Netatalk 4

Old and new configuration file names

| Old File Name        | New File Name      | Remarks                       |
|----------------------|--------------------|-------------------------------|
| -                    | afp.conf           | new ini-style format          |
| afp_signature.conf   | afp_signature.conf | moved to $localstatedir       |
| afp_voluuid.conf     | afp_voluuid.conf   | moved to $localstatedir       |
| netatalk.conf        | -                  | obsolete                      |
| afpd.conf            | -                  | merged into afp.conf          |
| afp_ldap.conf        | -                  | merged into afp.conf          |
| AppleVolumes.default | -                  | merged into afp.conf          |
| AppleVolumes.system  | extmap.conf        | introduced in netatalk 3.0.2  |
| ~/.AppleVolumes      | -                  | obsolete                      |

Old and new option names

Mappings from netatalk.conf (Debian: /etc/default/netatalk) to afp.conf or to the means of invocation

| Old netatalk.conf  | New afp.conf    | Old Default Value        | New Default Value        | Section | Remarks                       |
|--------------------|-----------------|--------------------------|--------------------------|---------|-------------------------------|
| ATALK_NAME         | hostname        | -                        | -                        | (G)     | use gethostname() by default  |
| ATALK_UNIX_CHARSET | unix charset    | LOCALE                   | UTF8                     | (G)     | -                             |
| ATALK_MAC_CHARSET  | mac charset     | MAC_ROMAN                | MAC_ROMAN                | (G)/(V) | -                             |
| CNID_METAD_RUN     | -               | yes                      | -                        | -       | controlled by netatalk(8)     |
| AFPD_RUN           | -               | yes                      | -                        | -       | controlled by netatalk(8)     |
| AFPD_MAX_CLIENTS   | max connections | 20                       | 200                      | (G)     | -                             |
| AFPD_UAMLIST       | uam list        | uams_dhx.so,uams_dhx2.so | uams_dhx.so uams_dhx2.so | (G)     | -                             |
| AFPD_GUEST         | guest account   | nobody                   | nobody                   | (G)     | -                             |
| CNID_CONFIG        | log level       | log_note                 | cnid:note                | (G)     | -                             |
| CNID_CONFIG        | log file        | -                        | -                        | (G)     | -                             |
| ATALKD_RUN         | -               | no                       | -                        | -       | controlled by the init system |
| PAPD_RUN           | -               | no                       | -                        | -       | controlled by the init system |
| TIMELORD_RUN       | -               | no                       | -                        | -       | controlled by the init system |
| A2BOOT_RUN         | -               | no                       | -                        | -       | controlled by the init system |
| ATALK_BGROUND      | -               | no                       | -                        | -       | obsolete                      |
| ATALK_ZONE         | ddp zone        | -                        | -                        | (G)     | introduced in 4.0.0           |

Mappings from afpd.conf to afp.conf

| Old afpd.conf      | New afp.conf    | Old Default Value        | New Default Value        | Section | Remarks                              |
|--------------------|-----------------|--------------------------|--------------------------|---------|--------------------------------------|
| - or "server name" | server name     | -                        | -                        | (G)     | new in 4.2.0; default is hostname    |
| -uamlist           | uam list        | uams_dhx.so,uams_dhx2.so | uams_dhx.so uams_dhx2.so | (G)     | -                                    |
| -nozeroconf        | zeroconf        | -                        | yes (if supported)       | (G)     | -                                    |
| -advertise_ssh     | advertise ssh   | -                        | no                       | (G)     | -                                    |
| -[no]savepassword  | save password   | -savepassword            | yes                      | (G)     | -                                    |
| -[no]setpassword   | set password    | -nosetpassword           | no                       | (G)     | -                                    |
| -client_polling    | client polling  | -                        | no                       | (G)     | -                                    |
| -hostname          | hostname        | -                        | -                        | (G)     | use gethostname() by default         |
| -loginmesg         | login message   | -                        | -                        | (G)/(V) | -                                    |
| -guestname         | guest account   | nobody                   | nobody                   | (G)     | -                                    |
| -passwdfile        | passwd file     | afppasswd                | afppasswd                | (G)     | -                                    |
| -passwdminlen      | passwd minlen   | -                        | -                        | (G)     | -                                    |
| -tickleval         | tickleval       | 30                       | 30                       | (G)     | -                                    |
| -timeout           | timeout         | 4                        | 4                        | (G)     | -                                    |
| -sleep             | sleep time      | 10                       | 10                       | (G)     | -                                    |
| -dsireadbuf        | dsireadbuf      | 12                       | 12                       | (G)     | -                                    |
| -server_quantum    | server quantum  | 303840                   | 1048576                  | (G)     | -                                    |
| -volnamelen        | volnamelen      | 80                       | 80                       | (G)     | -                                    |
| -setuplog          | log level       | default log_note         | default:note             | (G)     | -                                    |
| -setuplog          | log file        | -                        | -                        | (G)     | -                                    |
| -admingroup        | admingroup      | -                        | -                        | (G)     | -                                    |
| -k5service         | k5 service      | -                        | -                        | (G)     | -                                    |
| -k5realm           | k5 realm        | -                        | -                        | (G)     | -                                    |
| -k5keytab          | k5 keytab       | -                        | -                        | (G)     | -                                    |
| -uampath           | uam path        | etc/netatalk/uams        | lib/netatalk             | (G)     | moved to $libdir                     |
| -ipaddr            | afp listen      | -                        | -                        | (G)     | -                                    |
| -cnidserver        | cnid server     | localhost:4700           | localhost:4700           | (G)/(V) | -                                    |
| -port              | port            | 548                      | 548                      | (G)     | -                                    |
| -signature         | signature       | auto                     | -                        | (G)     | -                                    |
| -fqdn              | fqdn            | -                        | -                        | (G)     | -                                    |
| -unixcodepage      | unix charset    | LOCALE                   | UTF8                     | (G)     | -                                    |
| -maccodepage       | mac charset     | MAC_ROMAN                | MAC_ROMAN                | (G)/(V) | -                                    |
| -closevol          | close vol       | -                        | no                       | (G)     | -                                    |
| -ntdomain          | nt domain       | -                        | -                        | (G)     | -                                    |
| -ntseparator       | nt separator    | -                        | -                        | (G)     | -                                    |
| -dircachesize      | dircachesize    | 8192                     | 8192                     | (G)     | -                                    |
| -tcpsndbuf         | tcpsndbuf       | -                        | -                        | (G)     | OS default                           |
| -tcprcvbuf         | tcprcvbuf       | -                        | -                        | (G)     | OS default                           |
| -fcelistener       | fce listener    | -                        | -                        | (G)     | -                                    |
| -fcecoalesce       | fce coalesce    | -                        | -                        | (G)     | -                                    |
| -fceevents         | fce events      | -                        | -                        | (G)     | -                                    |
| -fceholdfmod       | fce holdfmod    | 60                       | 60                       | (G)     | -                                    |
| -mimicmodel        | mimic model     | -                        | -                        | (G)     | -                                    |
| -adminauthuser     | admin auth user | -                        | -                        | (G)     | -                                    |
| -noacl2maccess     | map acls        | -                        | rights                   | (G)     | -                                    |
| -[no]tcp           | -               | -tcp                     | -                        | -       | TCP transport layer is always active |
| -[no]ddp           | appletalk       | -ddp                     | no                       | (G)     | introduced in 4.0.0                  |
| -[no]transall      | -               | -transall                | -                        | -       | TCP transport layer is always active |
| -nodebug           | -               | -                        | -                        | -       | obsolete                             |
| -[no]slp           | -               | -noslp                   | -                        | -       | SLP support is obsoleted             |
| -[no]uservolfirst  | -               | -nouservolfirst          | -                        | -       | uservol is obsoleted                 |
| -[no]uservol       | -               | -uservol                 | -                        | -       | uservol is obsoleted                 |
| -proxy             | -               | -                        | -                        | -       | obsolete                             |
| -defaultvol        | -               | AppleVolumes.default     | -                        | -       | afp.conf only                        |
| -systemvol         | -               | AppleVolumes.system      | -                        | -       | extmap.conf only                     |
| -loginmaxfail      | -               | -                        | -                        | -       | obsolete                             |
| -unsetuplog        | -               | -                        | -                        | -       | obsolete                             |
| -authprintdir      | -               | -                        | -                        | -       | CAP style auth is obsoleted          |
| -ddpaddr           | ddp address     | 0.0                      | 0.0                      | (G)     | introduced in 4.0.0                  |
| -[no]icon          | legacy icon     | -noicon                  | -                        | (G)     | introduced in 4.0.2                  |
| -keepsessions      | -               | -                        | -                        | -       | obsolete; Use kill -HUP              |

Mappings from afp_ldap.conf to afp.conf

| Old afp_ldap.conf | New afp.conf     | Old Default Value | New Default Value | Section | Remarks |
|-------------------|------------------|-------------------|-------------------|---------|---------|
| ldap_server       | ldap server      | -                 | -                 | (G)     | -       |
| ldap_auth_method  | ldap auth method | -                 | -                 | (G)     | -       |
| ldap_auth_dn      | ldap auth dn     | -                 | -                 | (G)     | -       |
| ldap_auth_pw      | ldap auth pw     | -                 | -                 | (G)     | -       |
| ldap_userbase     | ldap userbase    | -                 | -                 | (G)     | -       |
| ldap_userscope    | ldap userscope   | -                 | -                 | (G)     | -       |
| ldap_groupbase    | ldap groupbase   | -                 | -                 | (G)     | -       |
| ldap_groupscope   | ldap groupscope  | -                 | -                 | (G)     | -       |
| ldap_uuid_attr    | ldap uuid attr   | -                 | -                 | (G)     | -       |
| ldap_uuid_string  | ldap uuid string | -                 | -                 | (G)     | -       |
| ldap_name_attr    | ldap name attr   | -                 | -                 | (G)     | -       |
| ldap_group_attr   | ldap group attr  | -                 | -                 | (G)     | -       |

Mappings from AppleVolumes.* to afp.conf

| Old AppleVolumes.*         | New afp.conf       | Old Default Value     | New Default Value | Section | Remarks                          |
|----------------------------|--------------------|-----------------------|-------------------|---------|----------------------------------|
| (leading-dot lines)        | -                  | -                     | -                 | -       | moved to extmap.conf             |
| :DEFAULT:                  | -                  | options:upriv,usedots | -                 | -       | use vol preset                   |
| 1st field ("~")            | -                  | -                     | -                 | -       | use [Homes] section              |
| 1st field ("/path")        | path               | -                     | -                 | (V)     | -                                |
| 2nd field                  | volume name        | -                     | section name      | (V)     | introduced in 4.2.0              |
| allow:                     | valid users        | -                     | -                 | (V)     | -                                |
| deny:                      | invalid users      | -                     | -                 | (V)     | -                                |
| rwlist:                    | rwlist             | -                     | -                 | (V)     | -                                |
| rolist:                    | rolist             | -                     | -                 | (V)     | -                                |
| volcharset:                | vol charset        | UTF8                  | unix charset      | (G)/(V) | -                                |
| maccharset:                | mac charset        | MAC_ROMAN             | MAC_ROMAN         | (G)/(V) | -                                |
| veto:                      | veto files         | -                     | -                 | (V)     | -                                |
| cnidscheme:                | cnid scheme        | dbd                   | dbd               | (V)     | -                                |
| casefold:                  | casefold           | -                     | -                 | (V)     | -                                |
| adouble:                   | -                  | v2                    | -                 | -       | removed in 4.2.0                 |
| cnidserver:                | cnid server        | localhost:4700        | localhost:4700    | (G)/(V) | -                                |
| dbpath:                    | vol dbpath         | (volume directory)    | var/netatalk/CNID | (G)     | moved to $localstatedir          |
| umask:                     | umask              | 0000                  | 0000              | (V)     | -                                |
| dperm:                     | directory perm     | 0000                  | 0000              | (V)     | -                                |
| fperm:                     | file perm          | 0000                  | 0000              | (V)     | -                                |
| password:                  | password           | -                     | -                 | (V)     | -                                |
| root_preexec:              | -                  | -                     | -                 | -       | removed in 4.1.0                 |
| preexec:                   | preexec            | -                     | -                 | (V)     | -                                |
| postexec:                  | postexec           | -                     | -                 | (V)     | -                                |
| allowed_hosts:             | hosts allow        | -                     | -                 | (V)     | -                                |
| denied_hosts:              | hosts deny         | -                     | -                 | (V)     | -                                |
| ea:                        | ea                 | auto                  | auto detection    | (V)     | leave empty for auto detection   |
| volsizelimit:              | vol size limit     | -                     | -                 | (V)     | -                                |
| perm:                      | -                  | -                     | -                 | -       | Use directory perm and file perm |
| forceuid:                  | -                  | -                     | -                 | -       | obsolete                         |
| forcegid:                  | -                  | -                     | -                 | -       | obsolete                         |
| options:ro                 | read only          | -                     | no                | (V)     | -                                |
| options:invisibledots      | invisible dots     | -                     | no                | (V)     | -                                |
| options:nostat             | stat vol           | -                     | yes               | (V)     | -                                |
| options:preexec_close      | preexec close      | -                     | no                | (V)     | -                                |
| options:root_preexec_close | -                  | -                     | -                 | -       | removed in 4.1.0                 |
| options:upriv              | unix priv          | -                     | yes               | (V)     | -                                |
| options:nodev              | cnid dev           | -                     | yes               | (V)     | -                                |
| options:illegalseq         | illegal seq        | -                     | no                | (V)     | -                                |
| options:tm                 | time machine       | -                     | no                | (V)     | -                                |
| options:searchdb           | search db          | -                     | no                | (V)     | -                                |
| options:nonetids           | network ids        | -                     | yes               | (V)     | -                                |
| options:noacls             | acls               | -                     | yes               | (V)     | -                                |
| options:followsymlinks     | follow symlinks    | -                     | no                | (V)     | -                                |
| options:nohex              | -                  | -                     | -                 | -       | auto-convert from ":2f" to ":"   |
| options:usedots            | -                  | -                     | -                 | -       | auto-convert from ":2e" to "."   |
| options:nofileid           | -                  | -                     | -                 | -       | obsolete                         |
| options:prodos             | prodos             | -                     | no                | (V)     | introduced in 4.0.0              |
| options:mswindows          | -                  | -                     | -                 | -       | obsolete                         |
| options:crlf               | -                  | -                     | -                 | -       | obsolete                         |
| options:noadouble          | -                  | -                     | -                 | -       | obsolete                         |
| options:limitsize          | legacy volume size | -                     | no                | (V)     | introduced in 4.0.0              |
| options:dropbox            | -                  | -                     | -                 | -       | obsolete                         |
| options:dropkludge         | -                  | -                     | -                 | -       | obsolete                         |
| options:nocnidcache        | -                  | -                     | -                 | -       | obsolete                         |
| options:caseinsensitive    | -                  | -                     | -                 | -       | obsolete                         |