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