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

Re: Moving /home of a package account, and to where?



Marc Haber <mh+debian-mentors@zugschlus.de> writes:

> Hi,
>
> Debian QA decided recently that it is bad to have a system/package
> account created with its home directory in /home/package, as it is
> adduser --system's default btw. I am therefore faced with having to
> change /home to some non-/home place. Unfortunately, policy does not
> give any hint about how to do it right.
>
> Where do I put my user's home directory? In this case, the user's home
> directory contains a .ssh with known_hosts, authorized_keys and actual
> keys and it might additionally accumulate some regular dotfiles.
>
> (1)
> Which is the correct place for a user's home dir?
>
> /etc/<package> or /etc/<package>/home
>   - surprise for a seasoned admin
>   - might create QA bugs regarding "package does not properly clean up
>     after itself"
>   - might create dpkg-conffile hassle for files that are bound to
>     automatically change during operation, such as known_hosts

That would be not only confusing but also problematic since /etc is
(potentially) read-only. No automatically changing files allowed there.

> /var/lib/
>   - impossible to use ("users must never need to modify files in
>     /var/lib to configure a package's operation", FHS)
>
> /var/cache/ / /var/spool
>   - inapprorpiate via FHS

Iirc /var/cache might be cleared by the admin and what you talk about
certainly isn't spool material.

> /var/run
>   - inappropriate as /var/run is cleared during boot

As you say. :)

> So, /etc looks like the only feasible way for a package that needs
> configuration files in its users' home directory. Is that the case or
> am I missing things?

If you need configuration files (which the user is supposed to edit as
supposed to calling some config tool) in the users home directory and
also automatically changing files then I'm afraid you will need to use
both /etc and /var/lib and symlinks.

Maybe think about patching the source so that it reads a system wide
file as well as a users file. Then you can have the conffiles in /etc
(for debian packages) or in ~/ (for upstream or local installs). Just
like there is /etc/bash.bashrc and ~/.bashrc.

> For a package that has never been part of a Debian stable release, it
> is ok to just change the home directory in the maintainer script,
> causing existing installations (5, regarding to popcon) to still use
> the old, "inappropriate" location (with a NEWS.Debian suggesting a
> manual change), or do I _really_ need to prompt the user whether he
> wants his old data to be moved, forcing me to handle gazillions of
> translation and debconf-related bugs?
>
> Greetings
> Marc

MfG     Goswin


Reply to: