All of lore.kernel.org
 help / color / mirror / Atom feed
From: Saul Wold <saul.wold@intel.com>
To: "Tian, Kevin" <kevin.tian@intel.com>
Cc: poky@pokylinux.org
Subject: Re: [PATCH 2/5] cronie: enable multi-user crontab usage and make	cron environment complete
Date: Thu, 27 Jan 2011 10:00:17 -0800	[thread overview]
Message-ID: <4D41B2B1.2050206@intel.com> (raw)
In-Reply-To: <b7da2f$q8ksnl@fmsmga001.fm.intel.com>

On 01/27/2011 03:38 AM, poky-bounces@yoctoproject.org wrote:
> From: Kevin Tian<kevin.tian@intel.com>
>
> several cron related test cases in LTP reveals that our current cron recipe
> is not complete:
>
> a) a complete cron hierarchy better have:
>       /etc/crontab
>       /etc/cron.d
>       /etc/cron.hourly
>       /etc/cron.daily
>       /etc/cron.weekly
>       /etc/cron.monthly
>
> b) for a normal user to use crontab command:
>       add a new group - crontab
>       /usr/bin/crontab is setgid to root:crontab
>       /var/spool/cron is owned by root:crontab
>
> below are optional, and thus not included in the default setup:
>       /etc/cron.deny
>       /etc/cron.allow
>
> cronie by default only allows root user to use crontab, if neither cron.deny
> nor cron.allow exists. They are controlled by final policy deployed on the
> product.
>
> Signed-off-by: Kevin Tian<kevin.tian@intel.com>
> ---
>   meta/recipes-extended/cronie/cronie/crontab  |   10 ++++++++
>   meta/recipes-extended/cronie/cronie_1.4.6.bb |   33 ++++++++++++++++++++++++-
>   2 files changed, 41 insertions(+), 2 deletions(-)
>   create mode 100644 meta/recipes-extended/cronie/cronie/crontab
>
> diff --git a/meta/recipes-extended/cronie/cronie/crontab b/meta/recipes-extended/cronie/cronie/crontab
> new file mode 100644
> index 0000000..cc9169e
> --- /dev/null
> +++ b/meta/recipes-extended/cronie/cronie/crontab
> @@ -0,0 +1,10 @@
> +# /etc/crontab: system-wide crontab
> +# Unlike any other crontab you don't have to run the `crontab'
> +# command to install the new version when you edit this file
> +# and files in /etc/cron.d. These files also have username fields,
> +# that none of the other crontabs do.
> +
> +SHELL=/bin/sh
> +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
> +
> +# m h dom mon dow user	command
> diff --git a/meta/recipes-extended/cronie/cronie_1.4.6.bb b/meta/recipes-extended/cronie/cronie_1.4.6.bb
> index 6b4c64e..09714c7 100644
> --- a/meta/recipes-extended/cronie/cronie_1.4.6.bb
> +++ b/meta/recipes-extended/cronie/cronie_1.4.6.bb
> @@ -14,10 +14,11 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=963ea0772a2adbdcd607a9b2ec320c11 \
>
>   SECTION = "utils"
>
> -PR = "r0"
> +PR = "r1"
>
>   SRC_URI = "https://fedorahosted.org/releases/c/r/cronie/cronie-${PV}.tar.gz \
> -           file://crond.init"
> +           file://crond.init \
> +           file://crontab"
>
>   SRC_URI[md5sum] = "968e3d3e7c8e1d0588d533883482d3fa"
>   SRC_URI[sha256sum] = "4435484c28a4452ee37db27182675660cdebf16d8956771b28c8a6f2e9c8048b"
> @@ -32,4 +33,32 @@ do_install_append () {
>   	install -d ${D}${sysconfdir}/init.d/
>   	install -m 0644 ${S}/crond.sysconfig ${D}${sysconfdir}/sysconfig/crond
>   	install -m 0755 ${WORKDIR}/crond.init ${D}${sysconfdir}/init.d/crond
> +
> +	# below are necessary for a complete cron environment
> +	install -d ${D}${localstatedir}/spool/cron
> +	install -m 0755 ${WORKDIR}/crontab ${D}${sysconfdir}/
> +        mkdir -p ${D}${sysconfdir}/cron.d
> +	mkdir -p ${D}${sysconfdir}/cron.hourly
> +	mkdir -p ${D}${sysconfdir}/cron.daily
> +	mkdir -p ${D}${sysconfdir}/cron.weekly
> +	mkdir -p ${D}${sysconfdir}/cron.monthly
> +}
> +
> +pkg_postinst_${PN} () {
> +	if [ "x$D" != "x" ] ; then
> +		exit 1
> +	fi
> +
> +	# below setting is necessary to allow normal user using crontab
> +
> +	# add 'crontab' group and setgid for crontab binary
> +	grep crontab /etc/group || addgroup crontab
> +	chown root:crontab /usr/bin/crontab
> +	chmod 2755 /usr/bin/crontab
> +
> +	# allow 'crontab' group write to /var/spool/cron
> +	chown root:crontab /var/spool/cron
> +	chmod 770 /var/spool/cron
> +
> +	chmod 600 /etc/crontab
>   }
Kevin,

I am going to hold off pulling this and the at changes.

Is there a specific reason that you are creating this as a post install 
operation for the permission management, both this and the at recipes 
are doing this.  Please remember that adding additional items that run 
at first boot slow things down.

Is it possible to run these permission changes at actual install time, 
instead of on the target.

Thanks
   Sau!


       reply	other threads:[~2011-01-27 18:00 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <b7da2f$q8ksnl@fmsmga001.fm.intel.com>
2011-01-27 18:00 ` Saul Wold [this message]
2011-01-28  0:07   ` [PATCH 2/5] cronie: enable multi-user crontab usage and make cron environment complete Tian, Kevin
2011-01-28  0:34     ` Saul Wold
2011-01-28  1:16       ` Yu Ke
2011-01-28  1:18       ` Tian, Kevin
2011-02-01  0:31         ` Saul Wold
2011-02-01  1:03           ` Tian, Kevin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4D41B2B1.2050206@intel.com \
    --to=saul.wold@intel.com \
    --cc=kevin.tian@intel.com \
    --cc=poky@pokylinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.