aufs(8)

NAME
aufs - daemon program to establish AppleTalk filing protocol UNIX File Server

SYNOPSIS
aufs [ -n <name> ] [ -V <system afpvols> ] [ -U <number of sessions> ] [ -P <password file> ] [ -G <guest id> ] [ -X <directory name> ] [ -A <application control file> ] [ -F <file type mapping> ] [ -B <IPaddress[:port]> ] [ -f <IP filter file> ] [ -[i|I] <idle timeout> ] [ -c <directory name> ] [ -l <logfile name> ] [ -m <motdfile name> ] [ -M <msgfile name> ] [ -S <n> ] [ -R <n> ] [ -r <readme_path> ] [ -k ] [ -p ] [ -s ] [ -u ] [ -T ] [ -d <flags> ] [ -a <flags> ] [ -t <Input | Output | Both><cmdname> ] [ -L <authorization program> ] [ -Z <debugfile> ]

DESCRIPTION
aufs implements a file server on a UNIX host for client computers on AppleTalk that support AFP, or Macintoshes on the internet that support AFP via TCP/IP using AppleShare client 3.7 or later. This manual entry describes how to run the UNIX server daemon process. See AUFS(1) for information about how to use the server.

aufs is normally started at boot time via a command in start-cap-servers (which is usually run from /etc/rc.local). The CAP name information server daemon atis must be running when aufs is started. AUFS must be run from the root account. If debugging options are specified (see -d or -a, below), aufs runs in the foreground to log messages to standard output. Otherwise, it automatically puts itself into the background to run as a daemon process. The master daemon forks a new child process to handle each client connection request.

OPTIONS
There are no arguments needed for normal operation. Optional arguments allow control of configuration and debugging.

-n <name>
    is used to specify the server name. By default the server name is "<hostname> Aufs".

-V <system afpvols>
    is used to specify a server-wide volumes file. The volumes listed in the file will be available to every AFP client. Individual users may also have their own volumes file in their home directory. See AUFS(1) for a description of the volumes file format.

-U <number of sessions>
    is used to modify the maximum number of sessions allowed. The default is around 10 or so (depends on the ASP implementation). The maximum value is limited solely by the number of DDP sockets available. One UNIX process is created for each open session.

-P <password file>
    specifies the absolute pathname of a "lookaside" password file containing cleartext usernames and passwords or to an optional administrative file that lists valid usernames for use with the DISTRIB_PASSWDS feature (must be specified at compile time by enabling the option at Configure time). This option requires special configuration when installing aufs -- see the installation instructions in the source directory.

-G <guest name>
    is used to allow "guest" or "Anonymous" AppleShare sessions. This is not enabled by default, as it is a security violation unless it is done in a very controlled fashion. In particular, <guest name> should be the username of a UNIX account with very limited privilege and volume access. A common account used for this purpose is "nobody". For guest sessions, no user volumes file is allowed or read.

-X <directory name>
    is used to allow access control for lwsrv. Lwsrv requires the same option in order to enable the access control (this option must be specified at compile time by enabling the LWSRV_AUFS_SECURITY option at Configure time). The directory specified will be used to store temporary information used to authenticate the user. It is not uncommon to use /tmp as the directory, although it is probably much better to use a separate directory. aufs will normally remove the temporary files, but if the directory used is not /tmp, something should be run that will remove all the files within that directory when the machine is starting up.

-A <application control file>
    allows the maximum number of times an application may be opened to be controlled (this option must be specified at compile time by enabling the APPLICATION_MANAGER option at Configure time). The control file lists the full path to each Application data fork followed by a colon ':' and a number. An optional trailing 'P' may be added to protect the Application from Finder copying. For more details, see contrib/AppManager/README.

-F <file type mapping>
    specifies a global file which maps a UNIX file suffix into a Mac Type and Creator (this option must be specified at compile time by enabling the USR_FILE_TYPES option at Configure time). The mapping file also indicates the type of data translation to be used and a specific comment string. A user may over-ride these mappings by having a .afpfile (or afpfile) file in their home directory.

-T  enables AppleShareIP (AFP via TCP/IP) support in aufs. Note that the first aufs process defaults to the well-know port number 548. Subsequent incarnations of aufs will require that the TCP/IP port number be specified using the -B option. Clients needing to connect to these servers, that are not also connected to the same network via AppleTalk, must specify the port number in the dialog box obtained by clicking on the Chooser "Server IP Address..." button. The format is the same as for the -B option, ie: 128.250.1.21:2169 to use port number 2169 on host 128.250.1.21.

-B <IPaddress[:port]>
    tells aufs to listen for TCP/IP connections at the specified IP address and optional port (defaults to any available interface address and port number 548). This option implies -T.

-f <IP filter file>
    specifies the pathname of a file containing yes/no permissions for client IP numbers or subnets wishing to connect using AFP via TCP/IP. See the file cap60/etc/aufsIPFilter for details.

-c <directory name>
    specifies a directory where aufs can put coredumps. Hopefully, you won't see any coredumps.

-l <logfile name>
    can be used to specify the path name of a file for logging messages. The default log file is a file with the name <server name>.log (see -n option) in the current working directory where aufs is started. There is no way to turn off logging.

-m <motdfile name>
    specifies the path name of a file which contains a "message of the day" to be displayed when an AFP 2.1 compatible client connects to the server.

-M <msgfile name>
    specifies the path name of a file which contains a message to be sent to all connected (and AFP 2.1 compatible) clients when the parent AUFS process is sent an URG signal. Typically used for "the server will be unavailable" messages.

