30 votes

Comment puis-je "Ouvrir une application d'un développeur non identifié" sans utiliser l'interface graphique ?

En gros, j'ai utilisé la méthode native Safari.app navigateur web pour télécharger une application tierce et je veux exécuter / open depuis le confort de mon bash coquille / Terminal.app CLI ; malgré le message d'erreur suivant :

“<unidentified_thirdparty.app>” can’t be opened because it is from an unidentified 
 developer. Your security preferences allow installation of only apps from the Mac 
 App Store and identified developers. Safari downloaded this file on <today's_date> 
 from <the.inter.net>.
                                          |[OK]|

70voto

user3439894 Points 52496

Vous devrez soit changer les paramètres sous Préférences du système > Sécurité et confidentialité > Général > Autoriser les applications téléchargées depuis : à N'importe où ou dans un Terminal , dépouillez le xattr com.apple.quarantine du ou des fichiers téléchargés.

xattr -dr com.apple.quarantine "unidentified_thirdparty.app"

0 votes

J'étais au courant de la méthode GUI. La partie suivante semble être la bonne. Que fait exactement le com.apple.quarantine (attribut) se réfère-t-il à l'argument ?

1 votes

@tjt263, Désolé, je n'ai pas vu votre commentaire jusqu'à maintenant... Tous les objets du système de fichiers ont des attributs, par exemple les informations que vous verrez dans la sortie de la commande ls -l file commande. Les objets du système de fichiers possèdent également des attributs étendus dont com.apple.quarantine est celui qui est attribué aux objets téléchargés depuis l'Internet par OS X pour aider à empêcher l'exécution arbitraire et donc un niveau de protection du système. Utilisation de ls -lR@ file o xattr lr file affichera des informations sur les attributs étendus ; le dernier fournira des informations plus complètes. Voir man xattr pour plus d'informations.

0 votes

Wow. C'est intéressant. Je ne le savais pas. Est-ce que d'autres systèmes d'exploitation ont quelque chose comme ça en place ?

0voto

Hery Points 1097

Entrez ceci dans le Terminal sous un compte administrateur : sudo spctl --master-disable

2 votes

Cela désactive complètement Gatekeeper. Et ce n'est pas une réponse à la question.

-1voto

transang Points 99

Pour le faire judicieusement en ligne de commande

  1. xattr -p com.apple.quarantine unidentified_thirdparty.app produit quelque chose comme 0081;5e7fec61;Chrome;6585C1D3-E260-4275-9E6E-505DF8D6B7EE
  2. Copiez la chaîne de sortie, remplacez les 4 premiers caractères par 00c1
  3. exécuter xattr -w com.apple.quarantine 00c1;5e7fec61;Chrome;6585C1D3-E260-4275-9E6E-505DF8D6B7EE unidentified_thirdparty.app

ou, combinez ces étapes en une seule commande :

xattr -w com.apple.quarantine "$(attr -p com.apple.quarantine unidentified_thirdparty.app | sed 's/^.\{4\}/00c1/' )" unidentified_thirdparty.app

Mon blogue sur ce sujet.

0 votes

Que signifie chacune des valeurs de l'attribut com.apple.quarantine ?

1 votes

@DanielSerodio merci pour la relecture. La valeur stocke les informations de l'agent de téléchargement (chrome, curl, wget, etc.) et les informations connexes. Le dernier id est utilisé pour rechercher l'entrée co-localisée dans ~/Library/Preferences/com.apple.LaunchServices.QuarantineEve‌​ntsV2 (format sqlite). Consultez cette réponse pour plus d'informations.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X