[fhs-discuss] Split home directory for each user into two parts

Randy Kramer rhkramer at gmail.com
Thu May 5 04:26:21 PDT 2011


I'm just going to state this without very much support at first.  I 
haven't looked in bugzilla to see if this is already there.

I think it would help lots of people (obviously, myself) if the ~ 
directory for each user was split into two parts.  (This could be done 
in a variety of ways, more below.)

The basic idea is to get rid of the hidden files.  One way or another, 
the hidden (often configuration) files  and the non-hidden files (often 
what I will call "real user data") files should be split into separate 
directories so that, for the most part, there is no longer a need to 
use hidden files.  (Still, hidden files may have uses--my objective 
isn't to get rid of hidden files per se, but to split the ~ directory.)

Where ever the hidden files end up, they should become non-hidden files.

There are various ways the directories could be named and split, 
including:

   * /home/<user>/data
   * /home/<user>/config

or 

   * /home/<user>
   * /<user>

or 

   * /home/<user>
   * /data/<user>

or 

   * /home/<user>
   * /config/<user>

etc.

With some of those options, the user data could be put in either of the 
two directories, with the config data in the other.  In other options, 
the names make it obvious where which type of data should go.

I have a soft spot for the second option, as that is what I do today 
(and for the last 9 years).

There are other relevant things that should be discussed:

   * discussion of a migration path, not so much for the files (maybe 
that too), but for programs that anticipate their data or configuration 
files being located (or put) in one place or another.  Perhaps soft 
links should be included in the standard to keep older programs working 
until they are modified

   * perhaps a third directory should be considered as well--although 
I've had this idea in the past, and would have preferred it, at the 
moment the other classification of files is slightly vague (I'm old, 
what can I say)--I'm thinking of programs that keep databases (or files 
of data) that aren't really the user directly accesses or would think 
of as "his", but data that the program uses for its purposes (which, 
obviously, is, in the end, for the user.  I think one distinguishing 
characteristic of this data is that it can be recreated from other 
data, thus it doesn't desperately need to be backed up.

Rationales:

   * make it easier for the user to backup (and restore, and manipulate) 
just the data he wants

   * re the above, on an upgrade or installation of a new distro, the 
user almost certainly wants to keep his "real user data", but may want 
to let the new system write new configuration data.  Hence, he would 
move his configuration data somewhere else so that he can selectively 
restore any that he might want to later.  (Without trying to figure out 
how to use commands selectively on hidden and non-hidden files.)

   * overall, although the intent is not to completely get rid of hidden 
files, the intent is to make the need to know about and know how to 
manipulate them much less important, which would be a benefit 
especially for new users

Consider this a first draft--I'm hoping that others will see the value 
of this, especially for newbies to Linux, and will help flesh out 
this "proposal" with additional details to be addressed, and better 
wording.

Randy Kramer






More information about the fhs-discuss mailing list