[DGD] Alternatives to the Kernel model of security...
Josh Dady
jpd at indecisive.com
Wed Jan 28 17:02:39 CET 2004
On Jan 28, 2004, at 6:04 AM, Noah Gibbs wrote:
>
> --- Josh Dady <jpd at indecisive.com> wrote:
>> One way to go about this would be to start with
>> maintaining abstract
>> meta-data about entries in the filesystem.
>
> The problem with this, from my point of view, is
> tracking. File permissions in Unix (and DOS, and to a
> lesser extent Mac) are pretty much like this. But the
> problem is that there are non-DGD methods of file
> manipulation that must still be allowed...
This problem is hardly unique to my solution, or even the original
problem, for that matter. Our FTP service, for example, needs to use
the MUD's user files, password hashes, and access the
file-permissions-store. While only the last of the three actually
talks to the MUD itself, this communication is still needed.
> Editing on the fly from a shell account is a non-optional feature IMHO.
If your requirements include editing from the shell account with the
only difference being that the MUD's "/" isn't the shell's "/", then
your only real options are to write a DGD extension to make use of the
filesystem's meta-data (I'm including file permissions here) or to
build a DGD WebDAV server and use an OS that can mount a WebDAV URL as
a regular disk.
My preferences are to only "edit live" like that on the game server
when some kind of emergency happens, so I would have different options.
Methods (off the top of my head) for associating meta-data with files
include:
- Store in-file, as discussed (either the permissions themselves, or
a unique ID)
- One Big Mapping[tm]
- One small mapping (_foo.c, .foo.c, etc.) per-file
- One per directory
- Encoding a tag into the file-name (foo.c#DECAFBAD)
- Encoding the properties themselves into the file-name
[long discussion of problems with editing from the shell]
From my perspective (as one of the game's administrators), a monstrous
proportion of my creators are using either a semi-modern version of
Windows, or a modern version of MacOSX, and either of these quite
happily speaks WebDAV (although the former requires corrective measures
in my Apache authentication module, due to username pollution), so you
can see which way I am leaning. The issue becomes whether it would be
easier to write a provider for Apache's DAV mechanics that chats with
the MUD or to just build an LPC WebDAV server and hope that if DGD
doesn't have enough kick to make that workable, that DGD/MP will. 8)
>> -- one layer would just add
>> properties (which admittedly could still be
>> stored in one colossal
>> mapping somewhere) that inherently follow the
>> file to which they're
>> attached around.
>
> This is the real weakness in the system. Do you
> need to add an entry to this mapping every time you
> add/edit a file?
First of all, I'm not saying I endorse the One Big Mapping[tm] model,
only that it could still be used, compared with the existing
permissions system that I inherited. That detail aside, I think the
strength (not the weakness) of the layered approach is that if you
choose to solve the abstract meta-data problem completely and correctly
first, then adding the permissions layer on top of it is quite a bit
more straight-forward.
--
Joshua P. Dady
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: text/enriched
Size: 3322 bytes
Desc: not available
URL: <https://mail.dworkin.nl/pipermail/dgd/attachments/20040128/bfd3b1f6/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 174 bytes
Desc: not available
URL: <https://mail.dworkin.nl/pipermail/dgd/attachments/20040128/bfd3b1f6/attachment.sig>
More information about the DGD
mailing list