diff options
author | Kevin Tian <kevin.tian@intel.com> | 2011-01-26 19:09:14 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-02-01 23:59:40 +0000 |
commit | ede0009e7c30e22b0c41a648ec082b1fad013000 (patch) | |
tree | 0684a1e9142d79ddbf7471b14188cd91d0b5496f /meta/recipes-extended/cronie | |
parent | d0bf83cc9b6cc34fd3cc7fe95fb3edd9a0e4c231 (diff) | |
download | poky-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/crontab | 10 | ||||
-rw-r--r-- | meta/recipes-extended/cronie/cronie_1.4.6.bb | 33 |
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 | |||
7 | SHELL=/bin/sh | ||
8 | PATH=/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 | ||
15 | SECTION = "utils" | 15 | SECTION = "utils" |
16 | 16 | ||
17 | PR = "r0" | 17 | PR = "r1" |
18 | 18 | ||
19 | SRC_URI = "https://fedorahosted.org/releases/c/r/cronie/cronie-${PV}.tar.gz \ | 19 | SRC_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 | ||
22 | SRC_URI[md5sum] = "968e3d3e7c8e1d0588d533883482d3fa" | 23 | SRC_URI[md5sum] = "968e3d3e7c8e1d0588d533883482d3fa" |
23 | SRC_URI[sha256sum] = "4435484c28a4452ee37db27182675660cdebf16d8956771b28c8a6f2e9c8048b" | 24 | SRC_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 | |||
47 | pkg_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 | } |