J'ai récemment mis à niveau vers Snow Leopard. J'ai remarqué que certains fichiers écrits par MacPorts sont installés avec la mauvaise autorisation - ils sont écrits avec un umask de 0077. Je pense que j'ai résolu le problème:
- La
port
commande est invoquée viasudo
. - Mon
.bashrc
fichier spécifie un umask de 0077. - Sur les anciennes versions d'OS X (10.5 et inférieures), sudo utilisait le umask de l' utilisateur root (qui était 0022); cependant, maintenant il utilise mon umask de 0077.
Existe-t-il de toute façon d' sudo
utiliser l'ancien comportement? En ce moment, il est un peu ennuyeux parce que je dois utiliser sudo
pour exécuter des commandes simples comme port installed
, port outdated
, etc.
(Le problème est décrit plus en détail dans ce ticket MacPorts .)
Éditer
J'ai découvert l' umask
option pour sudo et /etc/sudoers
j'ai ajouté la ligne suivante:
Defaults umask=0022
Cependant, cela n'a pas fonctionné comme souhaité, car le vrai umask utilisé par sudo
est l' union du masque utilisateur avec ce masque par défaut. Afin de remplacer le comportement de sudo
umask et d'utiliser directement la valeur par défaut (c'est-à-dire, pas l' union de l'utilisateur et le masque sudo par défaut), on peut ajouter ce qui suit:
Defaults umask_override
J'ai fini par ajouter ce qui suit à mon
.bashrc
script de configuration:la source
que diriez-vous:
la source
Avec votre .bashrc
la source
sudo
ne fait pas (re) source.bashrc
, mais hérite du paramètre actuel de l'utilisateur qui a appelé sudo.Pour mémoire: la version actuelle de sudo en tant que nouvelle option 'umask_override', qui devrait empêcher la fusion des umask, vous devriez donc être en mesure de baisser également le umask. Malheureusement, Mac OS X 10.6.6 ne semble pas arborer cette version de sudo ...
la source