8 votes

Comment renommer osascript dans la boîte de dialogue des privilèges administrateur?

J'ai utilisé la commande.

/usr/bin/osascript -e 'do shell script "echo hello args 2>&1 etc" with administrator privileges'

Il demande le mot de passe en disant que osascript veut apporter des modifications. Ce que je veux savoir, c'est comment changer le mot osascript ?

14voto

belwood Points 797

J'ai trouvé une bien meilleure façon de faire cela, en fouillant dans la documentation Applescript sur le site des développeurs d'Apple. J'ai trouvé cette note de version pour Applescript dans MacOS 10.10

Il dit :

do shell script peut maintenant spécifier un message personnalisé à utiliser dans la boîte de dialogue du mot de passe. [15194980]

Cependant, il omet de dire comment vous pouvez faire cela. Après quelques suppositions, j'ai compris qu'il y a une clause prompt qui vous permet de remplacer osascript veut apporter des modifications... par ce que vous voulez lorsque vous utilisez do shell script... with administrator privileges dans un script invoqué par osascript. Par exemple :

osascript -e 'do shell script "ls -l" with prompt "The Great And Powerful OZ " with administrator privileges'

Génère une boîte de dialogue qui ressemble à : entrer la description de l'image ici

J'espère que cela aidera quelqu'un.

2voto

user3294264 Points 21

Les méthodes ci-dessus nécessitent toutes des privilèges d'administrateur au départ, mais si vous essayez de faire cela dans le cadre d'un script bash que vous souhaitez distribuer sans nécessiter de privilèges administratifs supplémentaires, vous pouvez faire quelque chose comme ce qui suit :

TMP=$(mktemp -d)
pushd "$TMP" > /dev/null 2>&1
/usr/bin/osacompile -e 'do shell script "echo hello args 2>&1 etc" with administrator privileges' -o 'My Cool Name.app'
'My Cool Name.app/Contents/MacOS/applet'
popd
rm -rf "$TMP"

Cela créera un répertoire temporaire, compilera le script en tant qu'applet, l'exécutera, puis supprimera le répertoire temporaire et l'applet.

0voto

klanomath Points 63400

En supposant qu'El Capitan ou Sierra est installé, commencez par désactiver SIP et redémarrez votre système principal.

Ouvrez le Terminal et saisissez :

sudo ln /usr/bin/osascript /usr/bin/butterfly

Réactivez SIP.

Maintenant, butterfly demandera des autorisations après avoir saisi

/usr/bin/butterfly -e 'do shell script "echo hello args 2>&1 etc" with administrator privileges'

Vous pouvez utiliser presque n'importe quel nom à la place de butterfly. Le nom ne doit pas être le nom d'un exécutable déjà existant sur votre Mac (surtout s'il ne doit pas déjà exister dans votre PATH).

Ainsi, ls ou diskutil sont à proscrire mais _necyria_bellona_ est acceptable.


Cela ne fonctionne pas pour les volumes APFS (High Sierra et versions ultérieures) car les liens physiques n'existent pas dans ce système de fichiers.

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