Prior to Solaris 8, all daemons inherited the umask 0 from init.
In Solaris 8, the default was changed from 0 to 022, a saner
value. It is now settable in /etc/default/init (CMASK=value).
The old behaviour is most problematic for a service like ftp, which
in a standard configuration leaves all uploaded files with mode 666.
To get daemons to use another umask execute the following
commands in /bin/sh and reboot:
umask 022 # make sure umask.sh gets created with the proper mode
echo "umask 022" > /etc/init.d/umask.sh
for d in /etc/rc?.d
ln /etc/init.d/umask.sh $d/S00umask.sh
Note: the trailing ".sh" of the scriptname is important, if
you don't specify it, the script will will be executed in a
sub-shell, not in the main shell that executes all other scripts.
In Solaris 2.6 and later, in.ftpd(1M) allows setting its umask