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