I have generated some tools to help the administration of majordomo
lists. If these are of interest to anyone they can be ftp'd from
Any feedback would be useful.
The README is appended.
--- MajorDomo Admin program. mdadmin and clients. ---
This package is a selection of perl programs and
a java program to help administration of majordomo
o This release is 1.0 Beta 1 of all components.
o Can be obtained from
The package comprises of:
in.mdadmind - A server side perl script that performs
various management functions.
mda - A perl client program to manage lists.
elman - a JAVA client program to manage lists.
o Standard querying of existing lists (eg finding members
viewing available lists) normally done through the mail
o Standard modifications normally done through the mail interface
(eg (un)subscribing people, changing password, editing the list
o Admin task not normally available through the mail interface.
Namely, creating and deleting lists.
The command to create new lists supports commonly used (at least by me)
config variables as parameters and may also create archives and digest
lists. It also maintains an file of aliases required for sendmail to
support the list, which can be included into the main alias file for
the machine. The delete command removes lists files and the aliases
(but leaves archive files).
Installation of the server.
Ensure you have a working majordomo 1.93 installed on your mail list
server host together with perl 4.x.
Step 2. untar the distribution in /usr/local. It will create the directory
mdadmin. If you don't install in /usr/local/mdadmin you may have
to play around with some of the location variables in the perl
Ensure all files are owned by user majordom (or whatever user
majordomo runs under at your site).
Step 3. Edit the file mdadmin.pl and change the variables at the top.
These are as follows:-
mdadmin_domain - Set to your mail domain name.
mdadmin_home - Set to /usr/local/mdadmin or where ever you
installed the package. NB If elsewhere you
will have to modify some other occurrences of
mdadmin_digest_dir - Where digests are to go.
mdadmin_archive_dir - Where Archives are to go.
- Name of a program/script that you need to
write to take the majordomo alias file
/usr/local/mdadmin/aliases and incorporate it
into to real aliases file (and tell sendmail
it been changed)
If null no action is taken.
- Suffix to use for the majordomo outgoing lists.
Often this is this string "outgoing". However
if users can guess this string they can bypass
the moderation checking in MajorDomo. Therefore
I suggest you set it to an unknown password.
Most list operations require the client user to supply the list password.
However the commands for creating and deleting lists require a special
password (a bit like a super user password) that should only be known to
people allow to create and delete lists.
Choose a value for this password and put it in the file
/usr/local/mdadmin/.passwd in plain text. Then type
chmod 400 /usr/local/mdadmin/.passwd
I know this is not exactly state of the art security. Maybe it will be
better next release :-)
Edit the majordomo.cf file (ie the real one in the majordomo installation
directory) and change the value of the
variable @archive_dirs which is used to say which directories
are valid archives. mdadmin needs to maintain its value.
The value will look something like
@archive_dirs = ( "/spool/archive/bblisa", "/usr/spool/archive/firewalls" );
change it to
require "$homedir/valid_archives.pl" ;
mdadmin maintains the variable in this aux file, to avoid changing
majordomo.cf all the time.
The contenets of the file valid_archives.pl must be something like this
@archive_dirs = (
Note that the layout is important as mdadmin need to automatically
maintain it. Start each directory at the start of a new line
with the commas at the start of the line.
If you have no lists with archives yet use
@archive_dirs = (
Otherwise back stitch your existing lists in this file.
NOTE: Make sure this file (valid_archives.pl) is owned and writable
by the majordom user number.
Almost done. Pick a port to run in.mdadmind on. The clients default to
1600 so use this if you can.
Add the following to /etc/services
mdadmin 1600/tcp majordomo
Add the following to /etc/inetd.conf (and kill -HUP inetd)
mdadmin stream tcp nowait majordom /usr/local/mdadmin/in.mdadmind mdadmind
Okay - the server is now ready to run. Test its there by telnetting to the
You should see the response ....
220 mdadmind Go ahead Version 1.0
*** Notes for sites with lists already active ****
If you already have lists active, you will be able to manage them with this
package. However if you attempt to delete such a list its aliases will not
be deleted from the mdadmin maintained alias file ('cos they are not there)
Installation of clients.
- installation of mda
mda is a perl client which can be used on any machine. It communicates
with the server over the network. It defaults to use port 1600, if
using a different port edit mda and replace the port variable.
Installation is as simple as copying to /usr/local/bin or where ever.
Invoke mda as follows...
mda [-d] [-p <port>] [-r <replyto>] <host>
Where host is the mail list server running in.mdadmin and port is used
to specify an explicit port number.
The replyto is used for logging purposes and should be your email address.
The d flag turns on debugging information.
For more details on how to use mda read the README in its client subdirectory.
- installation of elman
elman is a java client for managing Majordomo E-mail lists. It can run
on any platform with a java virtual machine and provide a GUI for managing
To install, copy the class files to an appropriate subdirectory and invoke
the java interpreter on the elman class. As command line parameters it
takes the server hostname, port and a reply to mail address.
java Elman <host> <replyto email address> [<port>]
elman only really works under openwindows under Solaris (or at a push
X11 under Solaris). Its fails under windows 95 because of a java bug
in modal dialog processing. It fails on a MAC for the same reason
plus passwords are echoed. Hopefully the next release of JAVA for
these platforms will correct these problems.
| Martyn Hampson | Tel: 0171 594 6973 |
| Imperial College | Fax: 0171 594 6958 |
| Computer Centre | E-Mail: M.Hampson@ic.ac.uk |
| London SW7 2BP, ENGLAND | "Don't just do something, sit there!" |