Hi Josch,

thank you, you sent me precisely the arguments I wished to read before
asking maintainers of base-passwd to make the next move. The benefits of
reproducible system builds is worth a change!

Best regards,                   Georges.

Johannes Schauer Marin Rodrigues a écrit :
> Hi Georges,
> 
> Quoting Georges Khaznadar (2022-06-10 17:58:36)
> > as I am new to this kind of reasoning, please enlighten me.
> > 
> > So far, the package base-passwd is maintaining standard ids for:
> >  root, daemon, bin, sys, sync, games, man, lp, mail, news, uucp, proxy,
> >  majordom, postgres, www-data, backup, operator, list, irc, gnats,
> >  nobody, nogroup, messagebus, postfix, gdm, saned, klog, syslog, adm,
> >  tty, disk, kmem, dialout, dip, fax, voice, cdrom, floppy, tape, sudo,
> >  audio, src, shadow, utmp, video, plugdev, staff, users, lpadmin, sasl,
> >  scanner, ssh, sshd, fetchmail, cupsys
> > 
> > The group id 101 for crontab used to be assessed as a consequence of 
> > pseudo-aleatory processes which happen at boot time, so far in the same
> > order for most use cases.
> 
> at boot time? That's odd. Isn't the user created as part of a maintainer
> script?
> 
> > Is there a rationale to reserve a global static id for crontab?  Is the 
> > value
> > 101 precisely important for the the crontab group?
> 
> The rationale would be uniformity and reproducibility. If the crontab group 
> was
> statically allocated to id X, then it would not matter which tool was used to
> create a chroot nor would it matter in which order apt decided to install
> packages. Reproducibly creating the bit-by-bit identical output might seem 
> like
> a weak argument to some, but knowing that some bits are always the same and 
> are
> not randomly different makes things like tracking down bugs and regressions
> much easier and helps to make sure that the chroot I'm building is exactly 
> what
> I expect it to be. This again is also a security argument: distributions like
> tails or distributors of system images will want to give the user the tools to
> rebuild their stuff and let them see that the stuff the user builds is the 
> same
> stuff that they distribute -- this makes it harder for malicious third parties
> to temper with system images as there can always be third parties that verify
> that nothing was tempered with.
> 
> > Here are some parts of the filesystem where the group crontab is in use:
> > 
> > --------------------8<-------------------------------------------------
> > $ sudo find /var -group crontab | sudo  xargs ls -ld
> > drwx-wx--T 2 root     crontab 4096  2 juin  18:33 /var/spool/cron/crontabs
> > -rw------- 1 georgesk crontab 1199 27 avril 14:37 
> > /var/spool/cron/crontabs/georgesk
> > -rw------- 1 root     crontab 1292  3 mars  17:31 
> > /var/spool/cron/crontabs/root
> > --------------------8<-------------------------------------------------
> > 
> > With the standard settings, members of the crontab group can neither
> > read nor write to individual crontabs.
> 
> Then maybe I misunderstood something. /usr/bin/crontab has the suid bit set 
> for
> the group permissions and is owned by the crontab group:
> 
> $ ls -ld /usr/bin/crontab
> -rwxr-sr-x 1 root crontab 43568 Feb 22  2021 /usr/bin/crontab
> 
> Does this not mean that members of the crontab group can run the crontab 
> binary
> and thus gain the privileges necessary to edit their crontabs?
> 
> > As a consequence, the arguments to add crontab to the list of reservations
> > are rather weak; should the group crontab be considered as more "special"
> > than the group systemd-journal? Should the group systemd-journal deserve 
> > also
> > a reserved global gid?
> 
> Excellent question! So in general, it would be great if there was a 
> declarative
> way to allocate user and group ids at installation time, so that different
> installation ordering by apt would not lead to different user and group ids.
> Alas, we do not have such a mechanism and talking with developers of apt and
> dpkg revealed no easy way to create it. If it existed, then yes, I would also
> advocate for systemd using it just as apt and cron should to create their 
> users
> and groups. In that sense, no, I do not consider crontab to be of a different
> importance compared to systemd. But we do not have such a mechanism and thus
> I'm looking at the next best way to achieve reproducible uids and gids. That
> mechanism is statically allocating a group-id by base-passwd. Why do I 
> approach
> you and not systemd? Two reasons:
> 
>  - cron was first released in 1975, it is ancient old software and thus well
>    established, stable and enjoys wide usage on all platforms -- in contrast 
> to
>    systemd which is young
>  - I think because cron literally survived nearly half a century it is fair to
>    assume it will stay with us for quite a bit longer and adding it to the
>    special group of gids will not be unnatural -- I'm not asking to add a tool
>    that was written just last year
>  - if we have a static gid for cron, then it will not matter anymore that
>    systemd is not statically allocated in practice because it will just grab
>    the next free gids which at that point will be deterministic and not depend
>    on installation order
> 
> So yes, due to its age and prevalence I *do* consider cron to be more special
> than systemd. I don't know what our next init system will be and maybe we will
> stick around with systemd for a while but after 47 years of cron, I think 
> would
> not be strange to ask for special treatment.
> 
> Thanks!
> 
> cheers, josch



-- 
Georges KHAZNADAR et Jocelyne FOURNIER
22 rue des mouettes, 59240 Dunkerque France.
Téléphone +33 (0)3 28 29 17 70

Attachment: signature.asc
Description: PGP signature

Reply via email to