[2016-12-17 11:15] Antoine Beaupré <anar...@debian.org>
>
> part       text/plain                5082
> Adding the base-passwd maintainers to the conversation. TL;DR: this is
> about the new dh-sysuser wrapper to more easily create system users in
> package maintainer scripts. I want to see how we can make piuparts happy
> and cleanup properly after ourselves (by removing the user on purge) and
> that may involve a registry of UIDs which seems to be maintained in
> base-passwd now.

Why go all this trouble to just purge system user? While I do appreciate
this nit-picking spirit, it is aganist spirit of Debian.

After all, leftover system user is just one extra line in /etc/passwd
and one more wasted UID, but we have ~32k of them.

Also, your proposals require significant complications in dh-sysuser
code, which is aganinst my spirit. Practicality beats purity.

> On 2016-12-16 23:08:31, Dmitry Bogatov wrote:
> > control: tag -1 +moreinfo
> >
> > [2016-12-15 09:07] Antoine Beaupré <anar...@debian.org>
> >>
> >> part       text/plain                1199
> >> Package: dh-sysuser
> >> Version: 1.3
> >> Severity: wishlist
> >>
> >> I think that, under certain circumstances, users should be completely
> >> removed along with their $HOME directory when the package is purged.
> >
> > See #840469 for discussion, why deleting $HOME is troublesome.
>
> That would be a great reference to add in the documentation. Something
> like:
>
> .SH LIMITATIONS
>
> dh-sysuser does not remove the user on package purge, for security
> reasons. See bug #840469 for more details.
>
> > If you
> > can propose principled solution -- it would be great. In short:
> >
> >  - postrm has access only to essential tools
>
> I reviewed the thread and that *is* a tricky situation. How about prerm?
> Can we be wild and remove on purge there?
>
> >  - What if there is something valuable is in $HOME? What if sysadmin
> >    made some obscure thing, link `ln -sf / $HOME'?
>
> In any case, don't follow symlinks.
>
> But the nastier attack scenario that was mentionned in #840469 is simply
> an admin mistakenly or mailiciously setting that user's home to /. The
> solution here could be to keep track of the *original* home directory so
> that changing the home directory shouldn't pose problems. I mentionned
> this in #848240 - having a way of knowing where the homedir will be
> created would be useful there.
>
> Shared UIDs are also a problem, but those can be checked before
> fairly easily.
>
> Could we simply make an exhaustive list of potential problems with
> rm -rf $HOME and address each one? Or is it an inherently impossible
> problem? What are admins supposed to do in this case? Review every file
> in $HOME before they rm -rf the directory? We should be able to automate
> whatever an admin is expected to do when the user is removed... and if
> we don't automate it, we should direct admins to do *something*...
>
> >  - What do to with files outside of of $HOME?
>
> Ignore, for now. One could seek and destroy all those files, but that
> would be too time-consuming. Disk quotas may be (ab)used to figure out
> if there are remaining files, when enabled, but that's another
> dependency we probably can't afford.
>
> So I would ignore that problem for now. The main issue would be stuff in
> /var, I believe, so one approach would be to restrict a possible search
> there. Another would be to have a set of known directories to cleanup on
> purge that would be specified in the sysuser configuration.
>
> >  - What about uid sharing? I install torrent client, purge it (files
> >    must stay, you know). Now I install webserver, and it owns my
> >    downloaded files. Wrong.
>
> Other operating systems have a static registry of UIDs. For example,
> FreeBSD ports, when they create users, have to ask for a UID allocation
> first, by patching two text files as part of their upload:
>
> https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/users-and-groups.html
>
> This is something we could consider implementing in dh-sysusr. We
> already have such a voluntary registry in base-passwd:
>
> https://sources.debian.net/src/base-passwd/3.5.42/README/
>
> ... on top of the builtin static set of users that are always present,
> obviously:
>
> https://sources.debian.net/src/base-passwd/3.5.42/passwd.master/
>
> Obviously, this would require cross-package coordination, something that
> is traditionnally more difficult in Debian than in more centralized
> distributions. But base-passwd seems to be making that effort already,
> so we could expand on that.
>
> Not purging the users only fixes part of this problem, by the way. Since
> UID allocation is currently order-dependent (e.g. depending on if the
> torrent client or webserver was installed first, in your example) you
> may still end up with different UIDs on different machines. While this
> may not seem to be a problem at first, consider ext-formatted USB drives
> that travel accross machines or networked filesystems like NFS: in those
> cases you still have the problem of conflicting UIDs.
>
> So a more complete solution to this problem is necessary, and I believe
> sysuser could be the answer for this.
>
> > For now dh-sysuser does not pretend to do something big.  You just
> > create user, optionally with home directory and run some server with
> > this user. Shell, password, ... are irrelevant.
>
> That's a great start! But I'm optimistic and hope we can fix more
> problems through the use of a standardized tool. :)
>
> > I am okay with making it one-stop solution, but I do not know how to
> > achive it.
>
> That's cool, let's talk! ;)

-- 
X-Web-Site: https://sinsekvu.github.io | Note that I process my email in batch,
Accept-Languages: eo,ru,en             | at most once every 24 hours. If matter
Accept: text/plain, text/x-diff        | is urgent, you have my phone number.

Attachment: pgpHCvuZF9xNv.pgp
Description: PGP signature

Reply via email to