home *** CD-ROM | disk | FTP | other *** search
- Subject: v25i039: listserv5.31 - mailing list management system, Part05/06
- Newsgroups: comp.sources.unix
- Approved: vixie@pa.dec.com
-
- Submitted-By: tasos@cs.bu.edu
- Posting-Number: Volume 25, Issue 39
- Archive-Name: listserv5.31/part05
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 5 (of 6)."
- # Contents: doc/server.nr
- # Wrapped by vixie@cognition.pa.dec.com on Fri Dec 13 18:31:09 1991
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'doc/server.nr' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/server.nr'\"
- else
- echo shar: Extracting \"'doc/server.nr'\" \(50151 characters\)
- sed "s/^X//" >'doc/server.nr' <<'END_OF_FILE'
- X
- X
- X
- server(1) USER COMMANDS server(1)
- X
- X
- X
- NNNNAAAAMMMMEEEE
- X start - start/stop the server system
- X
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- X ssssttttaaaarrrrtttt [----cccc] [----rrrr] [----kkkk]
- X
- NNNNAAAAMMMMEEEE
- X serverd - background daemon
- X
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- X sssseeeerrrrvvvveeeerrrrdddd [----1111] [----eeee] [----llll llllooooaaaadddd]
- X
- NNNNAAAAMMMMEEEE
- X list - process a specified discussion list
- X
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- X lllliiiisssstttt ----LLLL <LLLLIIIISSSSTTTT____AAAALLLLIIIIAAAASSSS> [----1111] [----eeee] [----ssss] [----pppp] [----mmmm ####] [----ffff] [----vvvv]
- X [----DDDD]
- X
- NNNNAAAAMMMMEEEE
- X listserv - process requests sent to the server
- X
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- X lllliiiissssttttsssseeeerrrrvvvv [----1111] [----eeee] [----nnnn] {[----rrrr <rrrreeeeqqqq>]}* {[----dddd <rrrreeeeqqqq>]}* [----DDDD]
- X
- OOOOVVVVEEEERRRRVVVVIIIIEEEEWWWW
- X This is a system that implements various discussion lists
- X with one list server. It is automated, and obliterates the
- X need for user intervention and maintenance of multiple
- X aliases of the form "list, list-owner, list-request", etc.
- X There is support provided for archives, moderated lists,
- X peer lists, news connections and gateways, and mail queuing.
- X
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN:::: ssssttttaaaarrrrtttt
- X _s_t_a_r_t is used to start or stop the discussion list server
- X system. When starting the system, any previous server
- X processes still running are killed, all necessary lock files
- X are created, any previous reports are archived into files
- X with extension ._a_c_c, new files and directories are created
- X for any new discussion lists, and _s_e_r_v_e_r_d is spawned. _s_t_a_r_t
- X reads the _c_o_n_f_i_g file (see below), and should always be run
- X from the server account (see below).
- X
- X The following command line options are recognized:
- X
- X -c Suppress confirmation when killing processes.
- X
- X -k Just kill any old server system processes and exit.
- X
- X -r Restrict reporting to stdout.
- X
- X
- X
- X
- X
- Anastasios Kotsikonas 1
- X
- X
- X
- X
- X
- X
- server(1) USER COMMANDS server(1)
- X
- X
- X
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN:::: sssseeeerrrrvvvveeeerrrrdddd
- X _s_e_r_v_e_r_d silently looks for any new messages for the list
- X server and for any of the supported discussion lists. It
- X then spawns _l_i_s_t_s_e_r_v and/or _l_i_s_t as necessary, and sleeps
- X until the message(s) is (are) processed. _s_e_r_v_e_r_d reads the
- X _c_o_n_f_i_g file (see below).
- X
- X The following command line options are recognized:
- X
- X -1 Execute only once -- to be used with cron.
- X
- X -e Echo reports to the screen.
- X
- X -l load
- X Enforce load restrictions; _s_e_r_v_e_r_d will postpone spawn-
- X ing if the system load is above the limit specified.
- X
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN:::: lllliiiisssstttt
- X _l_i_s_t distributes the message(s) sent to _l_i_s_t__a_l_i_a_s@_s_i_t_e; the
- X file ".ignored" in the list's subdirectory is used to filter
- X out any unwanted messages (see below). Messages from mailer
- X daemons are forwarded to _m_a_n_a_g_e_r (see description of the
- X _c_o_n_f_i_g file), whereas messages from non-subscribers are
- X returned to the original senders (the -f flag overrides
- X this). Messages from news groups are distributed only to
- X local subscribers and peer lists. Messages from peers are
- X distributed to local subscribers and possibly posted to news
- X groups. Finally, messages from local subscribers are distri-
- X buted locally, copies are sent to all peers, and are possi-
- X bly posted to news groups.
- X
- X Email from one or more subscribers may be selectively dis-
- X tributed to an alternate list of recipients, by way of res-
- X tricted mail (see below), in which case mail will not be
- X distributed to the regular subscribers.
- X
- X The following command line options are recognized:
- X
- X -L LIST_ALIAS
- X Process any messages sent to this _L_I_S_T__A_L_I_A_S --
- X list_alias should all be in capital letters.
- X
- X -1 Execute only once; process the discussion list and
- X return control to _s_e_r_v_e_r_d; any new messages that may
- X have arrived in the meantime will be processed at a
- X later time. Without this option, _l_i_s_t will be listening
- X for messages for the specified list for ever.
- X
- X -e Echo reports to the screen.
- X
- X -s By default, only subscribers can send messages to a
- X list. This option turns off checking for subscriptions.
- X
- X
- X
- Anastasios Kotsikonas 2
- X
- X
- X
- X
- X
- X
- server(1) USER COMMANDS server(1)
- X
- X
- X
- X -p By default, replies to messages posted to news groups
- X go to the list; this option forces replies to be for-
- X warded to the original author.
- X
- X -m number
- X Normally, each outgoing message has one recipient. This
- X flag switches to multi-recipient outgoing messages and
- X specifies the _n_u_m_b_e_r of recipients to be included in
- X these messages.
- X
- X -f Forward any messages from non-subscribers to _m_a_n_a_g_e_r.
- X By default, they are returned to the sender.
- X
- X -v Print version information.
- X
- X -r Restricted mail: _l_i_s_t will look at the ".restricted"
- X file (see below) to get the name of the alternate reci-
- X pients file. If the sender is listed in that ".res-
- X tricted" file, his messages will be distributed to
- X users listed in the alternate recipients file.
- X
- X -D Turns debugging on. When the _s_y_s_t_e_m mailmethod is used,
- X a copy of the last SMPT transaction can be found in the
- X files /usr/server/sent and /usr/server/received.
- X
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN:::: lllliiiissssttttsssseeeerrrrvvvv
- X _l_i_s_t_s_e_r_v processes user requests sent to _l_i_s_t_s_e_r_v@_s_i_t_e.
- X Each request should appear in a separate line with any pos-
- X sible arguments. The file ".ignored" is used in the
- X system's home directory to filter out unwanted messages. The
- X sender is notified of the first invalid request; all subse-
- X quent requests are ignored. For each successfully completed
- X request, a confirmation is sent back to the sender. _l_i_s_t_s_e_r_v
- X stops reading requests when it encounters the string "--" in
- X a line by itself, which on most systems signifies the start
- X of the .signature message. _l_i_s_t_s_e_r_v reads the _c_o_n_f_i_g file.
- X The following requests are recognized (requests may be
- X abbreviated):
- X
- X _h_e_l_p [request]
- X Send a help message on all valid requests or the
- X selected one only.
- X
- X _s_e_t list [option value]
- X Without the optional arguments, return the current
- X values for all options set for _l_i_s_t; otherwise, set
- X subscriber preferences for _l_i_s_t;
- X
- X option can be:
- X
- X _m_a_i_l: set mail preferences.
- X
- X
- X
- X
- Anastasios Kotsikonas 3
- X
- X
- X
- X
- X
- X
- server(1) USER COMMANDS server(1)
- X
- X
- X
- X value can be:
- X
- X _a_c_k: send a copy of the current message to the origi-
- X nal sender.
- X
- X _n_o_a_c_k: do not send a copy of the current message to
- X the original sender. This is the default for newly
- X subscribed users.
- X
- X _p_o_s_t_p_o_n_e: do not send any messages to the particular
- X subscriber until he changes status again.
- X
- X _s_u_b_s_c_r_i_b_e list full_name
- X Subscribe the sender to _l_i_s_t (note, his email address
- X is used for subscription, not his _f_u_l_l__n_a_m_e).
- X
- X _u_n_s_u_b_s_c_r_i_b_e list
- X Remove the sender from the specified _l_i_s_t.
- X
- X _s_i_g_n_o_f_f list
- X Alias of the unsubscribe request.
- X
- X _r_e_c_i_p_i_e_n_t_s list
- X Get a list of all subscribers to _l_i_s_t. The request is
- X also forwarded to all peer lists, and the servers han-
- X dling them will respond accordingly. The user is noti-
- X fied when this request is being forwarded.
- X
- X _r_e_v_i_e_w list
- X Alias of the recipients request.
- X
- X _i_n_f_o_r_m_a_t_i_o_n list
- X Get an informative message about a particular _l_i_s_t.
- X
- X _s_t_a_t_i_s_t_i_c_s list [subscriber email address(es)]
- X Obtain a count of messages sent per subscriber to the
- X specified _l_i_s_t, or by those subscribers given as argu-
- X ment only (wild characters are supported). The request
- X is also forwarded to all peer lists and the servers
- X handling them will respond accordingly. The user is
- X notified when this request is being forwarded.
- X
- X _l_i_s_t_s
- X Obtain a list of discussion list addresses that are
- X serviced by this system, with a small description of
- X their purpose.
- X
- X _i_n_d_e_x [archive]
- X Obtain an index of files in the specified _a_r_c_h_i_v_e (or
- X the master archive if none specified) and all of its
- X subarchives.
- X
- X
- X
- X
- Anastasios Kotsikonas 4
- X
- X
- X
- X
- X
- X
- server(1) USER COMMANDS server(1)
- X
- X
- X
- X _g_e_t archive file [parts]
- X Get the specified _f_i_l_e from the _a_r_c_h_i_v_e given. The file
- X may have been split into smaller parts due to its size,
- X in which case each part will be sent in a different
- X email message. If only certain _p_a_r_t_s are desired, they
- X may be given as arguments (numbers, separated by spaces
- X -- ranges are not recognized).
- X
- X _r_e_l_e_a_s_e
- X Get information about the current release of this list-
- X serv system.
- X
- X The following command line options are recognized:
- X
- X -1 Execute only once; process any requests and return con-
- X trol to _s_e_r_v_e_r_d; any new messages that may have arrived
- X in the meantime will be processed at a later time.
- X
- X -e Echo reports to the screen.
- X
- X -n By default, peer servers are notified upon _s_t_a_t_i_s_t_i_c_s
- X and _r_e_c_i_p_i_e_n_t_s requests. The system defines a protocol
- X for avoiding loops only if connected to servers running
- X this or a later version. If you detect loops with
- X other servers, you should use this option to turn off
- X notification of peer servers.
- X
- X -r request
- X Place a restriction on the specified server _r_e_q_u_e_s_t as
- X outlined above. If the number of users on the system
- X at the time the request is about to be processed is
- X above the limit given in the _c_o_n_f_i_g file (using the
- X _r_e_s_t_r_i_c_t_i_o_n directive), the request is rejected --
- X meant for requests that may take a considerable amount
- X of resources such as the _s_t_a_t_i_s_t_i_c_s request -- this
- X option may be repeated any number of times.
- X
- X -d request
- X Disable _r_e_q_u_e_s_t, i.e. make it totally unknown to the
- X server -- this supersedes any _d_i_s_a_b_l_e directives for
- X this request in the _c_o_n_f_i_g file, i.e. this request will
- X not be recognized for any list (see below). This option
- X may be repeated any number of times. However, help is
- X still available for that request.
- X
- X -D Turns debugging on. When the _s_y_s_t_e_m mailmethod is used,
- X a copy of the last SMPT transaction can be found in the
- X files /usr/server/sent and /usr/server/received.
- X
- CCCCOOOONNNNFFFFIIIIGGGG
- X The server system is defined in the _c_o_n_f_i_g file; an example
- X file is provided with the system. This file is used by
- X
- X
- X
- Anastasios Kotsikonas 5
- X
- X
- X
- X
- X
- X
- server(1) USER COMMANDS server(1)
- X
- X
- X
- X _s_t_a_r_t, _s_e_r_v_e_r_d, _l_i_s_t and _l_i_s_t_s_e_r_v, and is not a shell
- X script. The following keywords are recognized:
- X
- X _o_r_g_a_n_i_z_a_t_i_o_n name
- X This defines your organization when posting to news.
- X
- X _s_e_r_v_e_r _l_i_s_t_s_e_r_v@site command-line-options
- X This defines the list server; the first argument is the
- X full email address of the server (e.g.
- X listserv@foo.edu) followed by any command line options
- X to be used (see _l_i_s_t_s_e_r_v above).
- X
- X _l_i_s_t list_alias list_alias@site command-line-options
- X This defines a discussion list; the first argument is
- X the list's alias in /etc/aliases, /usr/lib/aliases or
- X /usr/ucblib/aliases (see below), followed by its full
- X email address, followed by any command line options to
- X be used (see _l_i_s_t above).
- X
- X _s_e_r_v_e_r_d command-line-options
- X This defines the command line options that _s_t_a_r_t is
- X supposed to use when spawning _s_e_r_v_e_r_d.
- X
- X _r_e_s_t_r_i_c_t_i_o_n nusers
- X If a restriction is placed on a listserv request (via a
- X -r command line option), this request defines the
- X threshold number of users, above which the restriction
- X will take effect.
- X
- X _d_i_s_a_b_l_e list_alias request
- X The specified server _r_e_q_u_e_s_t is disabled for the speci-
- X fied list, and all such requests for this list are
- X rejected. The _l_i_s_t__a_l_i_a_s has to be defined (via a _l_i_s_t
- X directive) before any requests can be disabled.
- X
- X _m_a_n_a_g_e_r email-address@site
- X This defines the recipient of all error messages;
- X _e_m_a_i_l-_a_d_d_r_e_s_s can be any valid user name that can be
- X reached via email by your system.
- X
- X _c_o_m_m_e_n_t _s_e_r_v_e_r # Actual comment
- X
- X _c_o_m_m_e_n_t list_alias # Actual comment
- X A 'Comment:' line is included in every outgoing
- X list/server message, and the text following the pound
- X sign will be copied every time; note that the pound
- X sign is mandatory for the definition but will not be
- X part of the actual string. A list's comment is also
- X used for the _l_i_s_t_s request to specify the purpose of
- X the particular discussion list.
- X
- X _f_r_e_q_u_e_n_c_y seconds
- X
- X
- X
- Anastasios Kotsikonas 6
- X
- X
- X
- X
- X
- X
- server(1) USER COMMANDS server(1)
- X
- X
- X
- X How often should _s_e_r_v_e_r_d check for new mail.
- X
- X _l_i_m_i_t keyword arguments
- X Used to set certain limits in the system; valid key-
- X words are:
- X
- X _m_e_s_s_a_g_e: limit the size of distributed messages to a
- X certain number of bytes, which is the argument fol-
- X lowing this keyword. A notification is sent back to
- X the sender, including the first few lines of his/her
- X original message for reference.
- X
- X _o_p_t_i_o_n keyword
- X This defines a series of system-dependent options;
- X valid keywords are:
- X
- X _s_y_s_v__p_s: the system will use the System V version of
- X ps.
- X
- X _b_s_d__p_s: the system will use the BSD version of ps.
- X
- X _b_s_d__m_a_i_l: define it if BSD (UCB) mail is available on
- X your system; if this is the case, make sure that
- X /usr/ucb/mail is the path (or a link) to it.
- X
- X _b_a_d__t_e_l_n_e_t: if the mail method used (see below) is
- X 'telnet' and the system seems to send out only one
- X message and then go to sleep, use this option.
- X
- X _p_o_s_t__m_a_i_l: this will force the system to post mes-
- X sages to news groups (using _i_n_e_w_s), using the groups'
- X names (e.g. misc.test)
- X
- X _g_a_t_e__m_a_i_l: this will force the system to gate mes-
- X sages to news, using the groups' email addresses.
- X
- X _m_a_i_l_m_e_t_h_o_d method [arguments]
- X Every outgoing message should begin with a line of the
- X form:
- X
- X From listserv@site ...
- X
- X or
- X
- X From list_alias@site ...
- X
- X which depends on the mail _m_e_t_h_o_d used:
- X
- X _s_y_s_t_e_m: the recommended method; it provides a unified
- X approach to sending mail and it has been ported and
- X tested on lots of systems (see the section
- X PORT SPECIFIC below). All other mail methods will
- X
- X
- X
- Anastasios Kotsikonas 7
- X
- X
- X
- X
- X
- X
- server(1) USER COMMANDS server(1)
- X
- X
- X
- X soon become obsolete. In addition, since a full set
- X of the SMTP protocol is implemented, you will be
- X notified of invalid addresses and various system
- X problems. In addition, mail is queued when it cannot
- X be delivered, in the directory /usr/server/mqueue;
- X see _q_u_e_u_e(_1) for more information on how to process
- X the mail queue.
- X
- X _t_e_l_n_e_t: to be used only when _s_y_s_t_e_m is inappropriate.
- X
- X _e_n_v__v_a_r: usually followed by _L_O_G_N_A_M_E /_b_i_n/_r_m_a_i_l, or
- X _L_O_G_N_A_M_E /_u_s_r/_l_i_b/_s_e_n_d_m_a_i_l -_b_s (-bs is mandatory) --
- X to be used only when the previous methods are inap-
- X propriate.
- X
- SSSSYYYYSSSSTTTTEEEEMMMM SSSSEEEETTTTUUUUPPPP
- X The server system is installed under the /usr/server direc-
- X tory, or any other place with /usr/server as a link to it; a
- X _s_e_r_v_e_r user account has to be setup. The system should be
- X installed and set up using this account, and always be
- X started from this account as well. Then, the following
- X alias has to be defined in /etc/aliases, /usr/lib/aliases
- X or /usr/ucblib/aliases (depending on your system) for list-
- X serv:
- X
- X listserv: "|/bin/cat >> /usr/server/requests"
- X
- X It is important to keep in mind that mailers should convert
- X any sentences of in-coming messages starting with "From " as
- X their first word, to ">From ". If this is not the case, then
- X you should use the script _r_e_f_o_r_m_a_t in /usr/server as fol-
- X lows:
- X
- X listserv: "|/bin/cat | /usr/server/reformat >> /usr/server/requests"
- X
- X Special attention has to be paid to directory and file pro-
- X tections; on some systems sendmail will set uid to server
- X when delivering mail, and in others it may not (it stays
- X daemon). The system comes configured with -wx access for
- X all; if your sendmail sets uid then you may remove these
- X access permissions. Be advised though that, with these per-
- X missions granted any user may remove the mail files from the
- X lists' directories, as well as the requests file. It may
- X also help to add server to the same group that sendmail
- X belongs to and force sendmail to set uid and gid.
- X
- X The server has to be defined in the _c_o_n_f_i_g file by adding a
- X _s_e_r_v_e_r directive, as well as any other preferences (serverd,
- X restriction, manager, comment server, frequency, option,
- X mailmethod). Once the system is loaded, you will have to
- X run the script _s_e_t_u_p; this will ensure that all necessary
- X files and directories are present, and have the right
- X
- X
- X
- Anastasios Kotsikonas 8
- X
- X
- X
- X
- X
- X
- server(1) USER COMMANDS server(1)
- X
- X
- X
- X permissions. Before starting the system, you may wish to
- X edit the ".ignored" file in /usr/server. At this point, you
- X may also wish to alter the help files in /usr/server/help;
- X each file in that directory corresponds to one of the recog-
- X nized requests.
- X
- X Finally, experiment with the various mail methods described
- X above, until you get the proper "From " line in the begin-
- X ning of the outgoing message; for instance, when listserv is
- X replying to a request, you should see something like "From
- X listserv@..." as the first line of the header; or when the
- X list abc is distributing messages, this line should look
- X like "From abc@...". If you cannot get it to work, i.e. you
- X get something like "From server@..." then the server system
- X has to run with superuser privileges. In this case, the
- X server userid should be the same as root's. Please, also
- X read the section PORT SPECIFIC below, for suggested mail-
- X methods. You will not have any of these problems if you use
- X the _s_y_s_t_e_m mailmethod.
- X
- X If this part of the setup is not done properly, peer lists
- X will not work at all and users may not be able to reply to
- X the list. As a final note, if _t_e_l_n_e_t does not seem to be
- X sending any mail, it is a bug with the telnet implementation
- X on your system: telnet cannot have its input redirected or
- X piped, and should be reported to your vendor.
- X
- AAAADDDDDDDDIIIINNNNGGGG AAAA NNNNEEEEWWWW LLLLIIIISSSSTTTT
- X To add a new list, first shut the system down by executing
- X
- X % _s_t_a_r_t -_k
- X
- X Then edit the _c_o_n_f_i_g file and add a line defining the new
- X list -- you may wish to add a comment and/or disable a few
- X requests also. A new alias has to be set up in
- X /etc/aliases, /usr/lib/aliases or /usr/ucblib/aliases of the
- X following form:
- X
- X list_alias: "|/bin/cat >> /usr/server/lists/LIST_ALIAS/mail"
- X
- X Note that _l_i_s_t__a_l_i_a_s is all lower case and _L_I_S_T__A_L_I_A_S is all
- X upper case. Also keep in mind the case of reformating mes-
- X sages as described above. Finally, restart the system. At
- X this point, the file ".ignored" in the
- X /usr/server/lists/LIST_ALIAS directory may be edited to add
- X more unwanted senders. You should also edit the files ".wel-
- X come" and ".info" in the list's subdirectory; The former is
- X included in the return message for a new subscription
- X request for that list, and the latter is included in the
- X return message for an _i_n_f_o_r_m_a_t_i_o_n request for that list.
- X
- X
- X
- X
- X
- Anastasios Kotsikonas 9
- X
- X
- X
- X
- X
- X
- server(1) USER COMMANDS server(1)
- X
- X
- X
- AAAADDDDDDDDIIIINNNNGGGG AAAA PPPPEEEEEEEERRRR LLLLIIIISSSSTTTT
- X Peer lists are discussion lists that happen to be sub-
- X scribers to one or more of your own discussion lists; they
- X handle local distribution of messages just like you do at
- X your own site. Peer lists can be mutual subscribers, so that
- X a message originating in a peer list gets distributed over
- X there locally, and a copy is sent to the other for local
- X distribution, and vice versa. An automatic mechanism is pro-
- X vided for avoiding loops. A peer list can be added to a
- X local discussion list by using the script _p_e_e_r:
- X
- X peer <LIST_ALIAS> <remote alias> <peer address> <remote listserv address>
- X
- X where _L_I_S_T__A_L_I_A_S is a local list alias in capital letters,
- X _r_e_m_o_t_e _a_l_i_a_s is the peer's alias on the remote machine,
- X _p_e_e_r _a_d_d_r_e_s_s is taken from the first line of a test message
- X sent to the server by the peer (the first line may be some-
- X thing like: "From peer@foo ..." -- see also the discussion
- X about aliases below), and _r_e_m_o_t_e _l_i_s_t_s_e_r_v _a_d_d_r_e_s_s is the
- X full email address of the remote server that handles the
- X remote peer. Peer lists should make sure that only one of
- X them posts to the same news group(s), and that only one of
- X them receives articles from the same news
- X group(s)/gateway(s). Lists handled by the same server can-
- X not be mutual peers. Finally, peer lists should not be regu-
- X lar subscribers (the _p_e_e_r script places them in a file
- X called ".peers").
- X
- PPPPEEEEEEEERRRR SSSSEEEERRRRVVVVEEEERRRRSSSS
- X The only feature currently available is the forwarding of
- X any _r_e_c_i_p_i_e_n_t_s and _s_t_a_t_i_s_t_i_c_s requests to the servers han-
- X dling peer lists.
- X
- NNNNEEEEWWWWSSSS GGGGRRRROOOOUUUUPPPPSSSS AAAANNNNDDDD GGGGAAAATTTTEEEEWWWWAAAAYYYYSSSS
- X A discussion list may be linked with one or more news groups
- X (or gateways) from which it may receive messages for local
- X distribution, and/or send messages to the newsgroup(s) for
- X posting -- in this case only messages from regular sub-
- X scribers are sent for posting, i.e. no news messages will be
- X posted to any news groups (or gateways). A news group or
- X gateway is linked using the script _n_e_w_s:
- X
- X news <LIST_ALIAS> <news group> <email address> <mode>
- X
- X where _L_I_S_T__A_L_I_A_S is a local list alias (in capital letters)
- X that is being linked to the news group, _n_e_w_s _g_r_o_u_p is the
- X name of the news group (used only when posting) e.g.
- X misc.test, _e_m_a_i_l _a_d_d_r_e_s_s is the address of the backbone or
- X moderator of the news group, or the gateway, and it is taken
- X from the first line of a test message sent to the server by
- X the group (the first line may be something like: "From
- X xxx@foo ..." -- see also the discussion about aliases
- X
- X
- X
- Anastasios Kotsikonas 10
- X
- X
- X
- X
- X
- X
- server(1) USER COMMANDS server(1)
- X
- X
- X
- X below); _m_o_d_e is one of the following:
- X
- X receive
- X The list will only be receiving messages from this news
- X group and never post to it. This allows access to the
- X group (or gateway) to send articles to the list.
- X
- X send_receive
- X The list may be receiving messages from this news
- X group, and it will post to it any messages from regular
- X subscribers and peer lists (messages from news groups
- X are never posted to other news groups). This also
- X allows access to the group (or gateway) to send arti-
- X cles to the list.
- X
- X Of course, the news group's caretaker has to be notified of
- X the list's address so that articles will indeed be sent to
- X it. Finally, news groups should not be regular subscribers
- X (the _n_e_w_s script places them in a file called ".news").
- X
- X If the config option _p_o_s_t__m_a_i_l is used, the system will use
- X _i_n_e_w_s for posting, and it assumes that the path to it is
- X /usr/lib/news/inews, so make sure that _i_n_e_w_s resides there,
- X or a link exists to it. In this case, the group's name is
- X used for posting (e.g. misc.test). If instead _g_a_t_e__m_a_i_l is
- X defined, messages will be sent via email to news gateways --
- X the _n_e_w_s _g_r_o_u_p name has no significance in this case.
- X
- MMMMOOOODDDDEEEERRRRAAAATTTTEEEEDDDD LLLLIIIISSSSTTTTSSSS
- X The above mechanism can be slightly modified for moderated
- X lists by simply changing a list's alias slightly:
- X
- X list_alias: "|/bin/cat >> /usr/server/lists/LIST_ALIAS/moderated"
- X
- X _l_i_s_t distributes messages from a file called _m_a_i_l; by having
- X incoming messages redirected to the file _m_o_d_e_r_a_t_e_d, you may
- X edit them (login as server) and save the interesting ones
- X under _m_a_i_l.
- X
- MMMMAAAAIIIILLLL LLLLOOOOOOOOPPPPSSSS
- X The system uses the following protocol for avoiding mail
- X loops between a list and news connections: In the header of
- X the outgoing message an "Originator: " field is added. For
- X each list plus listserv, a log of the most recent (500)
- X Message-Id's is kept. Whenever a message is received, the
- X Originator, Reply-To and Message-Id fields are extracted and
- X looked up in the ".ignored" and ".message.ids" files in the
- X list's subdirectory. Gateways that feed back to the list
- X should preserve at least the Reply-To and Message-Id fields.
- X The Originator and Message-Id fields are preserved by this
- X system. A new Reply-To is tacked on when redistributing mail
- X locally from a peer or a news feed.
- X
- X
- X
- Anastasios Kotsikonas 11
- X
- X
- X
- X
- X
- X
- server(1) USER COMMANDS server(1)
- X
- X
- X
- X To avoid mail loops when forwarding listserv requests to
- X peers, the system is looking up the Message-Id field in the
- X ".message.ids" file in /usr/server. If this field is not
- X preserved by the peer listserv, I suggest you turn off
- X request forwarding when connecting with peers served by such
- X systems, until a unified approach is taken. The Message-Id
- X field is preserved by this listserv. This system is also
- X using a special Subject field, totally proprietary and non-
- X standard, in order to avoid unnecessary forwarding of
- X requests, thus cutting down on email traffic.
- X
- X....IIIIGGGGNNNNOOOORRRREEEEDDDD
- X As described before, the system's home directory as well as
- X every list's subdirectory contains a ".ignored" file which
- X is used to filter out messages sent by certain users. The
- X default file contains entries for root, server, bin, sys and
- X uucp; you may wish to add an entry for every list alias that
- X is defined on your system. A list's ".ignored" file also
- X contains an entry of its alias and full email address, as
- X well the server account's full email address.
- X
- RRRREEEESSSSTTTTRRRRIIIICCCCTTTTEEEEDDDD MMMMAAAAIIIILLLL
- X When the -r flag is used with _l_i_s_t, for every message
- X received its sender is checked against a list of "res-
- X tricted" email addresses, in the file ".restricted" in the
- X list's directory -- a subset of the ".subscribers" file. If
- X a match is found, mail is forwarded to the people listed in
- X the file following this email address. If no match is found,
- X the message is distributed to the regular subscribers. Note
- X that the alternate recipients file should be in the same
- X format as the ".subscribers".
- X
- X....SSSSUUUUBBBBSSSSCCCCRRRRIIIIBBBBEEEERRRRSSSS
- X The format is as follows:
- X
- X One entry per line; each entry is the full email address of
- X the subscriber as it appears in the "From " field, followed
- X by the word "ACK" (in which case his/her message will be
- X sent back to him/her as an acknowledgement) "NOACK" (the
- X opposite), or POSTPONE (no mail will be sent until the user
- X changes mode again), followed by the subscriber's name.
- X
- X....RRRREEEESSSSTTTTRRRRIIIICCCCTTTTEEEEDDDD
- X The format is as follows:
- X
- X One entry per line; each entry is the full email address of
- X the subscriber, followed by a file name where email
- X addresses of recipients are listed (just like in the ".sub-
- X scribers" file). Example:
- X
- X tasos@bucsf.bu.edu /usr/server/lists/LIST_ALIAS/.recipients
- X
- X
- X
- X
- Anastasios Kotsikonas 12
- X
- X
- X
- X
- X
- X
- server(1) USER COMMANDS server(1)
- X
- X
- X
- X If the recipient file given is the word "NONE", then no one
- X will receive any messages.
- X
- X....AAAALLLLIIIIAAAASSSSEEEESSSS
- X It is possible that a subscriber's/peer's/news
- X group's/gateway's email may arrive using a different path
- X than registered, which may raise subscription issues. To
- X work around this, each list provides a ".aliases" file in
- X its subdirectory, which may contain alternate email
- X addresses to be used when checking for subscription. The
- X format is one line per alias with the following information:
- X
- X alias_address address_as_subscribed
- X
- X Please note that only the subscribed address is used for
- X sending out email. If someone is experiencing subscription
- X problems, you may wish to add their alternate email
- X address(es) in this file. This includes regular subscribers,
- X news groups, peers and gateways. If the sender is also a
- X restricted subscriber, do not forget to put another entry in
- X ".restricted" with the new alternate address.
- X
- CCCCOOOOMMMMMMMMUUUUNNNNIIIICCCCAAAATTTTIIIINNNNGGGG
- X Users send requests to _l_i_s_t_s_e_r_v@_s_i_t_e and public messages to
- X the various _l_i_s_t__a_l_i_a_s@_s_i_t_e.
- X
- AAAARRRRCCCCHHHHIIIIVVVVEEEESSSS
- X The server has an archiving capability of files; there is a
- X master archive in /usr/server/archives/listserv where all
- X subarchives are defined. The archives keep lists of files
- X that are available to users via a _g_e_t request, and index of
- X subarchives that are available to users via an _i_n_d_e_x
- X request. The archived files may not necessarily reside in
- X the archive directories, as long as the archives know where
- X they are located. See the man page for _f_a_r_c_h(_1) for more
- X information.
- X
- RRRREEEEPPPPOOOORRRRTTTTSSSS
- X All programs report to their own files; these are:
- X
- X /usr/server/.report.start: generated by _s_t_a_r_t every time the
- X system is started.
- X
- X /usr/server/.report.daemon: messages from _s_e_r_v_e_r_d every time
- X new mail has arrived.
- X
- X /usr/server/.report.server: messages from _l_i_s_t_s_e_r_v every
- X time new requests are processed.
- X
- X /usr/server/.report.list: error messages from _l_i_s_t when
- X attempting to process public messages.
- X
- X
- X
- X
- Anastasios Kotsikonas 13
- X
- X
- X
- X
- X
- X
- server(1) USER COMMANDS server(1)
- X
- X
- X
- X /usr/server/lists/LIST_ALIAS/.report.list: messages from
- X _l_i_s_t when processing public messages.
- X
- X /usr/server/.*.acc: accumulated reports since the system was
- X first installed.
- X
- X /usr/server/lists/*/.*.acc: accumulated reports for each
- X discussion list.
- X
- X Every report includes a time stamp; every list and server
- X report also includes the actual sender of the message, and
- X every server report includes all requests made by the
- X sender.
- X
- X Whenever a program dies abnormally (and BSD mail is present)
- X a message is sent to _m_a_n_a_g_e_r (as defined in _c_o_n_f_i_g). The
- X message is usually sent by _s_e_r_v_e_r_d which then exits. The
- X daemon dies with a different message according to the exit
- X status of the child; the various error conditions that may
- X occur are:
- X
- X Could not open file
- X /usr/server is not a valid path; file was accidentally
- X deleted; insufficient access privileges. Run setup and
- X _s_t_a_r_t.
- X
- X Could not lock file
- X /usr/server is not a valid path; file was accidentally
- X deleted; insufficient access privileges; another pro-
- X gram is using the lock file. Run tlock, and if neces-
- X sary, ulock; then _s_t_a_r_t.
- X
- X Command line option error
- X Check the _c_o_n_f_i_g file and restart.
- X
- X Syntax error in file
- X Check _c_o_n_f_i_g, all reports, .subscriber, .peers and
- X .news files.
- X
- X Could not spawn
- X No more processes.
- X
- X Received system signal
- X SIGHUP, SIGQUIT, SIGTERM, SIGBUS, SIGSEGV.
- X
- XFFFFIIIILLLLEEEESSSS
- X /usr/server/.awk
- X awk program for formating the _s_t_a_t_i_s_t_i_c_s request.
- X
- X /usr/server/.grep
- X script used for counting the number of messages sent by
- X a subscriber.
- X
- X
- X
- Anastasios Kotsikonas 14
- X
- X
- X
- X
- X
- X
- server(1) USER COMMANDS server(1)
- X
- X
- X
- X /usr/server/.ignored
- X List of unwanted senders.
- X
- X /usr/server/.lock.list
- X Lock file for _l_i_s_t.
- X
- X /usr/server/.lock.server
- X Lock file for _l_i_s_t_s_e_r_v.
- X
- X /usr/server/.lock.serverd
- X Lock file for _s_e_r_v_e_r_d.
- X
- X /usr/server/.message.ids
- X A database of recent message id's used to detect mail
- X loops.
- X
- X /usr/server/.rep.server.acc
- X Archived _l_i_s_t_s_e_r_v messages.
- X
- X /usr/server/.rep.serverd.acc
- X Archived _s_e_r_v_e_r_d messages.
- X
- X /usr/server/.rep.start.acc
- X Archived _s_t_a_r_t messages.
- X
- X /usr/server/.report.daemon
- X Current _s_e_r_v_e_r_d messages.
- X
- X /usr/server/.report.list
- X Error messages from _l_i_s_t.
- X
- X /usr/server/.report.server
- X Current _l_i_s_t_s_e_r_v messages.
- X
- X /usr/server/.report.start
- X Last _s_t_a_r_t action (system started or shut down).
- X
- X /usr/server/.stats
- X Script used for the _s_t_a_t_i_s_t_i_c_s request.
- X
- X /usr/server/config
- X The configuration file.
- X
- X /usr/server/farch
- X File archiving utility.
- X
- X /usr/server/list
- X The discussion list program.
- X
- X /usr/server/listserv
- X The system's server.
- X
- X
- X
- X
- Anastasios Kotsikonas 15
- X
- X
- X
- X
- X
- X
- server(1) USER COMMANDS server(1)
- X
- X
- X
- X /usr/server/mbox
- X An archive of all requests sent to date to listserv.
- X
- X /usr/server/news
- X Script used to add a news group to a list.
- X
- X /usr/server/peer
- X Script used to add a peer list.
- X
- X /usr/server/queue
- X The mail queue processing program.
- X
- X /usr/server/queued
- X The mail queue processing daemon.
- X
- X /usr/server/reformat
- X Script used to reformat in-coming messages.
- X
- X /usr/server/received
- X File containing a debug log of the last message distri-
- X buted when using the 'system' mail method.
- X
- X /usr/server/requests
- X Newly arrived user requests.
- X
- X /usr/server/sent
- X File containing a debug log of the last message distri-
- X buted when using the 'system' mail method.
- X
- X /usr/server/serverd
- X The system's daemon.
- X
- X /usr/server/setup
- X Setup script.
- X
- X /usr/server/start
- X The system's housekeeping program.
- X
- X /usr/server/tlock
- X Checks for any locked files.
- X
- X /usr/server/archives/listserv/INDEX
- X The master archive index.
- X
- X /usr/server/archives/listserv/DIR
- X Directory of all files available from the master
- X archive (listserv).
- X
- X /usr/server/doc/server.nr
- X This man page.
- X
- X /usr/server/doc/farch.nr
- X
- X
- X
- Anastasios Kotsikonas 16
- X
- X
- X
- X
- X
- X
- server(1) USER COMMANDS server(1)
- X
- X
- X
- X Man page for the _f_a_r_c_h utility.
- X
- X /usr/server/help/*
- X General and topic-specific help files available upon a
- X _h_e_l_p request.
- X
- X /usr/server/lists/LIST_ALIAS/.aliases
- X Aliases of email addresses of subscribers.
- X
- X /usr/server/lists/LIST_ALIAS/.headers
- X An archive of who sent each message.
- X
- X /usr/server/lists/LIST_ALIAS/.ignored
- X A list of unwanted senders.
- X
- X /usr/server/lists/LIST_ALIAS/.info
- X Text sent upon an _i_n_f_o_r_m_a_t_i_o_n request.
- X
- X /usr/server/lists/LIST_ALIAS/.message.ids
- X A database of recent message id's used to detect mail
- X loops.
- X
- X /usr/server/lists/LIST_ALIAS/.news
- X A list of all news groups connected to this alias.
- X
- X /usr/server/lists/LIST_ALIAS/.peers
- X A list of all peer lists for this discussion list,
- X along with the email addresses of their servers.
- X
- X /usr/server/lists/LIST_ALIAS/.rep.list.acc
- X Archived messages from _l_i_s_t.
- X
- X /usr/server/lists/LIST_ALIAS/.report.list
- X Current messages from _l_i_s_t.
- X
- X /usr/server/lists/LIST_ALIAS/.restricted
- X List of subscribers with alternate recipient files.
- X
- X /usr/server/lists/LIST_ALIAS/.subscribers
- X A list of all subscribers along with preferences.
- X
- X /usr/server/lists/LIST_ALIAS/.welcome
- X Text sent on a _s_u_b_s_c_r_i_b_e request.
- X
- X /usr/server/lists/LIST_ALIAS/mail
- X Newly arrived public messages to be distributed.
- X
- X /usr/server/lists/LIST_ALIAS/mbox
- X An archive of all messages sent to date.
- X
- X /usr/server/lists/LIST_ALIAS/moderated
- X Newly arrived public messages that need to be edited
- X
- X
- X
- Anastasios Kotsikonas 17
- X
- X
- X
- X
- X
- X
- server(1) USER COMMANDS server(1)
- X
- X
- X
- X before distributed.
- X
- X /usr/server/mqueue/*
- X Queued messages for later delivery.
- X
- UUUUPPPPGGGGRRRRAAAADDDDIIIINNNNGGGG
- X When upgrading, it is not necessary to remove your current
- X system. In addition, if you are upgrading from:
- X
- X 5.2 Use the _s_y_s_t_e_m mailmethod.
- X
- X For every list you need to edit
- X /usr/server/lists/LIST_ALIAS/.ignored and add one more
- X entry: the full email address of the server account.
- X
- X 5.0, 5.1
- X For every list you need to edit
- X /usr/server/lists/LIST_ALIAS/.ignored and add two
- X entries: the actual list alias, and the full email
- X address of this list.
- X
- X _n_e_v_e_r_a_c_k is not a valid mail mode anymore. Change every
- X occurrence in ".subscribers" to NOACK, for every list.
- X
- X Any peer lists and/or news groups appearing in ".sub-
- X scribers" should be removed; use the _p_e_e_r and _n_e_w_s
- X scripts to put them back.
- X
- X _s_e_r_v_e_r_d, _l_i_s_t and _l_i_s_t_s_e_r_v no longer report to the
- X stdout by default -- use the -e command line option.
- X
- PPPPOOOORRRRTTTT SSSSPPPPEEEECCCCIIIIFFFFIIIICCCC
- X Starting with this version, a universal mailmethod is intro-
- X duced: _s_y_s_t_e_m; It should be used in every system, as it has
- X been verified to work on all systems below. Soon, all other
- X mailmethods will be rendered obsolete.
- X
- X IBM Risc
- X You should use _s_y_s_v__p_s as an option in the _c_o_n_f_i_g file,
- X and use the cc compiler (neither xlc nor c89). You have
- X to use _s_y_s_t_e_m as the mailmethod. Messages distributed
- X to local subscribers on the system may see their mes-
- X sages arrive "From root...", but all other subscribers
- X in the outside world will see "From listserv@..."
- X and/or "From list@..." which is the correct header. If
- X you use _e_n_v__v_a_r _L_O_G_N_A_M_E /_b_i_n/_r_m_a_i_l instead, the
- X behavior will be reversed. _t_e_l_n_e_t may not be used as a
- X mailmethod.
- X
- X SGI You have to use the _s_y_s_t_e_m mailmethod. All Irix ver-
- X sions to date seem to have a serious problem with tel-
- X net (it corrupts file descriptors). Use the _s_y_s_v__p_s
- X
- X
- X
- Anastasios Kotsikonas 18
- X
- X
- X
- X
- X
- X
- server(1) USER COMMANDS server(1)
- X
- X
- X
- X option. You have to use the _s_t_d_s utility before com-
- X piling.
- X
- X SUN _s_y_s_t_e_m and _t_e_l_n_e_t work fine as mailmethods. Use the
- X _b_s_d__p_s option. The server user id should not be the
- X same as root's. You have to use the _s_t_d_s utility before
- X compiling. If you use the native cc compiler you will
- X need to convert to old-C (by using the unproto system);
- X otherwise gcc can be used.
- X
- X DECstations
- X You have to use _s_y_s_t_e_m as the mailmethod; if you use
- X _t_e_l_n_e_t instead, you may have to use the _b_a_d__t_e_l_n_e_t
- X option; _b_s_d__p_s should be used. Ultrix 3.0 has lots of
- X system bugs and you may experience strange behavior;
- X upgrade to 4.*. Depending on which DECstation you
- X have, you may have to use the _s_t_d_s utility before com-
- X piler and/or convert to old-C.
- X
- X Convex
- X You have to use _s_y_s_t_e_m as the mailmethod; all others
- X misbehave. You have to use the _s_t_d_s utility before
- X compiling.
- X
- X Stardent GS series
- X _s_y_s_t_e_m and _t_e_l_n_e_t work fine as mailmethods. Use the
- X _s_y_s_v__p_s option.
- X
- X Stardent Titan series
- X _s_y_s_t_e_m and _e_n_v__v_a_r _L_O_G_N_A_M_E /_b_i_n/_r_m_a_i_l work fine as
- X mailmethods. Use the _s_y_s_v__p_s option.
- X
- LLLLIIIIMMMMIIIITTTTAAAATTTTIIIIOOOONNNNSSSS
- X - Up to 10 discussion lists can be supported (configurable
- X in /usr/server/src/defs.h).
- X
- RRRREEEEQQQQUUUUIIIIRRRREEEEMMMMEEEENNNNTTTTSSSS
- X The $path for the server account should include all neces-
- X sary paths to cut(1), paste(1), awk(1), grep(1), uptime(1)
- X and telnet(1). In addition, uptime(1) should report the
- X number of users and the system load; otherwise _s_e_r_v_e_r_d can-
- X not be run with the -l option, and _l_i_s_t_s_e_r_v cannot be run
- X with the -r option. The output from uptime should look like:
- X
- X 12:45pm up 5 days, 16 mins, 4 users, load average: 0.00, ...
- X Also, make sure that when posting, /usr/lib/news/_i_n_e_w_s
- X exists either as itself or as a link to wherever _i_n_e_w_s
- X resides.
- X
- BBBBUUUUGGGGSSSS
- X uptime
- X When user and load restrictions are enforced, the
- X
- X
- X
- Anastasios Kotsikonas 19
- X
- X
- X
- X
- X
- X
- server(1) USER COMMANDS server(1)
- X
- X
- X
- X system assumes that uptime outputs a line similar to
- X the one shown above, in which the number of users is
- X the third column (columns are separated by commas) and
- X the load average is the fourth column. The problem is
- X that on a system that has been up for less than one
- X day, uptime will report the number of users in the
- X second column, and the load average in the third
- X column. In this case, such restrictions should not be
- X enforced.
- X
- X blanks
- X Although the system handles email addresses with blanks
- X in them fairly well, _s_t_a_t_i_s_t_i_c_s, _r_e_c_i_p_i_e_n_t_s and _s_e_t
- X _l_i_s_t requests will show erroneous results for these
- X users.
- X
- SSSSEEEEEEEE AAAALLLLSSSSOOOO
- X farch(1), queue(1)
- X
- AAAAUUUUTTTTHHHHOOOORRRR
- X Anastasios C. Kotsikonas, Boston University.
- X Copyright (c) 1991, Anastasios Kotsikonas
- X Comments to tasos@cs.bu.edu
- X
- X
- X
- X
- X
- X
- X
- X
- X
- X
- X
- X
- X
- X
- X
- X
- X
- X
- X
- X
- X
- X
- X
- X
- X
- X
- X
- X
- X
- X
- X
- X
- Anastasios Kotsikonas 20
- X
- X
- X
- END_OF_FILE
- echo shar: 2932 control characters may be missing from \"'doc/server.nr'\"
- if test 50151 -ne `wc -c <'doc/server.nr'`; then
- echo shar: \"'doc/server.nr'\" unpacked with wrong size!
- fi
- # end of 'doc/server.nr'
- fi
- echo shar: End of archive 5 \(of 6\).
- cp /dev/null ark5isdone
- MISSING=""
- for I in 1 2 3 4 5 6 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 6 archives.
- rm -f ark[1-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
-