[HECnet] Tops-20 Disk Quotas (was Anonymous FAL (Tops-20))

Johnny Billquist bqt at softjar.se
Fri Jul 5 12:40:38 PDT 2019


Well, accounts and directories are not clearly separated things under 
TOPS-20, as you yourself noted.
And disk quotas were annoying to deal with.

Back around the same time, I was using RSTS/E at school, and there you 
had disk quotas too, and no subdirectories. Also, the default quota was 
20 blocks (10 Kbyte). Felt quite acceptable at the time. One RM03 for 
four schools sharing one PDP-11/70.

But creating directories under TOPS-20 was not *that* hard. There was 
the BUILD command, which sorted out most things rather simply. But I 
don't know how you'd do it programmatically.

The fact that you could have sub-users on the other hand was one of the 
most beautiful things of TOPS-20. And it implicitly already gave you 
groups. At university, each course there was a user, and all students 
were sub-user to that, belonging thus to the same group. Managed by the 
teacher, who had the parent account.

As for maximum disk, well... You could have RP07 disks. At half a gig, 
that was pretty decent. Each of our -2060 had one RP07. And one had one 
RP06, while the other one had three RP06 drives.

And Unix is older than TOPS-20, and ran on more limited resources, and 
still handled subdirectories and quotas cleaner. So I don't think it's 
fair to just blame old age or limited resources. A PDP-10 had vast 
resources compared to many other things...

   Johnny

On 2019-07-05 20:57, Thomas DeBellis wrote:
> 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.
> 
> 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).
> 
> Create a directory under Unix? mkdir.  Easyn  peasy. Windows? md, unless 
> you are running quotas.  Also no heavy lift.
> 
> 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 CRDIR%, go 
> recursive and modify the superior (and on up).
> 
> You can defeat some of this.  Setting CD%NSQ will cause CRDIR% 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 IPCF% based 
> client/server application, coupled with some changes to the access 
> control job.
> 
> 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.
> 
> It's a vastly different world now.  So Tops-20 needs a mkdir, 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 BUILD or ^ECREATE.
>> ------------------------------------------------------------------------
>> On 7/4/2019 2:48 PM, Johnny Billquist wrote:
>>
>> 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.
>>> ------------------------------------------------------------------------
>>> On 2019-07-04 04:01, Thomas DeBellis wrote:
>>>
>>> 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,
>>>
>>>   * 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.
>>>   * 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).
>>>   * 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.
>>>
>>> However, a deleterious side-effect is that once an id is created, it 
>>> can be used for _anything_, including online interactive login.
>>>
>>> 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.
>>>
>>> Artifacts of this still exist in certain browers.  Guess who supplies 
>>> IEUSER@ as the email address password for ANONYOUS usage?
>>>
>>> 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.
>>>
>>> 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).
>>>
>>> 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.
>>>
>>> Does the VMS hobbiest license get you source code?
>>>> ------------------------------------------------------------------------
>>>> On 7/3/2019 7:21 PM, Johnny Billquist wrote:
>>>>
>>>> VMS, as someone else mentioned, have a default account for FAL.
>>>>
>>>> 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.
>>>>
>>>> If TOPS-20 can do this I don't know.  But it's a suggestion for 
>>>> something else/more to check.
>>>>
>>>>   Johnny
>>>>> ------------------------------------------------------------------------
>>>>> On 2019-07-03 14:15, Thomas DeBellis wrote:
>>>>>
>>>>> 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.
>>>>>
>>>>> I know how to do it for the FTP server (seeing as I wrote it), but 
>>>>> ... different code base.
>>>>>
>>>>> 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.


-- 
Johnny Billquist                  || "I'm on a bus
                                   ||  on a psychedelic trip
email: bqt at softjar.se             ||  Reading murder books
pdp is alive!                     ||  tryin' to stay hip" - B. Idol


More information about the Hecnet-list mailing list