Ensure that /etc/cron.allow exists
Description
The file /etc/cron.allow
should exist and should be used instead
of /etc/cron.deny
.
Rationale
Access to crontab
should be restricted.
It is easier to manage an allow list than a deny list.
Therefore, /etc/cron.allow
needs to be created and used instead of /etc/cron.deny
.
Regardless of the existence of any of these files, the root administrative user is always allowed to setup a crontab.
Shell script
The following script can be run on the host to remediate the issue.
#!/bin/bash
# Remediation is applicable only in certain platforms
if [ ! -f /.dockerenv ] && [ ! -f /run/.containerenv ]; then
touch /etc/cron.allow
chown 0 /etc/cron.allow
chmod 0600 /etc/cron.allow
else
>&2 echo 'Remediation is not applicable, nothing was done'
fi
Ansible playbook
The following playbook can be run with Ansible to remediate the issue.
- name: Add empty /etc/cron.allow
file:
path: /etc/cron.allow
state: touch
owner: '0'
mode: '0600'
when: ansible_virtualization_type not in ["docker", "lxc", "openvz", "podman", "container"]
tags:
- CCE-86183-1
- disable_strategy
- file_cron_allow_exists
- low_complexity
- low_disruption
- medium_severity
- no_reboot_needed