Question

J'utilise HomeBrew pour mes besoins de port (semble un peu plus « propre » que MacPorts).

Je peux installer sans sudoing (ce qui est génial), mais l'homme étape de liaison semble exiger (/usr/local/share/man/man3 appartient à root).
Un I Je suggère récursive Trouvées chown /usr/local en faisant

sudo chown -R `whoami` /usr/local

Est-ce sûr ... ou est-ce une mauvaise idée ™?

Aussi: sont mes autorisations correctes

$ pwd
/usr/local/share/man
$ ls -lah
total 32
drwxrwxr-x    8 root  staff   272B  4 Set 11:02 .
drwxrwxr-x    9 root  staff   306B 10 Set 11:27 ..
drwxr-xr-x    3 root  wheel   102B  4 Ago  2009 de
drwxrwxr-x  163 root  staff   5,4K 10 Set 11:27 man1
drwxr-xr-x   11 root  wheel   374B 10 Set 11:27 man3
drwxr-xr-x    7 ago   staff   238B 10 Set 11:39 man5
drwxr-xr-x   11 ago   staff   374B 10 Set 11:39 man7
-rw-r--r--    1 root  staff    13K  4 Set 11:02 whatis
Était-ce utile?

La solution

Il est généralement préférable de conserver les autorisations aussi strictes que possible. Garder /usr/local appartenant au moyen de root que les processus seulement Exécuter en tant root / sudo (ou demander utilisateur admin via la boîte de dialogue d'autorisation d'Apple) peut écrire dans ce domaine. Ainsi, un téléchargement de processus doit vous demander un mot de passe avant corrompant fichiers.

Mais comme vous le dites, il est plus difficile d'ajouter de nouveaux programmes.

Je suis OK avec sudo en cours d'exécution, que vous installez des choses moins souvent que de les exécuter, mais vous devez faire confiance que le processus de construction ne change rien qu'il devrait.

Si vous voulez éviter Sudo j'installer Homebrew dans ~/usr/local et modifier votre chemin, etc manpath pour inclure les sous-répertoires là.

Une meilleure façon est de créer un autre utilisateur-dire, homebrew et créer un répertoire appartenant à cet utilisateur. Ensuite, il installer à l'aide sudo -U homebrew. Les autres utilisateurs auront l'avantage de ne pas être en mesure d'écraser tous les autres fichiers, car ils ne sont pas en cours d'exécution comme root et d'autres programmes ne peuvent pas affecter homebrew. (Je note que le Homebrew FAQ ne suggère que ce nouvel utilisateur si vous êtes dans un « environnement multi-utilisateurs ». Je dirais que toute machine Unix, y compris macOS est un environnement multi-utilisateur)

Cependant, comme le wiki Homebrew dit que les recettes ne trouvent pas tous les cas de /usr/local et les remplacer par le répertoire choisi, je pense que nous sommes coincés avec /usr/local.

Autres conseils

J'utilise Homebrew aussi, et peut confirmer qu'il est tout à fait sûr. Citant la page Installation sur la Homebrew FAQ :

  

Rendez-vous service et choisissez /usr/local

     
      
  1. Il est plus facile   /usr/local/bin est déjà dans votre PATH.

  2.   
  3. Il est plus facile   Des tonnes de scripts de compilation briser si leurs dépendances ne sont pas dans / usr ou / usr / local. Nous fixons ce pour les formules Homebrew (bien que nous ne testons pas toujours), mais vous verrez que beaucoup RubyGems et les scripts de configuration Python pause qui est quelque chose hors de notre contrôle.

  4.   
  5. Il est sûr    Apple a conformez Posix et à gauche ce répertoire pour nous. Ce qui signifie qu'il n'y a pas de répertoire /usr/local par défaut, donc il n'y a pas besoin de se soucier de chambouler les outils existants.
  6.   
     

Si vous envisagez d'installer des pierres précieuses qui dépendent de brassins puis enregistrez-vous un tas de tracas et d'installer à /usr/local!

     

Il n'est pas trivial de dire bijou à regarder dans les répertoires non standard pour les en-têtes et dylibs. Si vous choisissez /usr/local, tout « fonctionne! »

Je vais juste ajouter que faire des choses en tant que root est une très mauvaise idée , donc chowning /usr/local non seulement me semble raisonnable (ce n'est pas un système dir sur Mac OS X), mais sain d'esprit .

Vos autorisations ne sont pas correctes (encore). Il suffit d'exécuter la commande que vous avez énuméré et tu vas bien.

Si vous avez d'autres problèmes se rappeler, le brew doctor peut vous aider!

Si vous utilisez Homebrew, vous devez donner l'autorisation d'écriture à un groupe spécifique (soit de admin ou staff), de sorte que les fichiers peuvent être partagés entre les utilisateurs qui sont dans ce groupe.

Par exemple:

sudo chgrp -R admin /usr/local /Library/Caches/Homebrew
sudo chmod -R g+w /usr/local /Library/Caches/Homebrew

Ensuite, attribuez les utilisateurs qui doivent avoir accès à la commande brew à ce groupe (vérifiez vos groupes via: id -Gn).

Ensuite, lorsque vous travaillez avec brew, ne fonctionne pas avec sudo.

ayant toujours une question d'autorisation, exécutez brew doctor pour résoudre le problème.

Pour ce que ça vaut, /usr/local est pas considéré comme un dossier « système » par OS X, et sur une toute nouvelle installation de ce dossier Snow Leopard est vide.

Toute substance racine appartenant dans ce dossier est le résultat de sudo make install sur d'autres logiciels, ou de donner votre mot de passe après un double-clic sur un .pkg qui veut jeter des choses dans /usr/local.

Possédant /usr/local a "travaillé pour moi" sur 2 machines pour plus d'un an.

Un Gotcha est que si vous avez installé MySQL (ne pas utiliser Homebrew) et Chown ses fichiers, il ne sera probablement pas en mesure de voir ses bases de données plus (vous auriez à les chown retour à tout ce que l'utilisateur MySQL est en cours d'exécution en tant que.)

Comme dans Homebrew 1.0.0:

  

Homebrew n'a plus besoin d'avoir la propriété de / usr / local. Si vous le souhaitez   vous pouvez retourner / usr / local à sa propriété par défaut avec: sudo chown   root: roue / usr / local

Je pense qu'il est OK pour les utilisateurs d'avoir autorisations d'écriture à /usr/local - après tout, cela signifie que vous n'êtes pas en utilisant sudo sur chaque script de compilation. Je ne aime pas l'idée d'un utilisateur ordinaire posséder /usr/local. Je préférerais avoir la racine (ou similaire) propre /usr/local, mais changer les permissions pour que les utilisateurs (ou au moins certains groupes privilégiés) peuvent écrire. Cela semble l'approche conceptuelle correcte.

Licencié sous: CC-BY-SA avec attribution
Non affilié à apple.stackexchange
scroll top