On a VMware Telco Cloud Automation (TCA) node, the logrotate.service systemd unit fails to start and enters a failed state:
logrotate.service - Rotate log files
Loaded: loaded (/usr/lib/systemd/system/logrotate.service; static)
Active: failed (Result: exit-code)
TriggeredBy: logrotate.timer
Process: ExecStart=/usr/sbin/logrotate /etc/logrotate.conf (code=exited, status=1/FAILURE)Running logrotate --debug /etc/logrotate.conf outputs one or more of the following errors:
error: failed to open config file syslog: Permission denied
error: found error in file syslog, skipping
error: skipping "/var/log/vmware/capengine/core-engine.log" because parent directory has insecure permissions (It's world writable or writable by group which is not "root")
error: skipping "/var/log/vmware/capengine/workflow-manager-http.log" because parent directory has insecure permissions (It's world writable or writable by group which is not "root")
error: skipping "/var/log/vmware/messages" because parent directory has insecure permissions (It's world writable or writable by group which is not "root")
TCA 3.4
TCP 5.1.x
Deployment misconfigurations set permissions on /etc/logrotate.d/syslog to 600 instead of 644 (blocking logrotate read access) and set /var/log/vmware/ directory permissions to world-writable 0707 instead of 0755 (triggering logrotate security checks).
Perform the following steps on each affected TCA node as root:
Confirm the issue permissions:
ls -la /etc/logrotate.d/syslog stat /var/log/vmware | grep -E "File:|Access:"Expected broken state: 600 permissions on syslog and 0707 (drwx---rwx) on the vmware directory.
chmod 644 /etc/logrotate.d/syslog
stat /var/log/vmware
chmod 755 /var/log/vmware/ /var/log/vmware/capengine/ /var/log/vmware/agent/ /var/log/vmware/tca/
chmod 755 /logs/vmware/ /logs/vmware/capengine/ /logs/vmware/agent/ /logs/vmware/tca/
cat > /etc/tmpfiles.d/vmware-logdir.conf << 'EOF'
d /var/log/vmware 0755 root root -
d /var/log/vmware/capengine 0755 root root -
d /var/log/vmware/agent 0755 root root -
d /var/log/vmware/tca 0755 root root -
EOF
systemd-tmpfiles --create /etc/tmpfiles.d/vmware-logdir.conf
cat > /etc/tmpfiles.d/vmware-logdir.conf << 'EOF'
d /logs/vmware 0755 root root -
d /logs/vmware/capengine 0755 root root -
d /logs/vmware/agent 0755 root root -
d /logs/vmware/tca 0755 root root -
EOF
systemd-tmpfiles --create /etc/tmpfiles.d/vmware-logdir.conf
Verify rule creation:
echo $?
stat /var/log/vmware/ | grep AccessExpected output: Exit code 0 and Access: (0755/drwxr-xr-x).
logrotate -v /etc/logrotate.conf 2>&1 | grep -iE "error|skipping"
systemctl restart logrotate && systemctl status logrotateRemaining skipping entries in logrotate -v output for non-existent files (such as /var/log/warn or /var/log/vmware/messages) are expected behavior if those optional services or targets are inactive on the node.