[AFS3-std] Per-file ACLs - a few items for discussion
Matt W. Benjamin
matt@linuxbox.com
Fri, 26 Jun 2009 09:03:25 -0400 (EDT)
Hi Marc,
----- Original Message -----
From: "Marc Dionne" <marc.c.dionne@gmail.com>
> A. Inheritance only at file creation. Once a file is created, its ACL
> is completely independent from the parent directory - it is not affected
> by a subsequent StoreACL on the parent. This is the simplest model and
> is what is part of my current implementation.
And most resembles POSIX, as well. I think this is most attractive for reducing potential
cost of ACL enforcement.
> Note that DFS had the notion of separate default directory ACL and
> default file ACL attached to directories, and there is some provision
> for this in the OpenAFS "fs" code (-id, -if options). But the code does
> not look usable as-is, and this would be a much more complex direction
> to take, both code-wise and for users.
POSIX provides for a default ACL attached to directories in a similar way, IIRC.
I think it might be desirable to define conforming, even if it isn't implemented right away.
> 2. Hard links
> Now that an ACL can follow a file across directories, is there any
> reason that cross-directory hard links should not be allowed, with the
> restriction that the link and target be within the same volume? It
> would require an inheritance model like A. above where the file ACL is
> independent of the directory. This has not been implemented or tested
> yet, but it looks like a fairly simple change.
Sounds right to me; I'll probably get whopped...
> 3. FetchStatus permissions
> An assumption in the existing cache manager in OpenAFS is that
> FetchStatus on files is allowed if the directory was readable. If file
> ACLs are enforced in FetchStatus, this can result in inconsistent
> behaviour that depends on whether the status information for a file is
> already in cache or not. One solution is to be more permissive - the
> question is if it's acceptable to allow FetchStatus to succeed on the
> file server regardless of the file ACL, as long as the parent directory
> is readable by the requesting user.
I suspect that the relationship between stat information and user permissions is tricky
at best, and this solution doesn't seem to make anything worse than it already is.
> 5. "DFS" mode
> Testing has been done with current OpenAFS clients, and some mechanisms
> are proposed to ensure that they work correctly as-is. For instance,
> the VLF_DFSFILESET is set in the VLDB to work around some assumptions
> made by the current OpenAFS client code. Clients therefore treat the
> volume as a DFS fileset, and some DFS specific RPCs need to be
> implemented on the server side.
This is new to me. Can you elaborate on the RPCs?
> 6. Volume moves.
> There's some minor adjustment needed in the dump format - so far I'm
> using an optional ACL id tag and an optional ACL data tag with file
> vnodes. An ACL-aware server can generate old and new formats and
> determine the right one to use through capabilities - or could also get
> a hint from a command-line option that sets a dump flag.
> There is a potential loss of information (the file ACLs) if we move a
> volume from a new server with ACLs to an old one.
I think (hope) that's expected.
Thanks!
Marc
_______________________________________________
AFS3-standardization mailing list
AFS3-standardization@openafs.org
http://michigan-openafs-lists.central.org/mailman/listinfo/afs3-standardization