[lug] System configuration files

Paul E Condon pecondon at peakpeak.com
Tue Jul 29 14:54:03 MDT 2003

On Tue, Jul 29, 2003 at 02:04:23PM -0600, Jeff Schroeder wrote:
> Hey all!
> I've rolled my own Linux distribution, basically by compiling all the 
> software packages I need from their source code, and as I continue 
> developing this distro I find myself running into problems with system 
> configuration files.
> For example, if you want to configure Apache you need to modify 
> httpd.conf, which is usually in /var/httpd/conf (or maybe 
> /usr/local/httpd/conf, or even /opt/apache/conf).  MySQL's main 
> configuration file is usually in /usr/local/var/my.cnf.  An FTP server 
> relies on /etc/ftpaccess.  And so on, and so on.
> I'd like to bring all these configuration files into one place, where 
> they can be easily managed by simply going into a subdirectory with the 
> application name and editing the appropriate files.  Obviously one 
> would still need some understanding of the file formats and so on, but 
> it would certainly save one from needing to know the disparate 
> locations of all these files.
> My initial thought was to place everything in /etc/conf/<package>, but 
> in reading the Filesystem Hierarchy Standard-- which applies to Unix 
> and Linux systems-- it seems a more logical choice would be somewhere 
> in /var.  However, there's no indication (at least in the FHS) of this 
> sort of idea, so I thought I'd toss it to the collective brainpower of 
> the LUG.
> My idea, then, is to build a directory structure where software 
> configuration files are in /var/conf/<package>, thus:
> /var/conf/apache
> /var/conf/mysql
> /var/conf/wu-ftpd
> Et cetera.  Within those directories would be all the configuration 
> files; note this does NOT include log files, PID/lock files, and other 
> runtime-generated data... ONLY the configuration.  More than likely 
> these directories would only be accessible to the super-user.  If a 
> particular program expects its configuration file in a certain place, 
> there would simply be a symlink back to the /var/conf area.
> As an important side note, moving all configuration files to one place 
> would allow the /usr (and possibly root) partition to be read-only, 
> which is often considered a Good Thing.  In fact, one could imagine a 
> system where only /home and /var are writeable at all.  Moreover, 
> backing up the entire system's configuration would involve dumping a 
> single directory-- making it trivial to replicate systems or take 
> measures to avoid catastrophe.
> What do you guys think?  Are there any "mainstream" Linux distros out 
> there which utilize something like this?  Am I breaking any religious 
> rules by (apparently) defining my own filesystem structure?  Is there a 
> Better Way?

Debian has a policy on how files on disk should be organized. There is
a document that describes the policy and offers a lot of reasoning as 
to why various ways of doing things are good or bad. Nothing religious;
very well reasoned. Your idea of a sub-folder for each application is
part of the policy. Your use of /var rather than /etc is not part of
Debian policy. As you have discovered, when you try to extend your 
reach, you need to have a policy for how you organize things. The Debian
policy has had a lot of thought put into it. You should at least read it,
and understand why you need something different.


Paul E Condon           
pecondon at peakpeak.com    

More information about the LUG mailing list