<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>Oh, it's something beyond annoying, but it's not the accounting
      system confounding you; that can be completely disabled (I have it
      off on my systems).  The policy is actually built into the Tops-20
      file system itself.</p>
    <p>Directories under Tops-20 are vastly different--both in concept
      and implementation--from anything else that I've seen (and I did a
      lot of research into file system design at one particular job). 
      Directory creation is cumbersome, typically requiring expert level
      intervention or significant programming.  However, it's whaay
      better than what Tops-10 had at the time (nothing), ITS (don't
      ask), WAITS (nothing) or MVS (partitioned data sets, a true hack).</p>
    <p>Create a directory under Unix?  <tt>mkdir</tt>.  Easyn  peasy. 
      Windows?  <tt>md, </tt>unless you are running quotas.  Also no
      heavy lift.<br>
    </p>
    <p>Tops-20 got more and more complex.  In addition to having to take
      quota away from the superior and hand it over to the
      sub-directory, unless you are running PANDA modifications, you
      have to create an access group and allocate it or the poor user
      can't see his own sub-directory.   Group management can be
      confusing if you are running super-domestic structures and
      downright tedious for regular structures, otherwise.  There was
      more; Yeesh...   Instead of trying to check for every possible
      problem beforehand, it was sometimes easier to catch errors from
      the <tt>CRDIR%</tt>, go recursive and modify the superior (and on
      up).<br>
    </p>
    <div class="moz-cite-prefix">You can defeat some of this.  Setting <tt>CD%NSQ</tt>
      will cause <tt>CRDIR%</tt> to no update the the superior, but you
      need rights to do it.  I always thought that there was a better
      way to do this, perhaps with an <tt>IPCF%</tt> based
      client/server application, coupled with some changes to the access
      control job.</div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">Why all this hair?  Directories were
      considered precious resources.  Why would that be?  Consider what
      happens when you try to fit (or cram) a user population of over
      25,000 students onto the triple 180 MB disk structures of the time
      (the maximum you could do in 1980's).  You get measly user
      permanent quotas of 100 pages (250KB), working of 1,000.  Not
      much.</div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">It's a vastly different world now.  So
      Tops-20 needs a <tt>mkdir</tt>, but that would need to talk to a
      privileged backend with policy and directory creation smarts.  I
      think that would be pretty friendly; definitely easier than trying
      to suss out <tt>BUILD</tt> or <tt>^ECREATE</tt>.<br>
    </div>
    <blockquote type="cite"
      cite="mid:40077831-865d-bc92-5dd8-e89e4f986f47@softjar.se">
      <hr width="100%" size="2">On 7/4/2019 2:48 PM, Johnny Billquist
      wrote:<br>
      <br>
      The one annoying detail of the account system in TOPS-20 is that
      user disk quotas are on a per directory basis. So you have to
      manually move your disk quota around for your subdirectories.
      <br>
      <blockquote type="cite">
        <hr width="100%" size="2">On 2019-07-04 04:01, Thomas DeBellis
        wrote:
        <br>
        <br>
        Tops-20 is vastly different from Unix (and I believe also VMS)
        as to how it manages user ids and accounts.  Parts of the
        authentication paradigm are very tightly woven into the the file
        system.  Briefly,
        <br>
        <ul>
          <li>A user id is a login-able directory (I.E., one that
            doesn't have apassword and is not set FILES-ONLY).  In
            addition to basic OS restrictions which prevent you from
            viewing file system meta-data unless you have appropriate
            authorization, an access control job (ACJ) is layered on top
            of this which can even restrict privileged users.
          </li>
          <li>Accounts are either validated out of a binary accounting
            file in monitor space (which is compiled from ASCII source)
            or via the ACJ.     Accounts can have multiple users or
            systems processes (such as spoolers) creating billing
            records. Users can switch between accounts on a per-job,
            per-fork and intra-program basis (a program can decide to
            bill certain portions of its activity to different
            accounts).
          </li>
          <li>The obvious benefit is that there is no password file to
            attack or steal and you can't even tell that there is an
            accounting file; probing passwords is monitored and a
            certain amount of intervention is done.  It is /extremely/
            fast. No /etc/passwd to grovel.
          </li>
        </ul>
        However, a deleterious side-effect is that once an id is
        created, it can be used for _anything_, including online
        interactive login.
        <br>
        <br>
        On a PANDA monitor, is possible to specify a user id as
        FTP-ONLY, but neither the supplied 5 series ACJ nor the EXEC do
        anything with it.  Historically, the Tops-20 FTP server
        implemented ANONYMOUS usage by parsing for the login user atom
        ANONYMOUS and then swallowing anything for the password (what
        was typically supplied was an email addresses). This was then
        hardwired into a local id.
        <br>
        <br>
        Artifacts of this still exist in certain browers.  Guess who
        supplies IEUSER@ as the email address password for ANONYOUS
        usage?
        <br>
        <br>
        I recall that this is the approach that we had to use with
        Tops-20 FAL.  The Extended  Mode FTP server that I wrote is
        configurable via a file to specify the underlying id and
        password.  More productization would probably including having
        the ACJ enforce FTP-ONLY on LOGIN% or CRJOB% and having the EXEC
        parse for and display FTP-ONLY.  Probably about two weeks' part
        time work as I recall.  Might have to consider Batch policy.
        <br>
        <br>
        One approach here could be to lift the ANONYMOUS code out of
        EFTPSR and drop it into FAL and then do the changes to the ACJ
        and EXEC. I'm just surprised none of the HECnet Tops-10 or
        Tops-20 nerds have done it (there is some commonality in some of
        the sources).
        <br>
        <br>
        Since Tops-20 has a BLISS compiler which implements BLISS COMMON
        (my first training at DEC as an employee was to write code that
        would cross compile under VMS, RSX, Tops-10 and Tops-20).  I
        think it might be useful to review some of the VMS DECnet
        source, if any of that is available.  It might be possible to
        lift some functionality, which could be fun.
        <br>
        <br>
        Does the VMS hobbiest license get you source code?
        <br>
        <blockquote type="cite">
          <hr width="100%" size="2">On 7/3/2019 7:21 PM, Johnny
          Billquist wrote:
          <br>
          <br>
          VMS, as someone else mentioned, have a default account for
          FAL.
          <br>
          <br>
          RSX does not have that.  However, you can use proxy access in
          RSX to achieve something similar.  Enable incoming and
          outgoing proxy, and define a default account that incoming
          requests should be using that way.
          <br>
          <br>
          If TOPS-20 can do this I don't know.  But it's a suggestion
          for something else/more to check.
          <br>
          <br>
            Johnny
          <br>
          <blockquote type="cite">
            <hr width="100%" size="2">On 2019-07-03 14:15, Thomas
            DeBellis wrote:
            <br>
            <br>
            I have some software that I'd like to post, but don't recall
            how to configure FAL to allow for an anonymous connection;
            to download from a restricted directory.
            <br>
            <br>
            I know how to do it for the FTP server (seeing as I wrote
            it), but ... different code base.
            <br>
            <br>
            I can only vaguely remember what we did for CCnet at
            Columbia University in the 1980's, but I think it was kind
            of a hack.<br>
          </blockquote>
        </blockquote>
      </blockquote>
    </blockquote>
  </body>
</html>