Nouveau MBP avec Sierra, / usr / local / bin n'est plus accessible que si root

0

Je viens de recevoir un nouveau MBP avec une nouvelle installation de macOS Sierra. J'ai installé Elm, qui met simplement 5 fichiers dans /usr/local/bin. Cependant, lorsque j'essaie d'exécuter l'un de ces fichiers, ils ne sont pas trouvés:

Scotts-MacBook-Pro:~ scott$ elm-make --version
-bash: elm-make: command not found

Je les cherche dans /usr/local/binet je n'ai pas la permission:

Scotts-MacBook-Pro:~ scott$ ls -lh /usr/local/bin
ls: bin: Permission denied

Je dois utiliser sudoet je vois qu'ils appartiennent tous à root:wheel:

Scotts-MacBook-Pro:~ scott$ sudo ls -lh /usr/local/bin
Password:
total 85536
-rwxr-xr-x  1 root  wheel   2.0M Nov 10 18:46 elm
-rwxr-xr-x  1 root  wheel    15M Nov 10 18:46 elm-make
-rwxr-xr-x  1 root  wheel    11M Nov 10 18:46 elm-package
-rwxr-xr-x  1 root  wheel   7.2M Nov 10 18:46 elm-reactor
-rwxr-xr-x  1 root  wheel   7.0M Nov 10 18:46 elm-repl

Je peux lister le contenu de /usr/localsans être root:

Scotts-MacBook-Pro:~ scott$ ls -lh /usr/local
total 0
drwx------  7 root  wheel   238B Nov 19 22:33 bin

Je viens de migrer d'un MacBook avec macOS Sierra également et /usr/local/binj'étais accessible à partir de mon compte d'utilisateur. Elm suppose que c'est le cas sur tous les Mac.

Pourquoi cela a-t-il changé? Que devrais-je faire? Sommes-nous pas censés utiliser /usr/local/bincomme ça plus? Devrais-je changer les permissions sur /usr/local/bin? Je suppose qu'il y a une raison qui /usr/local/bina été changée de cette façon ... Devrais-je déplacer les fichiers Elm /usr/bin?

at01
la source

Réponses:

2

Dans mon installation presque par défaut de macOS (10.12.0> mise à jour en 10.12.1), les répertoires possèdent les autorisations et les propriétaires suivants:

drwxr-xr-x   4 root  wheel  sunlnk            136 Oct  2 22:42 . #/usr/local
drwxr-xr-x@ 13 root  wheel  restricted,hidden 442 Oct  3 01:01 .. #/usr
    com.apple.FinderInfo     32 
    com.apple.rootless    0 
drwxr-xr-x  26 root  wheel  -                 884 Oct 17 03:36 bin
drwxr-xr-x   5 root  wheel  -                 170 Oct 17 03:35 share

Il n’existe aucune raison évidente pour laquelle les autorisations sont définies de manière aussi stricte - Apple indique explicitement que les applications et les programmes d’installation tiers peuvent continuer à écrire dans / usr / local. Si un utilisateur normal ne pouvait pas lire ou exécuter de fichiers là-bas, le répertoire manquerait son but.

Il suffit donc de changer les autorisations de / usr / local / bin (et / usr / local si nécessaire) en 755.

Klanomath
la source