userdb — manipulate @userdb@
userdb
{addr
} set {field
=value
...}
userdb
{addr
} unset {field
...}
userdb
{addr
} del
userdb
{path/addr
} [ set | unset | del ] ...
userdb
-f {file
} {adr
} [ set | unset | del ] ...
userdb
-show {path
}
userdb
-show {path
} {addr
}
userdb
-show -f {file
}
userdb
-show -f {file
} {addr
}
userdb is a convenient script to individually manipulate
entries in @userdb@
. See
makeuserdb(8)
for a description of its contents. @userdb@
can always
be edited using any text editor, but userdb is a
convenient way to modify this file from another script.
@userdb@
can also be a subdirectory, instead of a file.
Specify
to manipulate
foo/bar/addr
in the file
addr
@userdb@
. You can
also use the
/foo/bar
-f
flag: -f
is equivalent. Use
whatever form makes the most sense to you.@userdb@/foo/bar
@userdb@
must not have any group or world
permissions. That's
because its contents may include system passwords (depending upon the
application which uses this virtual user account database).
Each line in @userdb@
takes following form:
addr
<TAB>field
=value
|field
=value
...
addr
specifies a unique virtual address. It
is followed by a single
tab character, then a list of
field
=value
pairs,
separated by
vertical slash characters. See
makeuserdb(8)
for field definitions.
A text editor can be used to add blank lines or comments in
@userdb@
. Any blank lines or comments are ignored by the
userdb script.
The names of the actual fields, and their contents, are defined entirely by
applications that use the @userdb@
database, the
userdb command just adds or removes arbitrary fields.
For example:
userdb default/info set mail=/home/mail/info
This command accesses the address "info" in
@userdb@/default
.
If the second argument to userdb is
"set
", the
remaining arguments are taken as
pairs, which are
added to the record for field
=value
addr
. If there is no
record for addr
, a
new record will be appended to the file. If
addr
exists, any existing
values of any specified fields are removed. If
=
is missing,
userdb stops and prompts for it. This is useful if
you're setting
a password field, where you do not want to specify the password on the command
line, which can be seen by the
ps(1)
command. If userdb is being
executed by a script, the value can be provided on standard input.value
Use "unset
" to delete fields from an existing
record. Use
"del
" to delete all fields in the existing record,
plus the record itself.
@userdb@
If the first argument to userdb
is -show
, userdb
displays the contents of @userdb@
. If
@userdb@
is a
subdirectory,
must refer to a
specific file in path
@userdb@
. The
-f
option can be used instead of
in order to specify an
arbitrary file.path
If
is not specified,
userdb produces a list, on standard
output, containing all addresses found in the file, on per line. If
addr
is specified,
userdb produces a list, on standard output, of
all the fields in addr
@userdb@
for this
.addr
@userdb@.dat
The actual virtual account/address database is
@userdb@.dat
.
This is a binary database file. @userdb@ is the plain text
version. After running userdb, execute the
makeuserdb(8) command to rebuild
@userdb@.dat
for the changes to take effect.
must be unique.
If addr
@userdb@
is a subdirectory,
it's possible to create the same
in different files in the subdirectory.
This is an error that is not currently detected by userdb,
however the subsequent
makeuserdb(8) command
will fail with an error message.addr