I just installed munin and ran "emerge --config net-analyzer/munin" afterwards, which installed a crontab for the user 'munin'. Unfortunately, the contained cronjob cannot run, because the shell of the user 'munin' is "bad" (/usr/sbin/nologin). I am running fcron v3. --8<-- 2006-11-26 17:30:00 +01:00; noc1; cron.notice; fcron[24189]: Job [ -x /usr/bin/munin-cron ] && /usr/bin/munin-cron started for user munin (pid 24190) 2006-11-26 17:30:00 +01:00; noc1; auth.crit; nologin: Attempted login by UNKNOWN on UNKNOWN 2006-11-26 17:30:02 +01:00; noc1; cron.warning; fcron[24189]: Job [ -x /usr/bin/munin-cron ] && /usr/bin/munin-cron terminated (exit status: 1) (mailing output) --8<-- After manually changing the shell to /bin/bash with "usermod -s /bin/bash munin", the nologin log message went away and munin-cron was being successfully run.
baselayout: somebody broke eutils.eclass! These are the invocations by munin: munin-1.3.2-r1.ebuild: enewuser munin 177 -1 /var/lib/munin munin munin-1.3.2-r2.ebuild: enewuser munin 177 -1 /var/lib/munin munin munin-1.3.2-r3.ebuild: enewuser munin 177 -1 /var/lib/munin munin munin-1.3.2.ebuild: enewuser munin 177 -1 /var/lib/munin munin Yet wschlich managed to get /usr/sbin/nologin on a Linux system, where it should have only turned up on *BSD/Darwin AFAIK.
wrong ... nologin is valid on any OS as you can `emerge nologin`
not a bug
if it's not an eutils.eclass bug (I share that opinion), then it's a munin package bug.
munin does not choose nologin. I pasted the enewuser lines from the munin package previously, and here they are again. It does NOT specifically choose nologin anywhere in the munin package. munin-1.3.2-r1.ebuild: enewuser munin 177 -1 /var/lib/munin munin munin-1.3.2-r2.ebuild: enewuser munin 177 -1 /var/lib/munin munin munin-1.3.2-r3.ebuild: enewuser munin 177 -1 /var/lib/munin munin munin-1.3.2.ebuild: enewuser munin 177 -1 /var/lib/munin munin The -1 indicates that enewuser should use the shell that blocks login - which is either nologin or false depending on your system. eutils/enewuser is broken because chose nologin on a system where nologin was not actually present. The only way I can see this happening, is if nologin was previous in /usr/sbin, but has now moved to /sbin. Vapier: has this happened?
how should i know ? base-system doesnt maintain the nologin package more likely the user had the "nologin" package installed and then when shadow started blocking it, they unmerged the package
It seems the problem is not clear to you :) nologin *is* present on my system. It prevents the munin-cron cronjob from being run (see the log lines I posted). Is this fcron specific (using values from /etc/passwd for the users shell), does it work (using /usr/sbin/nologin) with vixie-cron? A possible solution is to add 'SHELL=/bin/bash' to the crontab of the user 'munin'.
fixed in 1.3.3 in the tree.