How do I tell sudo to write files with a umask of 0022?
Mac OS X 10.7 (Lion) finally has a version of sudo that supports umask_override. For the record, this works for me:
Defaults umask_override
Defaults umask=0022
I ended up adding the following to my .bashrc
configuration script:
# Mimic old behavior of `sudo` on OS X Snow Leopard
sudo() {
old=$(umask)
umask 0022
command sudo "$@"
umask $old
}
how about:
sudo22() {
local UMASK=`umask`;
umask 22;
sudo "$@";
umask $UMASK
}
With your .bashrc
if [[ $EUID -eq 0 ]]; then
umask 0022
else
umask 0077
fi
For the record: the current version of sudo as a new option 'umask_override', which should prevent the umask's from being merged, so you should be able to lower the umask, too. Sadly, Mac OS X 10.6.6 does not seem to sport this version of sudo ...