Я недавно перешел на Snow Leopard. Я заметил, что некоторые файлы, написанные MacPorts, установлены с неправильным разрешением - они написаны с использованием маски umask 0077. Я думаю, что я сузил проблему:
- Команда
port
вызывается черезsudo
. - В моем
.bashrc
файле указан umask 0077. - В более старых версиях OS X (10.5 и ниже) sudo использовал umask пользователя root (0022); однако теперь он использует мой umask 0077.
Есть ли способ sudo
использовать старое поведение? Сейчас это немного раздражает, потому что мне приходится использовать sudo
простые команды, такие как port installed
, port outdated
и т. Д.
(Проблема описана более подробно в этом билете MacPorts .)
редактировать
Я обнаружил umask
опцию для sudo и /etc/sudoers
добавил следующую строку:
Defaults umask=0022
Однако это не сработало должным образом, потому что настоящая используемая маска sudo
- это объединение пользовательской маски с этой маской по умолчанию. Чтобы переопределить поведение sudo
umask и напрямую использовать значение по умолчанию (т. Е. Не объединение пользователя и маску sudo по умолчанию), можно добавить следующее:
Defaults umask_override
В итоге я добавил следующее в свой
.bashrc
конфигурационный скрипт:источник
как насчет:
источник
С вашим .bashrc
источник
sudo
самом деле не (повторно).bashrc
получает исходный код , а наследует текущие настройки от пользователя, который вызвал sudo.Для справки: текущая версия sudo как новая опция 'umask_override', которая должна препятствовать слиянию umask, так что вы также должны иметь возможность уменьшить umask. К сожалению, Mac OS X 10.6.6 не поддерживает эту версию sudo ...
источник