1 votes

sudo et certaines autres commandes système ne fonctionnent pas avec platypus

Je suis en train de faire un shell script qui fonctionne très bien tout seul, mais qui ne fonctionne pas correctement lorsqu'il est emballé avec L'ornithorynque . Il ne veut pas exécuter sudo et quelques autres commandes système. Existe-t-il des solutions pour contourner ce problème ?

Note : C'est lorsque vous sélectionnez l'option "Exécuter avec des privilèges d'administrateur". Il s'agit également d'une question de type "répondez-y vous-même", car j'imagine que quelqu'un d'autre a également rencontré ce problème.

1voto

Arvind Sreekumar Points 26

Vous pouvez également utiliser l'osascript pour lancer l'application. Cela garantit un accès sudo.

osascript -e "do shell script \"/path2/shellscript.sh $*\" with administrator privileges"

Vous pouvez mettre ceci dans un autre shell script pour appeler votre script. Ou exécuter directement votre commande requise entre les guillemets.

C'est mieux car vous n'avez pas à vous fier au fait que /usr/bin/sudo a été exécuté récemment ou non.

0 votes

En fait, j'ai appris l'existence de cette commande il y a peu de temps, en créant une application. Merci d'avoir répondu.

0 votes

Tant mieux pour vous alors...

0voto

NickT Points 625

J'ai trouvé la cause du problème, il semble que Platypus ne reconnaisse pas certaines commandes système, même si elles sont dans son répertoire. $PATH . Afin d'utiliser ces commandes système, vous devez indiquer leur chemin absolu.

Ainsi, en sudo de l'affaire :

/usr/bin/sudo <commmand>

Ou, en cp de l'affaire :

/bin/cp <arguments>

2 votes

Est-ce que ça a vraiment marché ? La documentation de Platypus dit que vous ne pouvez pas utiliser sudo. "Les scripts de Platypus ne doivent pas utiliser la commande 'sudo'. Cela fait que le scripts demande une entrée via STDIN, et comme il n'y en a pas, l'application se bloque indéfiniment."

1 votes

Ce que j'ai découvert, c'est que sudo fonctionne UNIQUEMENT si l'utilisateur a récemment lancé une commande sudo en dehors de votre application, par exemple dans une fenêtre Terminal. Dans ce cas, la session sudo est toujours active, et sudo fonctionnera depuis Platypus.

0 votes

@Eugene Cela a fonctionné pour moi, mais c'est peut-être parce que j'ai peut-être exécuté sudo dans un terminal avant cela.

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