Annotation of researchv10dc/cmd/netnews/misc/adm, revision 1.1.1.1

1.1       root        1: From cbosg!decvax!watmath!bstempleton Tue Mar  2 20:01:49 1982
                      2: Date: Mon Mar  1 19:37:04 1982
                      3: From: cbosg!decvax!watmath!bstempleton
                      4: Subject: net.adm.site stuff
                      5: Via: cbosgd.uucp (V3.73 [1/5/82]); 2-Mar-82 20:01:48-EST (Tue)
                      6: Mail-From: cbosg received by cbosgd at 2-Mar-82 20:01:45-EST (Tue)
                      7: To: decvax!cbosg!cbosgd!mark decvax!duke!unc!smb decvax!ittvax!swatt
                      8:     decvax!shannon decvax!ucbvax!ARPAVAX:glickman watarts!eric
                      9: :::::::::::::::::::::::::::::::::::::::::::::::::::
                     10: OK, here goes - a new idea for automating some of the work done by news
                     11: administrators on the USENET.
                     12: 
                     13: I propose the setting up of a set of control newsgroups called net.adm.*, which
                     14: will primarily be for computer rather than human consumption.  Messages posted
                     15: to these groups will all be fed by lines in the SYS file into programs that
                     16: interpret them, as well as forwarding them to other systems.
                     17: 
                     18: The first of these programs I include below.  It is for a group to be called
                     19: net.adm.site, and implements automatic USENET directories.  There are two
                     20: programs.  One prompts a news administrator for information concerning his
                     21: site, and builds a file of it.  This file is posted to net.adm.site.
                     22: One of the things the script asks for is a list of your uucp connections
                     23: in the format required by unc!smb's cheapest path uucp alias generator.
                     24: If all sites provide the public paths they have, this will allow the
                     25: generator to produce the best routings, saving everybody money and phone time.
                     26: 
                     27: The second file reads articles posted to net.adm.site.  It takes the system
                     28: name off the article-id and creates an entry for that site.  Included in
                     29: that entry is a path to that site derived from the 'from' line in the
                     30: header.  This article is appended to the USENET directory file, in this
                     31: case called /usr/lib/news/usenetdir, and deletes the old entry for that
                     32: site.  If you want it to put the entry in a private one file per site
                     33: directory, the change is fairly obvious.
                     34: 
                     35: This is a simple description, but the shell scripts are simple and easy to
                     36: read if you want to know what is going on.  The scripts use A format so
                     37: that both A and B news users can take advantage of them.  To install this
                     38: at your site:
                     39: 
                     40: 1) Put the 'siteform' shell script somewhere hand so that you can execute
                     41: it when you like.  If you run B news, it is probably a good idea to NOT
                     42: have net.adm groups in your ngfile, but rather manually, temporarily put
                     43: them in when the time comes to make an entry, to avoid accidental posting
                     44: to these groups by other users.
                     45: 
                     46: 2) Put the 'recsite' shell script somewhere, and make it executable.  I
                     47: suggest /usr/lib/news as a fine place for it, but anything will do.
                     48: (A sites don't have this directory, they can use another)
                     49: 
                     50: 3) If you like, make recsite run setuid to the newsuser (and setgid if you
                     51: also desire) so that the usenet directory will not have to be generally
                     52: writable
                     53: 
                     54: 4) Alter the variables in 'recsite' as you need regarding files and
                     55: directories to use.  If you run A news, change the mentions of inews -t
                     56: to 'news -i' as you like.
                     57: 
                     58: 5) add a line to your sys or .sys file to handle recsite.  A typical line
                     59: might be:
                     60: 
                     61: siterec:net.adm.site:A:/usr/lib/news/recsite
                     62: 
                     63: This depends on what directories you have used etc.
                     64: Note also that the name 'siterec' is just a dummy name that should not
                     65: match any existing or likely uucp system name.
                     66: 
                     67: You are now ready to go.  I will be posting the watmath entry in a short
                     68: time.  Entries are put in the usenetdir file with each line prepended with
                     69: "sitename;" so you can conveniently grep for info on a given site.
                     70: 
                     71: In addition, each entry contains a line called 'Best Path:'.  You will probably
                     72: want to alter this line when a new site entry comes in, since it will contain
                     73: the rather roundabout USENET path.  This line can eventually be used for
                     74: things such as aliasing programs or to answer the user's question:
                     75: "How to I get to site X?"
                     76: Unfortunately, the Best Path part won't work if an ARPANET like is used,
                     77: as for site 'cca'.  You'll have to manually alter this.
                     78: Eventually, best paths will be pulled out of the UUCP link entries in your
                     79: directory.
                     80: 
                     81: There are further plans for net.adm.*  These groups can be used for all
                     82: sorts of control messages that might also be read by humans unlike the
                     83: net.*.ctl messages coming out in the B release of netnews.  It would
                     84: be fairly simple to set up programs to create a uucp 'phonebook' listing
                     85: people on the USENET (net.adm.phone) or a group in which newly created
                     86: uucp links are declared if you will allow public use on them.
                     87: (thus the wonder programs to do the graph theory on the net have a database
                     88: to work on.)
                     89: 
                     90: If others have ideas - they can go ahead, all that need be done is to write
                     91: the code to enter items and the code to decode them.  Post the code to the
                     92: net, with installation instructions, and wait for acceptance.  In about
                     93: a week, assuming this idea is accepted, I will give the go-ahead for all
                     94: sites to post their entries.  After this, every site that wants one will have
                     95: an up to date USENET directory in a standard form.
                     96: 
                     97: Some further notes on installation:
                     98: 
                     99: 1) You may desire to make it possible for users to subscribe to and read this
                    100: newsgroup.  If you don't, and run B news there are a few ways you can stop the
                    101: articles from being posted.  The first is the built in RESTRICT feature of B
                    102: news that lets you exclude newsgroups.  Normally this is not turned on.  The
                    103: second is a kludge involving chown.  Allow the newsgroup net.adm.site (and
                    104: other net.adm.* groups as they come along) to be created.  Once it is created,
                    105: chown the directory in which it lives to some user other than the newsuser.
                    106: (you will probably wish to chgrp it as well).  Once this is done, attempts
                    107: to write into the directory by the news program, which is setuid, will fail
                    108: because of permissions denied.  As far as I can tell, news just handles this
                    109: quietly and the article is not written.  It is still forwarded however, which
                    110: is important.
                    111: 
                    112: 2) The new release of B news involves control messages of the form all.all.ctl,
                    113: which are never put in files on the local system - just interpreted by special
                    114: case code.  It is possible that once these are fully implemented that automatic
                    115: directory entries will switch over to this method, or use a combination of the
                    116: methods.
                    117: 
                    118: 3) When you connect a new site to the USENET, you should send them your current
                    119: directory of the net and a copy of these programs for them to use to announce
                    120: themselves.
                    121: 
                    122: 4) Use of these programs does not exclude normal, human readable announcement
                    123: in the group net.news.newsite.  It is possible to change the 'siteform' script
                    124: to post to both net.adm.site and net.news.newsite, since the entries are
                    125: generally human readable, although they do not contain the uucp name of the
                    126: site anywhere.  (That is pulled from the article-id)
                    127: 
                    128: Here is the shell script for the reading program, called 'siteform'
                    129: 
                    130: -------------------------------------------------------------------
                    131: san=/tmp/tan$$
                    132: SITEGROUP=net.adm.site
                    133: echo "Give the institution type name of your site, ie. the name of your company?"
                    134: read name
                    135: echo Site: $name >$san
                    136: echo "Please give the contact userid for uucp and usenet queries"
                    137: read contact
                    138: echo Contact userid: $contact >>$san
                    139: echo "What is the real name of the contact person?"
                    140: read realname
                    141: echo Contact name: $realname >>$san
                    142: echo "What is the postal service address of your site?"
                    143: echo "Type as many lines as you like, ending with a null line"
                    144: while { read addr; test -n "$addr"; }
                    145:        do echo Address: $addr >>$san
                    146: done
                    147: echo "Please give the network names of your USENET partners (the people in your"
                    148: echo "sys (or .sys) file (seperated by commas)"
                    149: read unpart
                    150: echo Usenet partners: $unpart >>$san
                    151: cat <<"blart"
                    152: Please give the network names of the people that you talk to
                    153: on the uucp network.  This information is desired for a database of UUCP
                    154: connections from which UUCP aliasing files can be built through a program
                    155: written by unc!smb.  List each site to which you have a uucp connection
                    156: that you wish to make public.  To list a site, give its UUCP name, followed
                    157: by a value describing how useful the connection is in parentheses. Your
                    158: cost can be given as a standard arithmetic expression.  The lower the number,
                    159: the better the line is.  The following 'manifests' are known to the program
                    160: with the following values: (If you don't give an expression, 3000 is default)
                    161:        LOCAL = 10
                    162:        ARPA = 31
                    163:        DED = 95
                    164:        DEDICATED = 95
                    165:        DIRECT = 200
                    166:        DEMAND = 300
                    167:        DIAL = 300
                    168:        DIALED = 300
                    169:        HOURLY = 500
                    170:        POLLED = 5000
                    171:        DAILY = 5000
                    172:        WEEKLY = 30000
                    173:        DEAD = INF/2
                    174:        HIGH = -5       /* baud rate bonus */
                    175:        LOW = 5         /* baud rate penalty */
                    176: 
                    177: Delimit your entries with commas.  Type as many lines as you like,
                    178: (naturally, don't put a comma after the last entry) and enter a null
                    179: line when you are done.  Here is an example:
                    180: decvax(2*HOURLY), watcgl(DIRECT), watarts(DEMAND),
                    181: hcr(POLLED), cbosg(WEEKLY)
                    182: blart
                    183: while { read uupart; test -n "$uupart"; }
                    184:        do echo Partners: $uupart >>$san
                    185: done
                    186: echo "Please give the voice phone number of the contact person at your site."
                    187: echo "(nnn) nnn-nnnn format please"
                    188: read voiph
                    189: echo Voice phone: $voiph >>$san
                    190: echo "Please give the data dial-in number of your system if you wish to give it"
                    191: echo "Also give the type of modem on these dial in lines."
                    192: echo "Type in: (nnn) nnn-nnnn modem type"
                    193: read dialno
                    194: echo Dial in: $dialno >>$san
                    195: echo "Please give the names/classifications of newsgroups that you receive"
                    196: echo "at your site.  You may want to include local area groups you work with."
                    197: echo "Example: net.all,fa.all - internally wat.all"
                    198: read ngrps
                    199: echo Subscribes to: $ngrps >>$san
                    200: echo "Please indicate your willingness to allow other sites to connect to you"
                    201: echo "for USENET news and mail.  Indicate if you can call other sites, how"
                    202: echo "far you can call, or if you will only give news to those who can call you."
                    203: read will
                    204: echo Willingness: $will >>$san
                    205: echo "To help in producing a USENET map, would you please give your latitude"
                    206: echo "and longitude on the following line.  please type in the figures in the"
                    207: echo "form 'deg.min D deg.min D', latitude first, longitude second.  For"
                    208: echo "example, something like '43.00 N 75.00 W' is in the right format"
                    209: echo "Note that if you can't find this information, don't worry about it."
                    210: echo "You can always submit the information in a later entry"
                    211: read loc
                    212: echo Location: $loc >>$san
                    213: echo "Please enter any comments you might wish to add to your directory entry."
                    214: echo "You may want to describe what hardware you have, or just give additional"
                    215: echo "details regarding your site.  Enter an EOF to indicate you are done"
                    216: while read cline
                    217:        do echo Comment: $cline >>$san
                    218: done
                    219: echo "Here is your USENET directory entry.  Enter a newline to send it off."
                    220: echo "Anything else will abort the sending and leave the entry in $san"
                    221: cat $san
                    222: read abrt
                    223: if test -z "$abrt"
                    224:        then inews -n $SITEGROUP -t "sitedir \"$name\"" -q <$san
                    225:        rm $san
                    226: else
                    227:        echo "Your item is now in file $san"
                    228:        echo "You may edit it, and post it with the command:"
                    229:        echo "inews -n $SITEGROUP -t \"sitedir "$name"\" -q <$san"
                    230: fi
                    231: ------------------------------------------------------------------------
                    232: 
                    233: Here is the decoding program, called 'recsite', to go in /usr/lib/news if
                    234: you desire.  Note a temporary file is needed, you should define it as
                    235: you like.
                    236: 
                    237: -------------------------------------------------------------------------
                    238: DIRFILE=/usr/lib/news/usenetdir
                    239: DIRTEM=/usr/lib/news/dirtem
                    240: read site
                    241: site=`echo $site | sed -e 's/^A//' -e 's/\..*$//'`
                    242: read groups
                    243: read path
                    244: path=`echo $path | sed -e 's/^[^!:]*[!:]//' -e 's/[!:]*[^!:]*$//'`
                    245: read date
                    246: read title
                    247: if test ! -r $DIRFILE; then
                    248:        touch $DIRTEM
                    249: else
                    250:        sed -e "/^$site;/d" >$DIRTEM <$DIRFILE
                    251: fi
                    252: while read item; do
                    253:        echo "$site;$item" >>$DIRTEM
                    254: done
                    255: echo "$site;Best Path: $path" >>$DIRTEM
                    256: mv $DIRTEM $DIRFILE
                    257: --------------------------------------------------------------
                    258: 
                    259: 
                    260: 
                    261: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.