Filesystem Hierarchy Standard
is a proposed standard which has recently
been put forward for wider review. The problem this standard attempts to
address is: how do users of desktop Linux systems install software for
their personal use without using the root password or hosing the system?
The problem is real enough; as Linux shows up on more desktops, and more
interesting applications become available, people will want to be able to
do their own installations. Anything which can make those installations
easier and safer should encourage desktop Linux adoption. It is not clear
that this proposal will do the trick, however.
The UAFHS states that every user should have a directory (.system)
in their home directory for the installation of personal software. This
directory would have the usual subdirectories: .system/bin,
.system/lib, etc. The placement of software there would contain
it within one subtree and make it easy to find. The standard also suggests
the creation of a .config directory under the home directory and
moving all application configuration files there.
The next problem is that users of a shared system may want to install
software for others to use as well. To that end, the standard says that
/home/shared/.system should be available and writable for all
users. The authors seem to have anticipated one of the possible complaints
with this setup:
An additional concern regarding security is that all users will be
able to easily install programs. This is not a security flaw, and
is in fact a way to strengthen security. All users are already
capable of installing software, it is merely difficult.
The argument here seems to be that, since the root password will not be
required for software installation, the system will be more secure. The
simple fact, however, is that making it easy for unprivileged users to
install programs into the path of other users is not the best way to secure a
system. This sort of mechanism could easily become a favored way of
escalating access to a user account into a full root compromise.
This standard also fails to address the real issue. Unprivileged users who
want to install software are not much concerned about where it is going to
go. They will be far more interested in easy management of installed
software. Mixing packages together into one big directory tree does little
to help somebody who wants to get rid of things in response to the
inevitable "no space left on device" or "quota exceeded" message. This
standard says "put
software over there," but does not concern itself with how users will
actually manage that software.
Making software installation easier is a worthy goal. Part of achieving
that goal can even be the designation of a target directory for
installations. But anybody who wants to concern themselves with making
this aspect of desktop Linux easier really needs to be dealing with the
package management issue. Creating a version of rpm or dpkg which can do
per-user package management could be harder than writing up a proposed
standard, but it would do far more to address the issue at hand.
to post comments)