Niedawno uaktualniłem do Snow Leopard. Zauważyłem, że niektóre pliki napisane przez MacPorts są instalowane z niewłaściwym pozwoleniem - są zapisywane z umaską 0077. Wydaje mi się, że zawęziłem problem:
port
Komenda jest wywoływana poprzezsudo
.- Mój
.bashrc
plik określa umask 0077. - W starszych wersjach OS X (10.5 i niższych) sudo używał umask użytkownika root (który był 0022); jednak teraz używa mojego umask 0077.
Czy w ogóle można sudo
skorzystać ze starego zachowania? Teraz, to trochę denerwujące bo muszę użyć sudo
do uruchomienia prostych poleceń, takich jak port installed
, port outdated
itp
(Problem opisano bardziej szczegółowo w tym bilecie MacPorts .)
Edytować
Odkryłem umask
opcję sudo i /etc/sudoers
dodałem następujący wiersz:
Defaults umask=0022
Jednak nie działało to zgodnie z oczekiwaniami, ponieważ prawdziwym umask jest używane sudo
połączenie unii maski użytkownika z tą domyślną maską. Aby zastąpić zachowanie sudo
umask i użyć domyślnej wartości domyślnej (tj. Nie zjednoczenia użytkownika i domyślnej maski sudo), można dodać:
Defaults umask_override
Skończyło się na dodaniu do mojego
.bashrc
skryptu konfiguracji:źródło
Co powiesz na:
źródło
Z Twoim .bashrc
źródło
sudo
faktycznie nie (re) źródła.bashrc
, ale dziedziczy bieżące ustawienia od użytkownika, który wywołał sudo.Dla przypomnienia: aktualna wersja sudo jako nowa opcja „umask_override”, która powinna uniemożliwić scalenie umask, więc powinieneś być w stanie obniżyć umask. Niestety, Mac OS X 10.6.6 nie wydaje się mieć tej wersji sudo ...
źródło