DESCRIPTION

The diod.conf file is actually a LUA script. Internal config defaults are overridden by settings in the file, and some of those values can in turn be overridden on the command line.

Config settings take the form of LUA global variables which are read out after the config file is executed. Therefore, the values of said variables can either be statically assigned or computed. The variables are described below.

CONFIG VARIABLES

listen = { IP:PORT [, IP:PORT ,...] }

List the interfaces and ports that diod should listen on. The default is "0.0.0.0:564".

exports = { /path [, /path , ...] }

List the file systems that clients will be allowed to mount. All paths should be fully qualified. The exports table can include two types of element: a string element (as above), or an alternate table element form { path="/path", opts="ro" }. In the alternate form, the (optional) opts attribute is a comma-separated list of export options, as described below in EXPORT OPTIONS. The two table element forms can be mixed in the exports table. Note that although diod will not traverse file system boundaries for a given mount due to inode uniqueness constraints, subdirectories of a file system can be separately exported.

exportall = 1

Export all file systems listed in /proc/mounts. If new file systems are mounted after diod has started, they will become immediately mountable. If there is a duplicate entry for a file system in the exports list, any options listed in the exports entry will apply.

exportopts = opt,opt,...

Establish a default set of export options. These are overridden, not appended to, by opts attributes in an "exports" entry.

nwthreads = INTEGER

Sets the (fixed) number of worker threads created to handle 9P requests for a unique aname. The default is 16 per aname.

auth_required = 0

Allow clients to connect without authentication, i.e. without a valid MUNGE credential.

userdb = 0

This option disables password/group lookups. It allows any uid to attach and assumes gid=uid, and supplementary groups contain only the primary gid.

allsquash = 1

Remap all users to "nobody". The attaching user need not be present in the password file.

squashuser = "nobody"

Change the squash user from the default of nobody. The squash user must be present in the password file.

logdest = "DEST"

Set the destination for logging. DEST is in the form of syslog:facility:level or filename. The default is syslog:daemon:err.

statfs_passthru = 1

This option configures statfs to return the host file system's type rather than V9FS_MAGIC. The default is 0 (return V9FS_MAGIC).

EXPORT OPTIONS

The following export options are defined:

ro

Export the file system read-only.

suppress

Exclude this file system from exports. Useful following exportall = 1.

sharefd

Allow limited server-side file descriptor sharing for files opened O_RDONLY by the same user.

privport

Reject attach request unless client is bound to a port in the privileged port range (512-1023). The diodcat utility has a --privport option which, when run as root, binds to a privileged socket before connecting. This provides limited additional security, especially in open networks, as it is vulnerable to IP spoofing attacks.

noauth

Allow attach to succeed without authentication.

EXAMPLE

--
-- example diod.conf
--
listen = { "0.0.0.0:10002" }
exports = {
	"/home",
	"/usr/global",
	{ path="ctl", opts="ro,noauth" },
	{ path="/usr/local", opts="ro" },
}
nwthreads = 8

FILES

/etc/diod.conf

RELATED TO diod.conf…

lua (1), diod (8), openlog (3)

http://www.lua.org/