3 votes

Définir les préférences de l'application OS X pour qu'elle ne demande plus le mot de passe de l'administrateur

J'essaie d'écrire un applescript qui envoie des actions à une application (spécifiquement waterroof). Le problème est que l'application me demande périodiquement le mot de passe administrateur lorsque j'ouvre le panneau de configuration qui m'intéresse. Cela fonctionne avec un délai, donc si j'ai déjà entré le mot de passe dans les x minutes précédentes, l'application ne me le demande pas. Comme je ne peux pas compter sur le fait qu'on me le demande, je ne peux pas envisager de faire une pause et d'entrer le mot de passe dans le cadre du script.

Y a-t-il un moyen de dire à l'application/OS que je veux rester connecté à l'application avec les privilèges d'administrateur, et qu'elle ne doit pas me le demander ? Je veux épuiser cette possibilité avant d'essayer de vérifier son existence, etc. dans le code.

0voto

Jeroen Wyseur Points 111

Pour autant que je sache, le délai d'attente pour l'autorisation dans OS X (s'il est respecté) est défini dans le fichier Base de données politique situé à l'adresse suivante etc/authorization généralement de manière programmatique. Cela ressemble à un fichier plist, et si un élément n'a pas de clé 'timeout', alors il n'a pas de timeout.

Je sais que la préférence est généralement définie dans le code à l'aide des API d'Apple (comme indiqué dans le document Apple's Guide de programmation des services d'autorisation et le fonction ).

Il s'agit d'un fichier protégé. Utilisez quelque chose comme sudo pico /private/etc/authorization pour la modifier.

L'entrée de ce fichier aura un titre utilisant une sorte de descripteur "com.company.application.right" ou quelque chose comme ça (par exemple, com.apple.itunes.copy, com.stackexchange.superuser.deleteuser) - qui est spécifique à chaque application, donc cherchez cela. (Il est classé par ordre alphabétique pour faciliter les choses, je crois).

enter image description here

S'il n'y a pas d'entrée de ce type, alors l'application récupère probablement l'autorisation d'une autre manière que je ne connais pas. Je viens d'essayer d'ajouter un timeout à une application que j'ai écrite - cela a fonctionné. Je l'ai ensuite supprimée à nouveau - et le délai a disparu. Cela devrait fonctionner dans votre cas, je suppose.

Vous mentionnez un panneau de configuration - s'il s'agit des préférences système, je ne sais pas non plus comment il fonctionne. Il n'y a aucun moyen de le faire avec Applescript.

Edit : S'il n'y a pas d'entrée de ce type

Une AUTRE façon pour une application d'autoriser est d'utiliser la méthode, désormais obsolète et peu sûre, suivante AuthorizationExecuteWithPrivileges . Je suppose que si une application n'a pas sa propre entrée dans la base de données des politiques, elle utilise la fonction AuthorizationExecuteWithPrivileges . Il se peut que l'application avec laquelle vous essayez de travailler l'utilise.

Il existe une entrée dans la base de données des politiques pour cette méthode particulière appelée system.privilege.admin mais notez que si vous modifiez ce paramètre et supprimez le délai d'attente, vous modifierez probablement le délai d'attente pour toutes les applications utilisant la fonction AuthorizationExecuteWithPrivileges et pas seulement celui que vous essayez de changer. Cela vaut peut-être la peine d'essayer.

enter image description here

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X