AFPD(8)

NAME
afpd - AppleTalk Filing Protocol daemon

SYNOPSIS
/usr/local/sbin/afpd [ -d ] [ -f defaultvolumes ] [ -s systemvolumes ] [ -u ] [ -n nbpname ] [ -c maxconnections ] [ -g guest ] [ -G ] [ -K ] [ -C ] [ -A ]

DESCRIPTION
afpd provides an AppleTalk Filing Protocol (AFP) interface to the Unix file system. It is normally started at boot time from /etc/rc. The list of volumes offered to the user is generated from /etc/netatalk/AppleVolumes.system and one of /etc/netatalk/AppleVolumes.default, ~/AppleVolumes, or ~/.AppleVolumes.

The AppleVolumes files is used to specify volumes to mount and file name extension mappings. It is formatted as follows, one specification per line:

    pathname [ volumename ]
    .extension [ type [ creator ] ]

If volumename is unspecified, the last component of pathname is used. No two volumes may have the same name. If type is unspecified '????' is used. If creator is unspecified 'UNIX' is used. The extension '.' sets the default creator and type for otherwise untyped Unix files. Blank lines and lines beginning with `#' are ignored.

OPTIONS

-d  Specifies that the daemon not fork, and that a trace of all AFP commands be written to stdout.

-f defaultvolumes
    Specifies that defaultvolumes should be read for a list of default volumes to offer, instead of /etc/netatalk/AppleVolumes.default.

-s systemvolumes
    Specifies that systemvolumes should be read for a list of volume that all users will be offered, instead of /etc/netatalk/AppleVolumes.system.

-u  Read the user's AppleVolumes file first. This option causes volume names in the user's AppleVolumes file to override volume names in the system's AppleVolumes file. The default is to read the system AppleVolumes file first. Note that this option doesn't effect the precendence of filename extension mappings: the user's AppleVolumes file always has precedence.

-n nbpname
    Specifies that nbpname should be used for NBP registration, instead of the first component of the hostname in the local zone.

-c maxconnections
    Specifies the maximum number of connections to allow for this afpd. The default is 5.

-g guest
    Specifies the name of the guest account. The default is ``nobody''.

-G

-K

-C

-A  Causes the server to not offer NoUserAuthent, Kerberos IV, Cleartxt Passwrd, and AFS Kerberos logins, respectively. The default is to enable all available login methods.

AUTHENTICATION
afpd currently understands three User Authentication Methods (UAMs): NoUserAuthent, or guest, Cleartxt passwrd, and Kerberos IV. If a user uses NoUserAuthent, s/he will only be offered default volumes to mount, and will only be able to read and write files that are permitted to the guest user. The -G option disables NoUserAuthent. With Cleartxt passwd and Kerberos IV, afpd offers the user all volumes listed in ~/AppleVolumes. The user may also read and write all files that s/he normally could. Cleartxt passwd is not recommended for AFS use. Kerberos IV is recommended for AFS use. A forth, depricated UAM is also included in the distribution, AFS Kerberos.

CAVEATS
afpd's Directory IDs are only fixed for the duration of a session. This means that Mac aliases won't work correctly in all cases.

If a user renames a folder that has an application as its progeny, the APPL mapping for the application will not longer be available. This implies that double-clicking on one of the application's documents will no longer launch the application. The APPL mapping will be rebuilt by the mac, the next time the Finder see the application.

If afpd is configured to downcase Macintosh filenames, Unix filenames with mixed case will be unavailable.

If carriage return/line feed translation is enabled, it is not safe to copy Unix binaries to a Macintosh.

It is not possible to move directories between devices.

When mounting the parent of an existing volume, the desktop database of the existing volume will not be available to the parent volume. The APPL mappings and icons of applications with the BNDL bit set will be generated in the parent volume as the applications are seen by the Finder.

If a user edits his ~/AppleVolumes so that his home directory is no longer offered, he will no longer be able to edit his ~/AppleVolumes from the Macintosh.

Unix files beginning with `.' are not accessible from the mac.

If the pathname in an ~/AppleVolumes file does not exist, the volume will not be offered in the Chooser.

Microsoft Word TEXT documents do not get carriage return/line feed translation. This is because MS Word uses a type other than TEXT while writing the document, then changes the type to TEXT. To allow users to edit their ~/AppleVolumes, afpd parses the files with either end of line character.

Unix filenames that are longer than 31 characters are inaccessible from the Macintosh.

SIGNALS
Signals that are sent to the main afpd process are propagated to the children, so all will be affected.

SIGHUP
    The afpd process will send the message "The server is going down for maintenance." to the client and shut itself down in 5 minutes. New connections are not allowed. If this is sent to a child afpd, the other children are not affected. However, the main process will still exit, disabling all new connections.

SIGUSR1
    If the --with-message-dir configure option was used, the afpd process will set the debug option and redirect the messages to /var/tmp/afpd-debug-pid. This should only be sent to a child afpd. Warning: If the --with-message-dir option was not used, this will kill the afpd process.

SIGUSR2
    The afpd process will look in the msg directory for a file named message.pid. For each one found, a the contents will be sent as a message to the associated AFP client. The file is removed after the message is sent.

FILES

/etc/netatalk/AppleVolumes.default
    list of default volumes to mount

/etc/netatalk/AppleVolumes.system
    list of volumes to offer all users

~/AppleVolumes
    user's list of volumes to mount

/etc/netatalk/msg/message.pid
    contains messages to be sent to users.

/var/tmp/afpd-debug-pid
    contains debug output, if triggered.

BUGS
A few calls from the AFP specification are not implemented, because the Macintosh does not use them.