summaryrefslogtreecommitdiffstats
path: root/meta/recipes-extended/cronie
diff options
context:
space:
mode:
authorKevin Tian <kevin.tian@intel.com>2011-01-26 19:09:14 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-02-01 23:59:40 +0000
commitede0009e7c30e22b0c41a648ec082b1fad013000 (patch)
tree0684a1e9142d79ddbf7471b14188cd91d0b5496f /meta/recipes-extended/cronie
parentd0bf83cc9b6cc34fd3cc7fe95fb3edd9a0e4c231 (diff)
downloadpoky-ede0009e7c30e22b0c41a648ec082b1fad013000.tar.gz
cronie: enable multi-user crontab usage and make cron environment complete
fix [BUGID #673] 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>
Diffstat (limited to 'meta/recipes-extended/cronie')
-rw-r--r--meta/recipes-extended/cronie/cronie/crontab10
-rw-r--r--meta/recipes-extended/cronie/cronie_1.4.6.bb33
2 files changed, 41 insertions, 2 deletions
diff --git a/meta/recipes-extended/cronie/cronie/crontab b/meta/recipes-extended/cronie/cronie/crontab
new file mode 100644
index 0000000000..cc9169eda9
--- /dev/null
+++ b/meta/recipes-extended/cronie/cronie/crontab
@@ -0,0 +1,10 @@
1# /etc/crontab: system-wide crontab
2# Unlike any other crontab you don't have to run the `crontab'
3# command to install the new version when you edit this file
4# and files in /etc/cron.d. These files also have username fields,
5# that none of the other crontabs do.
6
7SHELL=/bin/sh
8PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
9
10# 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 6b4c64e3b1..09714c7f74 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 \
14 14
15SECTION = "utils" 15SECTION = "utils"
16 16
17PR = "r0" 17PR = "r1"
18 18
19SRC_URI = "https://fedorahosted.org/releases/c/r/cronie/cronie-${PV}.tar.gz \ 19SRC_URI = "https://fedorahosted.org/releases/c/r/cronie/cronie-${PV}.tar.gz \
20 file://crond.init" 20 file://crond.init \
21 file://crontab"
21 22
22SRC_URI[md5sum] = "968e3d3e7c8e1d0588d533883482d3fa" 23SRC_URI[md5sum] = "968e3d3e7c8e1d0588d533883482d3fa"
23SRC_URI[sha256sum] = "4435484c28a4452ee37db27182675660cdebf16d8956771b28c8a6f2e9c8048b" 24SRC_URI[sha256sum] = "4435484c28a4452ee37db27182675660cdebf16d8956771b28c8a6f2e9c8048b"
@@ -32,4 +33,32 @@ do_install_append () {
32 install -d ${D}${sysconfdir}/init.d/ 33 install -d ${D}${sysconfdir}/init.d/
33 install -m 0644 ${S}/crond.sysconfig ${D}${sysconfdir}/sysconfig/crond 34 install -m 0644 ${S}/crond.sysconfig ${D}${sysconfdir}/sysconfig/crond
34 install -m 0755 ${WORKDIR}/crond.init ${D}${sysconfdir}/init.d/crond 35 install -m 0755 ${WORKDIR}/crond.init ${D}${sysconfdir}/init.d/crond
36
37 # below are necessary for a complete cron environment
38 install -d ${D}${localstatedir}/spool/cron
39 install -m 0755 ${WORKDIR}/crontab ${D}${sysconfdir}/
40 mkdir -p ${D}${sysconfdir}/cron.d
41 mkdir -p ${D}${sysconfdir}/cron.hourly
42 mkdir -p ${D}${sysconfdir}/cron.daily
43 mkdir -p ${D}${sysconfdir}/cron.weekly
44 mkdir -p ${D}${sysconfdir}/cron.monthly
45}
46
47pkg_postinst_${PN} () {
48 if [ "x$D" != "x" ] ; then
49 exit 1
50 fi
51
52 # below setting is necessary to allow normal user using crontab
53
54 # add 'crontab' group and setgid for crontab binary
55 grep crontab /etc/group || addgroup crontab
56 chown root:crontab /usr/bin/crontab
57 chmod 2755 /usr/bin/crontab
58
59 # allow 'crontab' group write to /var/spool/cron
60 chown root:crontab /var/spool/cron
61 chmod 770 /var/spool/cron
62
63 chmod 600 /etc/crontab
35} 64}