MTA unable to start due to wrong /dev/null permissions
MTA unable to start due to wrong /dev/null permissions
Problem
There are two symptoms that may indicate that:
1. Switch to a zimbra user results in the following output:
-bash: /dev/null: Permission denied -bash: /dev/null: Permission denied -bash: /dev/null: Permission denied -bash: /dev/null: Permission denied -bash: /dev/null: Permission denied -bash: /dev/null: Permission denied /opt/zimbra/libexec/get_plat_tag.sh: line 138: /dev/null: Permission denied /opt/zimbra/libexec/get_plat_tag.sh: line 143: /dev/null: Permission denied /opt/zimbra/libexec/get_plat_tag.sh: line 148: /dev/null: Permission denied /opt/zimbra/libexec/get_plat_tag.sh: line 153: /dev/null: Permission denied /opt/zimbra/libexec/get_plat_tag.sh: line 158: /dev/null: Permission denied /opt/zimbra/libexec/get_plat_tag.sh: line 163: /dev/null: Permission denied /opt/zimbra/libexec/get_plat_tag.sh: line 168: /dev/null: Permission denied /opt/zimbra/libexec/get_plat_tag.sh: line 173: /dev/null: Permission denied /opt/zimbra/libexec/get_plat_tag.sh: line 178: /dev/null: Permission denied /opt/zimbra/libexec/get_plat_tag.sh: line 220: dpkg: command not found /opt/zimbra/libexec/get_plat_tag.sh: line 226: /dev/null: Permission denied /opt/zimbra/libexec/get_plat_tag.sh: line 263: /dev/null: Permission denied Can't open perl script "/dev/null": Permission denied -bash: /dev/null: Permission denied /opt/zimbra/bin/zmswatchctl: line 45: /dev/null: Permission denied Starting swatch.../opt/zimbra/bin/zmswatchctl: line 69: cannot redirect standard input from /dev/null: Permission denied /opt/zimbra/bin/zmswatchctl: line 45: /dev/null: Permission denied failed.
2. The second symptom is that MTA will not start.
Cause
The problem might be caused by different things. One could be that the permissions are changed during boot time by a security software. Another cause might be that udev is missing a rule, or the rule granting rights to the /dev/null file is changed due to an upgrade of udev to systed-tools.
Troubleshooting
Potentially we can check what changed
Resolution
The first one is more obvious
set in a udev rule
$ grep null /lib/udev/rules.d/* /lib/udev/rules.d/50-udev-default.rules:KERNEL=="null|zero|full|random|urandom", MODE="0666"
KERNEL=="null|zero|full|random|urandom", MODE="0666"
Since UDEV isn't correctly changing the permissions for the current /dev/null, it might be possible to try re-creating /dev/null using the mknod command.
As root, delete the currently existing /dev/null:
Raw
- rm /dev/null
Recreate it with the mknod command:
Raw
- mknod -m 0666 /dev/null c 1 3
The /dev/null file should now have with the correct permissions.
If the problem persists after a reboot, then follow the steps in the 'Diagnostic Steps' section of this article, in order to set up an audit watch which may help determine whether /dev/null permissions are being changed after boot.