discuss-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: GNUstep filesystem spec


From: Nicola Pero
Subject: Re: GNUstep filesystem spec
Date: Wed, 2 Oct 2002 13:01:48 +0100 (BST)

> I've added a documentation about the GNUstep filesystem layout, based on 
> some documentation written by the LinuxStep.org crew, on CVS at
> 
> make/Documentation/filesystem.texi
>

Thanks - I appreciate the document - it's good to have clear documents
explaining to new people where things are, what the philosophy is etc.

But at a first reading, I see quite a few major things which need fixing
in the document.  I've started reading about domains.

1.  The document *incorrectly* says that on unix systems a normal user
can/should be allowed to install stuff into the Local domain.

This is a huge security hole (because the Local domain is in the root
PATHs before the System one, so if any user puts a wicked libgnustep-base
library or defaults tool into the Local domain, whenever root runs
defaults or any gnustep-base stuff, it would be executing the wicked one
instead of the system one - basically it would be executing who knows
what, and installed by who knows who), and it should be clear instead that
users can only install stuff into the User domain, and that
System/Local/Network must only be modifiable by superusers.

It's criminal to say differently in the official documentation. :-)

2. Users can/must install their own applications and libraries in the User
domain (this is the *main* reason the User domain exists).  The GNUstep
defaults database need not be in the User domain.  A bit more explanation
about the modern configurable .GNUsteprc stuff wouldn't be bad too :-)

3. What is Network/Servers ?  I've never user the Network domain, but I
was assuming you would have a master machine where you install everything
you want to mount remotely in GNUSTEP_NETWORK_ROOT, then on all slave
machines in the network, you mount GNUSTEP_NETWORK_ROOT from the master
one.  That would work transparently and perfectly well.  You can also
compile for multiple architectures/os on the master machine, all slaves
will mount from the same dir, but each of them will use binaries for its
own architecture/os.

Instead, the documentation says that you would mount
MachineA:Network/Applications on /Network/Servers/MachineA on MachineB.  
Definitely mounting libraries or tools in this way will never work, it's
an unreasonably complex complication, and I doubt it would work for
applications as well (since they would be using libraries or resources or
stuff installed, and if it's buried inside a /Network/Servers/MachineA
directory, they will never be found).

Has any agreement been ever reached that we should be implementing this ?  
Else, we should remove it from the document, and replace it with a clear
explanation of how to use the network domain to setup a master/slave sort
of network architecture.

(please note that you can also remotely mount GNUSTEP_SYSTEM_ROOT and
GNUSTEP_LOCAL_ROOT, if you want; the idea of having a separate
GNUSTEP_NETWORK_ROOT is to allow you to have a main local gnustep
installation, with its own GNUSTEP_SYSTEM_ROOT and GNUSTEP_LOCAL_ROOT, and
to mount some more stuff shared from a master machine on a network).

I'm also puzzled by GNUSTEP_NETWORK_ROOT/Users ... Shall we remove that
one ?  If sysadmins want to mount users home directories from remote, they
can mount them wherever they want ... into /home maybe ?  I'd say they can
mount them wherever they want, and GNUstep has nothing to do with this
choice.

4. It should be mentioned that it is possible to collapse some of the
domains together ... typically GNUSTEP_SYSTEM_ROOT, GNUSTEP_NETWORK_ROOT
and GNUSTEP_LOCAL_ROOT can be collapsed together.  In some extreme cases
GNUSTEP_USER_ROOT might be collpased with the other ones too (very
advanced and dangerous setups).


Anyone has any comments on my comments/suggested changes :-), or can I
update the document on CVS with my comments/suggested changes ?





reply via email to

[Prev in Thread] Current Thread [Next in Thread]