/dev/zero should be world writable, but is not.
This is true of the Rawhide and Starbuck releases as well
as the 5.2 release, and presumably other releases.
The manpage for /dev/null and /dev/zero ("man null") say
that both devices should be world-writable, but only
/dev/null is. (/dev/zero is owner and group writable only).
Strangely, MAKEDEV seems to want to make both devices 0666,
but I haven't verified that it does so.
The problem shows itself with JDK1.2pre-v1:
JDK1.2 uses /dev/zero internally to throw stuff away, and
expects it to be world-writable; I imagine this may be
confusing some people who are trying to use it.
e.g. (on starbuck):
% setenv THREADS_FLAG green
% java -Djava.compiler= -version
devzero: Permission denied
I have verified this to be true in the test lab. It is being assigned
to a developer.
This was originally changed because someone voiced a security-related
concern. That concern (that /dev/zero does not erase the buffer
passed to it) is not a legitimate concern and while programs really
should use /dev/null to throw things away, I'll change the dev
package to make /dev/zero world writable in dev-2.6.4