|
|
1.1 ! root 1: .ls 1 ! 2: .ch "Managing Notesfiles" ! 3: ! 4: The notesfile system is installed by a user who is known as the ! 5: ``owner'' of the notesfiles (UIUCDCS uses user ``notes''). ! 6: This user can create, delete, rename, and initiate networking of notesfiles. ! 7: Each notesfile is assigned a set of ``directors'' (who may or may not be ! 8: associated with owner of notesfiles). The directors have special privileges ! 9: for managing the notesfile (see below). ! 10: The ``owner'' rarely manages the day to day aspects of a notesfile, ! 11: although he has director, read, write and response privileges to ! 12: all notesfiles for ! 13: handling emergencies and failures. ! 14: ! 15: .se "Director Options" ! 16: ! 17: The director can: ! 18: ! 19: .bx ! 20: .ix ! 21: Change the access permissions. ! 22: .ix ! 23: Write the policy note. ! 24: .ix ! 25: Change the notesfile title and director message. ! 26: .ix ! 27: Open or close the notesfile. ! 28: .ix ! 29: Allow the notesfile to be networked. ! 30: .ix ! 31: Permit or restrict anonymous notes. ! 32: .ix ! 33: Compress the notesfile. ! 34: .ix ! 35: Change the notesfile's archival parameters. ! 36: .ix ! 37: Delete notes and responses. ! 38: .ix ! 39: Toggle director message on any note or response. ! 40: .ex ! 41: ! 42: The director can delete notes or toggle the director message ! 43: above them while reading the notes. ! 44: Access other options ! 45: by typing ``d'' on the index page. A display like this results: ! 46: .KS ! 47: .nf ! 48: ! 49: .ce 99 ! 50: Workstation Discussion ! 51: *** Your Director Message Here *** ! 52: ! 53: .ce 0 ! 54: .ta 3i ! 55: (a) Anonymous: ON Policy Note Exists: YES ! 56: (o) Notesfile: OPEN Next note in slot: 1 ! 57: (n) Networked: YES Deleted Notes (holes): 0 ! 58: (A) Is Archive: NO Deleted Responses (holes): 0 ! 59: (e) Expiration Threshold: Default ! 60: (E) Expiration Action: ARCHIVE ! 61: (D) Archive with Dirmsg: NOCARE ! 62: (W) Working Set Size: Default ! 63: (l) Maximum Text/Article: 65000 bytes ! 64: .TA ! 65: ! 66: ! 67: ! 68: ! 69: ! 70: ! 71: Option: ! 72: ! 73: .ce 99 ! 74: = = = = = = = = = = = = = = = = = = ! 75: .ce 0 ! 76: .fi ! 77: .KE ! 78: ! 79: Options available on this page include: access lists, policy ! 80: note writing, title & director messages, open/close notesfile, ! 81: network enabling, anonymous notes, notesfile compress, and delete ! 82: a list of notes. ! 83: ! 84: .ss "Access Lists" ! 85: ! 86: The notesfile system allows directors to allow or restrict access ! 87: to each notesfile. ! 88: The access list can allow or deny read, write, respond, and director ! 89: options to any user, group, or system. ! 90: Type ``p'' (``permissions'') on the director options page ! 91: to enter the access list editor. ! 92: The system prompts for an option: ! 93: ``m'' to modify an extant entry, ``d'' to delete ! 94: an entry, ``i'' to insert a new entry, ``r'' to replot the list, ! 95: ``q'' to quit editing the access list, and ! 96: capital ``Q'' to quit editing the access list and IGNORE ANY CHANGES MADE. ! 97: Delete or modify entries by entry number. Scroll the entries using ``+'' and ! 98: ``-''. ! 99: ! 100: After typing ``i'' to insert a new entry, ! 101: the system prompts for a user type ! 102: (``u'' for user, ``g'' for group, ``s'' for system). ! 103: The system then prompts for the name of the user, group, or system. ! 104: (Users and groups must be valid names) ! 105: The default access options ! 106: are then displayed: read, write, answer (for responses). Use the keys ! 107: ``r'', ``w'', ``a'', and ``d'' to toggle the read, write, answer, and director ! 108: privileges respectively. Some options automatically ! 109: enable others (e.g., ``w'' for writing automatically enables ``a'' for answering). ! 110: It is not possible to remove answer access while write access is enabled. ! 111: The ``n'' key will remove all privileges (``no access''). ! 112: Type return (or ``q'') when the correct options have been entered. ! 113: The system prompts for another user. Press return at the prompt to exercise ! 114: other access list options. ! 115: ! 116: The access machinery checks user names before checking ! 117: group names. ! 118: If user ``john'' explicitly has no ! 119: access but his group does, he will nevertheless be denied access to the file. ! 120: If there is no explicit entry for user ``john'', a check is made for ! 121: permissions granted to his group(s). ! 122: (n.b.: an entry for user ``Other'' will match all users, ! 123: circumventing group permissions. ! 124: The behavior typically desired can be achieved with a ! 125: group ``Other'' just as well.) ! 126: ! 127: If no explicit user entry exists, a search for group permissions ! 128: is initiated. ! 129: Users can belong to more than one group ! 130: (although kernels such as Version 7 only allow one at a time) ! 131: and the notesfile code checks each of the user's groups. ! 132: If permissions for several of these groups exist, ! 133: the user is given the inclusive OR of the several permissions. ! 134: If none of the user's groups are given permission, a ! 135: default permission specified by group ``Other'' is usually ! 136: assigned. ! 137: The ``Other'' entry matches when none of the other group entries ! 138: have matched. ! 139: This entry can be deleted, in which case no access is granted. ! 140: ! 141: The current implementation of system access ! 142: enforcement is naive. ! 143: The network software will send to a system only if it has read permission. ! 144: Reception allows intermediaries ! 145: to pass on notes even if they are not allowed write access to the notesfile; ! 146: the access permission is determined from the originating system of each note ! 147: or response ! 148: instead of the site actually delivering the article. ! 149: The name ``Other'' (capital ``O'') matches any system name not ! 150: mentioned explicitly. ! 151: ! 152: Many notesfiles allow several users and groups to have ! 153: read/write access, ! 154: a single user to have director access ! 155: (in addition to the notesfile ``owner''), ! 156: and all other users no access. ! 157: ! 158: When a notesfile is first created, a default access ! 159: list is created. ! 160: The notesfile ``owner'' is made director, group ``Other'' ! 161: and system ``Other'' are both given read/write access ! 162: to the notesfile. ! 163: If the file ``/usr/spool/notes/.utilities/access-template'' ! 164: exists, it contains a list of access-rights to add to ! 165: the new notesfile's access list. ! 166: The file contains lines of access-rights in the format used ! 167: by the nfaccess program. ! 168: Access-rights look like ``user:essick=drwa''; ! 169: for more information on the format of these entries, ! 170: see the man(I) page for nfaccess. ! 171: ! 172: .ss "Policy Note" ! 173: ! 174: Type ``w'' (``write policy'') on the director option page to write a policy ! 175: note (just like writing any other note). ! 176: ! 177: .ss "Title & Director Messages" ! 178: ! 179: Change the notesfile title with ``t'', the director message with ``m''. ! 180: The ! 181: system prompts for a new message. ! 182: Typing only a carriage return will not change the old message. ! 183: ! 184: .ss "Open/Close" ! 185: ! 186: Type ``o'' (``open'') to toggle the availability of the notesfile (subject to ! 187: the access list). ! 188: Closed notesfiles are unavailable to non-directors. ! 189: ! 190: .ss "Network Options" ! 191: ! 192: Type ``n'' (``network'') to toggle the availability of the notesfile ! 193: for networking. ! 194: Arrangements must be made with the notesfile system ``owner'' to do the network ! 195: transfers. ! 196: ! 197: .ss "Anonymous Notes" ! 198: ! 199: Type ``a'' (``anonymous'') to toggle the availability of ! 200: anonymous notes in the notesfile. ! 201: The availability of the anonymous option may provoke slanderous ! 202: attacks from users ! 203: (whose anonymity is completely protected). ! 204: ! 205: .ss "Compression" ! 206: ! 207: Type ``c'' (``compress'') to compress the notesfile. As notes ! 208: are deleted, their text and index space is not reclaimed. This command ! 209: reclaims the space. The notesfile must be closed. On a VAX 11/780, ! 210: 20 seconds of real time (on a slightly loaded system) is required to ! 211: reclaim the space of a notesfile with 50 remaining notes ! 212: (compression time is dependent on remaining notes). ! 213: Notesfiles should be compressed whenever many of their notes have been ! 214: deleted. ! 215: The notesfile archiver ``nfarchive'' and cron(8) can be used to automate this ! 216: process. ! 217: ! 218: The director's option page displays a count of ``holes'' ! 219: left by deleted notes and responses. ! 220: This can be used as an indication of how much wasted space is within ! 221: the notesfile. ! 222: ! 223: .ss "Expiration Threshold" ! 224: ! 225: The `e' command allows a notesfile director to ! 226: modify the notesfile's expiration threshold. ! 227: Possible values include specific numbers of days, `default' ! 228: and `never'. ! 229: The value can be left unchanged by not specifying a ! 230: new value. ! 231: The `default' value is assigned to new notesfiles; ! 232: directors can change it as needed. ! 233: ! 234: The notesfile archiving program (nfarchive) examines the ! 235: expiration threshold of each notesfile it processes. ! 236: This threshold determines how long a note string must be inactive ! 237: before it is eligible for archival. ! 238: The `Default' expiration threshold uses the expiration time ! 239: specified on the `nfarchive' command line; ! 240: this is usually 2 weeks. ! 241: Specific ages can be specified. ! 242: The age specified in the notesfile overrides the value ! 243: on the `nfarchive' command line. ! 244: The `Never' threshold tells `nfarchive' that this notesfile is ! 245: not to be archived. ! 246: ! 247: .ss "Working Set Size" ! 248: ! 249: Each notesfile contains a working set of notes. ! 250: The working set is the number of notes left in the notesfile ! 251: by the nfarchive program. ! 252: When nfarchive runs, it determines a maximum number of notes ! 253: to delete. ! 254: This number is the number of notes written in the notesfile ! 255: minus the number of ``holes'' caused by deletions minus ! 256: the working set size. ! 257: Nfarchive will leave a ``working set size'' of notes in ! 258: the notesfile; ! 259: if fewer notes existed in the notesfile, no notes are ! 260: archived. ! 261: ! 262: The working set size can be changed by the `s' command ! 263: from the director page. ! 264: Possible values include ``default'' and specific numbers. ! 265: ``Default'' specifies that the value supplied during ! 266: the nfarchive run is to be used; ! 267: explicit values in the notesfile always override values ! 268: specified on the nfarchive command line. ! 269: ! 270: .ss "Expiration Action" ! 271: ! 272: Each notesfile can decide on the destination of expired ! 273: notestrings. ! 274: The expiration action field takes one of the values ! 275: ``Default'', ``Archive'' or ``Delete''. ! 276: Archive and delete specify that expired notes are to be ! 277: archived and deleted respectively. ! 278: The default entry specifies that the expiration action should ! 279: follow that specified on the nfarchive command line. ! 280: ! 281: .ss "Expire With Director Message" ! 282: ! 283: Notesfiles can decide how to expire based on director ! 284: message status individually. ! 285: This option can assume four values: ! 286: ``Default'', ! 287: ``Nocare'', ! 288: ``On'', ! 289: and ! 290: ``Off''. ! 291: The on and off values specify that only notes with the ! 292: director message on or off respectively are eligible for ! 293: expiration. ! 294: The nocare value specifies that the director message status ! 295: is not checked; both director and non-director marked notes ! 296: are eligible for expiration. ! 297: Select the default entry to use the value of this parameter ! 298: as specified on the nfarchive command line. ! 299: ! 300: .ss "Maximum Text per Article" ! 301: ! 302: The notesfile system imposes limits on the size of ! 303: each article. Earlier versions restricted articles to 64 kbytes; ! 304: the current version provides for articles up to 4 Gigabytes. ! 305: A constant is used to determine ! 306: the actual maximum allowed per article. ! 307: ! 308: Each notesfile can select a maximum text length per ! 309: article. ! 310: This limit is not allowed to exceed the hard-coded limit ! 311: (currently 3 Mbytes). ! 312: Articles exceeding this limit are truncated and a message ! 313: detailing the count of excess bytes and the system responsible ! 314: for truncating the text is appended. ! 315: ! 316: Initially the maximum text length is set to the ! 317: highest permissible value. ! 318: One reason for lowering the limit is to meet restrictions ! 319: on the size of network transfers. ! 320: ! 321: .ss "Deleting and Un-Deleting Many Articles" ! 322: ! 323: Type ``z'' (``zap'') to delete many notes (and their ! 324: responses) quickly. ! 325: Enter a list of note numbers or note ranges (aa-bb) separated by spaces. ! 326: Confirm the command with ``y''; other responses will abort the command. ! 327: It is economical and prudent to compress the notesfile ! 328: shortly thereafter. ! 329: Note that deleting notes in a networked notesfile makes those notes ! 330: unavailable to those who poll your system for new notes and responses. ! 331: ! 332: The ``u'' (undelete) command performs the opposite function ! 333: of the ``z'' command. ! 334: This command allows you to specify a list of note strings to ! 335: be un-deleted. ! 336: When prompted, the director shoul supply the note numbers he wishes ! 337: to re-activate. ! 338: The specified notes are re-activated and can be viewed as before. ! 339: This command is only effective until a compression of the notesfile; ! 340: after that time the notes are no longer present in the notesfile. ! 341: ! 342: .ss "Director Options for Notes" ! 343: ! 344: Directors may put a ``director message'' above any note they write. ! 345: There is one single line director message for each notesfile. Typical ! 346: director messages ! 347: are: ``New Policy'', ``*** This problem fixed or ignored ***'', ! 348: or ``-- Eat Flaming Death Fascist Pigs --''. ! 349: Directors can also toggle the director message on ! 350: a note being ! 351: read (``d'' for ``director message''). ! 352: A director can delete a note (and all its ! 353: responses) or any response while reading the text of the note or response ! 354: by typing ``Z'' (``zap this one'') and confirming with ``y''. ! 355: ! 356: .ss "Default Sequencer Lists" ! 357: ! 358: Some users never set up an ``NFSEQ'' environment variable ! 359: specifying the notesfile they wish to see. ! 360: The file ``/usr/spool/notes/.utilities/Dflt-Seq'' contains a ! 361: default list of notesfiles. ! 362: Users without an ``NFSEQ'' variable receive the notesfiles listed ! 363: in this file. ! 364: The file can be changed at anytime and will take effect with ! 365: the next ``autoseq'' by a user. ! 366: ! 367: .se "Creation & Deletion of Notesfiles" ! 368: ! 369: Only the ``owner'' of the notesfile system can create notesfiles. ! 370: Create notesfiles with the mknf command: ! 371: ! 372: mknf [ -aon ] topic1 [ ... ] ! 373: ! 374: The created notesfiles have default status of ! 375: closed, non-networked, and ! 376: no anonymous notes permitted. ! 377: Specify -a to permit anonymous notes in the new notesfiles. ! 378: Use -o to have the notesfiles marked open for general use and ! 379: the -n option to enable the notesfiles' network availability. ! 380: These status flags can all be modified from the directors page at later ! 381: times. ! 382: ! 383: Delete notesfiles with rmnf: ! 384: ! 385: rmnf [ -f ] topic1 [ ... ] ! 386: ! 387: Each notesfile to be removed must be verified with ``y'' after a ! 388: prompt -- anything else will leave that notesfile intact. ! 389: Use the -f option to blindly remove notesfiles; ! 390: the verification step is bypassed when ``rmnf'' is invoked ! 391: with the -f option. ! 392: ! 393: The file /usr/spool/notes/.utilities/avail.notes contains ! 394: a list of the public notesfiles. ! 395: The notesfile owner should update this file when he creates ! 396: new notesfiles; ! 397: this file is not automatically updated by ``mknf'' and ``rmnf''. ! 398: The contents and format of the file are at the discretion of the ! 399: notesfile system owner. ! 400: ! 401: .se "Intersystem Notesfiles" ! 402: ! 403: The notesfile system provides for intersystem notesfiles ! 404: in an arbitrary connected network. ! 405: Copies of a shared notesfile must exist on each ! 406: of the systems wishing to read notes for that notesfile. ! 407: The contents are kept in synchrony through occasional exchanges ! 408: over a network (UIUCDCS uses both uucp and tcp/ip). ! 409: Notesfiles to be shared must have their ``network status'' enabled (see ! 410: director options). ! 411: ! 412: Duplication of notes and responses is prevented by the use of ! 413: unique identifiers. ! 414: Each note and response in a notesfile is assigned a unique number. ! 415: The networking software checks each note as it arrives to ! 416: see if a copy already exists. ! 417: In the event of duplication, the extra copy is discarded and ! 418: the fact is logged in the statistics and the network log. ! 419: ! 420: In the (hopefully rare) event that a response arrives at a ! 421: system before the base note does, the network reception program will ! 422: generate a ``foster parent'' for the orphaned response. ! 423: When the true parent arrives, ! 424: the foster parent will be overwritten. ! 425: A count of orphaned responses received is kept and available ! 426: through use of the nfstats program (see section 4.4). ! 427: ! 428: .ss "Transmitting Notesfile Updates" ! 429: ! 430: The nfxmit program gathers the new notes and responses in specified ! 431: notesfiles and sends them to a specified site. ! 432: The notesfile ``owner'' must occasionally enter the following command (or ! 433: have it entered for him by cron) ! 434: to update remote notesfiles with new notes and receive new remote ! 435: notes: ! 436: ! 437: nfxmit -dsitename [-t datespec] [-r] [-a] [-f file] topic1 [...] ! 438: ! 439: The ``sitename'' is the name of the remote site ! 440: to receive the new notes. ! 441: The remote site should have notesfiles matching those specified ! 442: by the topic1 parameter. ! 443: For remote notesfiles with different names, see the section below on ! 444: Name Mapping. ! 445: ! 446: The optional -t specifies that all notes and responses ! 447: since that date should be sent (normally -t is omitted and the notesfile ! 448: system sends only new notes and responses). ! 449: ! 450: The -r option specifies that the remote notes system ! 451: should not only receive the current changes but also reply in kind. ! 452: This is useful if the remote system does not automatically run the ! 453: nfxmit program. ! 454: ! 455: The -a option specifies that articles inserted ! 456: from the news(I) system ! 457: are to be sent also. Normally these articles are not sent because the ! 458: receiver probably has them; the primary use of this switch is for sites ! 459: that do not run news(I). ! 460: ! 461: Using the -f switch tells nfxmit ! 462: to read the file specified for a list ! 463: of notesfiles to transmit; ! 464: multiple -f parameters are permitted and can be freely intermixed ! 465: with `topic' parameters. ! 466: Notesfile name pattern matching is ! 467: performed on both `topic' parameters and ! 468: the entries in a file specified by the -f option. ! 469: ! 470: Nfxmit uses uux(1) as a transport and remote execution ! 471: mechanism. Connections using different protocols and mechanisms ! 472: can be selected in the file ``/usr/spool/notes/.utilities/net.how''; ! 473: its format is described in the section ``Non-Standard Links''. ! 474: Uux typically permits a limited set of commands to be executed ! 475: remotely. ! 476: The file ``uuxqt.c'' in the UUCP source code contains a list of ! 477: acceptable commands; this file should be edited to include the ! 478: ``nfrcv'' program. ! 479: ! 480: .ss "Network Transaction Log" ! 481: ! 482: The network software maintains a log of all transactions, ! 483: including time, date, number of notes and responses transferred, direction ! 484: of transfer, ! 485: and number of notes replicated by transfer. ! 486: This log is placed in a file called `net.log' and resides in the ! 487: notesfile utility directory (by default: /usr/spool/notes/.utilities). ! 488: ! 489: This file will grow without bounds. ! 490: Occasional pruning is a good idea. ! 491: There is no vital information stored in this file; ! 492: its purpose is to provide a network audit trail. ! 493: ! 494: .ss "Non-Standard Links" ! 495: ! 496: Some systems will be unable to keep the notesfile network ! 497: software in a public directory (such as /usr/bin). ! 498: Other sites will have non-uucp links. ! 499: The `net.how' file is for these cases. `Net.how' is ! 500: kept in the notesfile utility ! 501: directory (/usr/spool/notes/.utilities) ! 502: and ! 503: contains information on linking to remote systems. ! 504: Entries in the file are made for systems with non-standard links ! 505: and ! 506: have the following format: ! 507: ! 508: system:direction:protocol::command string ! 509: ! 510: The system field contains the name of the remote system. ! 511: The direction field ! 512: contains either an `x' or `r' (no quotes) and specifies the direction ! 513: that the line is for. ! 514: An `x' specifies that the command string is for sending notes to the ! 515: remote site; an `r' specifies that the command string is used in ! 516: coercing the remote system to send its new notes and responses back. ! 517: Lines beginning with a `#' are comment lines and ignored by the notesfile ! 518: code. ! 519: ! 520: The protocol field is either empty or contains an integer ! 521: value. An empty field indicates protocol 0. ! 522: Currently only protocols 0 and 1 are supported. ! 523: The notesfile receiving programs automatically switch between ! 524: protocols. ! 525: ! 526: The command string is a printf control string (without quotes) ! 527: with two `%s' ! 528: entries. ! 529: The first is for filling in the name of the notesfile, the second is ! 530: for the local system name. ! 531: Many entries in the `net.how' file will be to place ! 532: different paths on the `nfrcv' and `nfxmit' commands. ! 533: The default command line is: ! 534: ! 535: uux -z - system\\!nfrcv %s %s ! 536: ! 537: for the `x' entry and for the `r' entry: ! 538: ! 539: uux system\\!nfxmit %s -d%s ! 540: ! 541: In the following sample from our net.how file, the host ! 542: ``uicsovax'' is connected via UUCP and the notesfile networking ! 543: programs live in non-standard directories. ! 544: The host ``etherhost'' is reachable over a local network and the ! 545: Berkeley ``rsh'' commands can be used to ship data between ! 546: the local host and ``etherhost''. ! 547: ! 548: .nf ! 549: uicsovax:x:::uux - uicsovax!/mnt/dcs/essick/.commands/nfrcv %s %s ! 550: uicsovax:r:::uux uicsovax!/mnt/dcs/essick/.commands/nfxmit %s -d%s ! 551: etherhost:x:::rsh etherhost /usr/bin/nfrcv %s %s ! 552: etherhost:r:::rsh etherhost /usr/bin/nfxmit %s -d%s ! 553: .fi ! 554: ! 555: ! 556: .ss "Notesfile Name Mapping" ! 557: ! 558: To provide flexibility in the naming of notesfile across systems, ! 559: the network software looks in the ! 560: directory /usr/spool/notes/.utilities/net.aliases ! 561: for mappings of local notesfile names to remote notesfile names. ! 562: Each file in the directory is named after a system (e.g., pur-ee or uicsovax). ! 563: Each of these files contains lines which specify the mapping of local ! 564: notesfiles to the particular systems notesfiles. ! 565: Lines beginning with `#' in these files are comment lines and are ignored ! 566: in the matching process. ! 567: Data lines in the files look like: ! 568: ! 569: local_nf:remote_nf ! 570: ! 571: If there is no entry for a particular notesfile or ! 572: the file for that system is missing, the local name is used. ! 573: ! 574: Mapping is performed by the transmission program ``nfxmit''. ! 575: The ``nfrcv'' program does not consult this table. ! 576:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.