==> Help on keyword ShareFS Module is: ShareFS 3.41 (27 Nov 1996) Access+
The first thing to do to share a printer, is, of course, to set up that printer on the local machine. This is fully detailed in your machine's User Guide, so I won't cover it again here. In this example, I have installed an HP DeskJet printer on an A440 called "cheetah". Ensure that the printer is "Active" by using the "Printer control..." menu from !Printers. Now we can share the printer - from the printer control window, select the printer you wish to share, click Menu and choose "Shared". That's all there is to it! You may notice that you have a new entry in the printer control window, with the same name as the printer you've just shared, but marked as "Remote" connection and status as "Inactive". This confirms that the A440 can see the printer on the network.
You can also check *FWShow to see that the printer shows up there:
No remote nets Type 2: (Printers) *Name=DeskJet Holder=192.168.1.3 Type 5: (Hosts) *Name=cheetah Holder=192.168.1.3 Type 1: (Discs) *Name=Cheetah Holder=192.168.1.3 *Name=_S301a8c0 Holder=192.168.1.3
You may also notice a strange disc share entry for this machine (_S301a8c0 in this example) -- this is actually used by !Printers to copy the data across the network -- you can ignore it.
So now we need to set up other machines on the network to use that shared printer. This is also very easy. Load !Printers on the client machines (we will use the machine 'bear' in this example). Do make sure that the version of !Printers on the client machines also has "Share" support -- check it as you did for the server.
Now, open the printer control window on the client machine -- you should see that it has already located all available network printers for you. Printers shared from other machines have a "Connection" type of "Remote". Select the one you wish to use, and set it as "Active". Some network traffic will happen (copying printer details across the network) and then you should see the printer appear, active, on the icon bar. You're now ready to print as usual. You can doublecheck that all's gone well by checking *FWShow on the client machine:
No remote nets Type 2: (Printers) Name=DeskJet Holder=192.168.1.3 Type 5: (Hosts) *Name=bear Holder=192.168.1.2 Name=cheetah Holder=192.168.1.3 Type 1: (Discs) *Name=Bear Holder=192.168.1.2 Name=Cheetah Holder=192.168.1.3 Name=_S301a8c0 Holder=192.168.1.3
If things don't go well, you may find that an error such as "Corrupt or incompatible printer definiton file" appears. This means that the machine that has the printer is using a newer version of !Printers than the client machine. Upgrade !Printers on the client. There's simply so many different variants of !Printers hanging around, then I strongly recommend that you use exactly the same version of !Printers on all your machines.
*Share RAM:$ RAM -protected
Now create a directory in the RAM disc, say "foo". Next, use ShareFS to connect to the "RAM" share that you just created, and open the filer window for that. Notice that the "foo" directory is not shown in the shared filer view. Now, change the access permissions on "foo" to be "Public", using the filer. After a few seconds, ShareFS will propagate the change, and you should see "foo" appear in the Shared view. Acorn recommends that all disc shares should be set to -protected for safety -- then, only objects which you have specifically given "Public" access to will be visible via ShareFS. Note that newer "ADFSFiler" "SCSIFiler" and other such modules have a "Share" option on the iconbar menu, from which you can select "Share protected".
If you're even more concerned about privacy and security on your network, you can use the !Access+ application to share directories in a password-protected manner. There's only limited scope in how this works with the standard "ShareFSFiler" module, as Acorn restricted how it works, and it's a little odd and a tad flakey at best -- they call it the "Structured Sharing System". First, create three directories in the same directory as !Access+ : these must be called "Apps", "Boot", and "Dirs". Within the "Dirs" directory, create a directory for each user:
Ensure that "Public" access is set on "Apps" "Boot" and "Dirs". Next, create a text file containing a line for each user in the "Dirs" directory with the following format:
P ian ch33se U yvette sp00n
The first field, "P" or "U", signifies Protected or Unprotected share type. The second field is the user name which must match a directory in "Dirs". The last field is the password for that user. Drag this file on to the !Access+ iconbar icon.
Next, on the client machines, use the iconbar menu from ShareFSFiler, and open the "Access+ -> Logon ->" window. Enter the username and password of the user you wish to connect as (Note how we don't specify any server here... you're effectively "logging on to the network"). If you get an error such as "There is nothing available with that username at the moment" you've hit what, as far as I can see, is a weird bug in !Access+ ... you'll have to quit !Access+ on the server and start it again. If all works, you should be presented with a filer window "Resources:$.Logon.user" which contains a share file with the name of the server. If you have !Access+ running on multiple servers, with the same username/password set, you'll see multiple logon points. Double-click on a logon file, and the iconbar ShareFS icon will change to show user@Server. (eg "ian@Aardvark" in my example). Opening the share you've just mounted will display a filer window for that user ... the directory you created for that user in "Dirs". If you choose "Show Discs" from the ShareFS icon, you'll see "Apps@Server" along with any other global shares on your network. The Apps icon will also have a distinctive sprite - this is the "Apps" directory you created next to the !Access+ application -- place any applications in here that you wish the user to be able to run.
Yes, it's a bit of a faff, and can be a little flakey. Also, some variants of ShareFS don't appear to understand what to do with a "logon" file and throw an error when you double-click it, which isn't handy (actually, it's just the Alias$@RunType which is missing...).
If you have !Omni, then things work a little better, and you can use the !Access+ application to share individual directories password-protected. To connect to these, use the special "Access+" item in Omni's FS window.
If you really want this functionality, and are having trouble getting it to work, then feel free to drop me an email and I'll do what I can to help -- there's quite a few weird gotcha's. At the end of the day, remember that anyone who has physical access to the server machine can get to the data in any "Protected" directory anyway...
This page was written by Ian Jeffray and hosted on his website until 2002, it is now available here with permission