-S <n>
    is used to specify the number of packets the server is allowed to send in each ATP response to the client, where <n> can vary from 1 to 8. This controls the flow rate for data sent from the server to the client. It may be required when the UNIX host system sends back to back packets at a faster rate than the target system or intervening gateways can accept. The default value is installation dependent (see LOCAL CONFIGURATION, below).

-R <n>
    is used to specify to the client the number of packets he is allowed to send in each ATP response to the server, where <n> can vary from 1 to 8. This controls the flow rate for data sent from the client to the server. It may be required when the UNIX host system cannot process received back to back packets (due to speed or buffer space limitations) as fast as the remote system or intervening gateways can send them. The default value is installation dependent (see LOCAL CONFIGURATION, below).

-r <readme_path>
    is used to specify a README file (full path name) to be linked into the top level directory of a new AUFS user. For example: to explain the purpose of settings (this option must be specified at compile time by enabling the AUFS_README option at Configure time).

-[i|I] <idle_time>
    sets an AUFS idle timeout, after which the AUFS session will begin to close down, sending warning messages at the 5, 3 and 1 minute marks. Any access to the server volume from the 5 minute mark onward will reset the timeout and send a "no longer shutting down" message to the Macintosh. The -i flag specifies that timeouts are for GUEST connections only, -I specifies everyone. The <idle_time> field is measured in minutes (this option must be specified at compile time by enabling the AUFS_IDLE_TIMEOUT option at Configure time).

-u  tells the AUFS server not offer volumes specified in the afpvols file of the user's home directory. For use when the directories are NFS mounted or the server has a specific/special function.

-k  specifies that DDP checksums are not to be used, the field is set to zero.

-p  is used to tell AFP 2.1 compatible Macintosh clients to not save the user's password in long term storage.

-L<authorization program>
    is used to specify a full path name to an external authorization program. The program is passed the AppleTalk network number, node number and name of the client and the AUFS server name, in that order. The program should return 0 to authorize the user and non-zero to deny access. An unsuccessful attempt is treated in the same way as "user unknown" or "login disabled". This option may also be used to log server connections (this option must be specified at compile time by enabling the LOGIN_AUTH_PROG option at Configure time).

DEBUGGING OPTIONS

-Z<debugfile>
    is used to specify the name of the output file to use for detailed debugging of AFP commands (this option must be specified at compile time by enabling the DEBUG_AFP_CMD option at Configure time).

-s  tells aufs to report usage statistics such as system time use and number of times encountered for the various AFP commands. These statistics are recorded in the log file at the end of a run.

-d <flags>
    specifies debugging flags for the cap libraries. See cap(3) for a list of valid flags.

-a <flags>
    specifies debugging flags for aufs. Valid values (case independent) include DeskTop for desktop management, Directory for directory calls, Enumerate for enumerate calls, File for file calls, Fork for fork calls, OS for os dependent debugging, Server for a trace of calls, Unix for unix level debugging, Volume for volume debugging, debug to mark as debugging (keeps aufs from backgrounding if no other debug flags are set), and All for all of the above. A list of multiple options should be separated by blanks and enclosed in quotes. You can also set the environment variable AUFSDEBUG to hold these values.

-t <Input | Output | Both><cmdname>
    specifies that packets traces (partial dumps) of the specified AFP commands should be done, for input, output, or both (can be abbreviated to first character). For example, to trace all Enumerate packets received by aufs you would specify -t IEnumerate A list of multiple options should be enclosed in quotes. You can also set the environment variable AUFSTRACE to hold these values.

SIGNALS
aufs operates by forking off a child process to deal with each session. Child processes will take the SIGHUP signal to mean that the process should quit after sending a termination notice to the remote client, SIGTERM to mean that it should initiate a shutdown in 5 minutes, with termination messages to the remote client at odd minute intervals and SIGURG to mean that a message is to be read from the specified file (the -M option) and sent to the remote client. WARNING: it is possible to catch aufs in a state where it is in a critical section that should not have been interrupted and the actions taken in the signal handlers are not legal.

If your system has process groups implemented, then signals to the parent (master) aufs daemon have these effects:

SIGHUP
    If the parent process receives SIGHUP, it will send a SIGHUP to all children and terminate immediately.

SIGTERM
    If the parent process receives SIGTERM, it will send SIGTERM to all children and shutdown after a little over 5 minutes.

SIGURG
    If the parent process receives a SIGURG, it will send SIGURG to all children who will then collect and display an advisory message from the specified file.

SIGUSR1
    If the parent process receives SIGUSR1, it will re-read the global afpvols volume configuration file (this option requires that REREAD_AFPVOLS be defined at configuration time).

SIGUSR2
    Sending a SIGUSR2 signal to the AUFS parent process causes it to close and then reopen the specified log file. This allows log files to be truncated at intervals (this option requires that CLOSE_LOG_SIG be used to define the signal name - default SIGUSR2 - at configuration time).

LOCAL CONFIGURATION

BUGS AND NOTES
There are no known bugs in the code, but it is recognized that the DeskTop management is less than optimial.

If the client does not execute the correct unmounting or shutdown sequence, the aufs child process can be left running and will need to be removed by the system administrator.

Notes and warnings pertaining to client use and file system implementation are documented in AUFS(1).

AUTHOR
AUFS was written by Bill Schilit, Computer Science Deparment and Charlie C. Kim, User Services, Columbia University.

SEE ALSO
AUFS(1), CAP(3), CAP(8), atis(8)