Créer un raccourci de commande terminal

trilame

Membre confirmé
2 Septembre 2011
64
0
Bonjour !

J'utilise un logiciel sur mon Mac qui rencontre quelques problèmes depuis Mountain Lion. Le logiciel est "WBFS for MacOS X".
J'ai trouvé sur des forums une astuce pour le lancer, grâce à la commande "sudo" :
Bloc de code:
sudo "/Applications/WBFS for MacOS X.app/Contents/MacOS/WBFS for MacOS X"

Avec ça, ça fonctionne très bien.

Cependant, je cherche une solution pour pouvoir lancer le logiciel sans avoir à taper cette commande à chaque fois. L'idéal serait de créer un raccourci sous forme d'icône qui déclenche cette commande dans terminal.

J'espère avoir été suffisamment clair :)

Merci d'avance !
 
Clic-droit sur l'icone de l'application WBFS for MacOS X puis choisir "Afficher le contenu du paquet"
OUvrir ensuite le dossier Contents, puis le dossier MacOS et là vous devriez trouver WBFS for MacOS X (que lance la commande Terminal)

Créer un alias de cette application et le placer où vous voulez

En lançant cet alias, ça devrait marcher
 
Merci pour votre réponse très rapide !

J'ai appliqué votre solution mais ça ne fonctionne pas. Je pense que le problème vient du fait que quand je lance l'alias créé ou même le fichier dans le dossier MacOS, il n'est pas lancé avec la commande "sudo".
 
Si vous êtes dans une session utilisateur et que cet utilisateur a bien les droits administrateur, vous n'avez pas besoin de la commande sudo normalement...

Quel message d'erreur obtenez-vous?
 
Il n'y a pas de message d'erreur : dans les 2 cas, le logiciel se lance. La différence (conséquente) est la suivante : si je ne le fait pas avec la commande donnée dans mon premier post, le logiciel ne détecte pas la partition "WBFS" (partition sur mon disque dur externe pour la Wii, mais là n'est pas le problème).

J'ai bien les droits administrateurs (il n'y a qu'une seule session de configurée sur mon mac qui a donc forcément les droits administrateurs sauf erreur de ma part).

Merci pour votre aide.
 
Sinon je pense qu'il y a possibilité de faire un script avec Editeur AppleScript qui se trouve dans le dossier utilitaires dans Applications.
 
oui je ne vois que l'applescript par contre, je ne sais pas comment passer le mot de passe administrateur dans l'Applescript
 
Je ne sais pas le faire moi-même, mais on peut dans le script inclure un ligne qui dit que l'user qu'on a désigné peut utiliser sudo sans avoir à saisir son mot de passe.

Ca ressemble à ça :

# user johnl can run the specified command as sudo with no password
johnl ALL = (ALL) NOPASSWD: /home/johnl/Applications/bin/test

NB : je n'en sais pas plus ! :D
 
Merci pour votre aide !

Si quelqu'un réussit à compiler une telle commande, je lui en serais reconnaissant ;)
En attendant, je vais me contenter de lancer terminal et la commande à chaque fois.
 
Attention je précise bien que je suis novice dans ce domaine, je transmets seulement des infos.

Un script qui lance une application, voici un exemple :

tell application "Finder"
activate
open application file "QuickTime Player.app" of folder "Applications" of startup disk
end tell

Si tu colles ce script dans Editeur AppleScript, et fais "exécuter", tu verras que ça lance bien QuickTime.

Une question de novice, toujours : il n'y aurait pas moyen de modifier des "droits" sur l'application que tu veux lancer, pour qu'il n'y ait pas besoin de la commande "sudo" pour la lancer ?
 
dans Editeur Applescript, il faut faire quelque chose comme

do shell script ("sudo /Applications/WBFS for MacOS X.app/Contents/MacOS/WBFS for MacOS X") password "xxxx" with administrator privileges

en remplacant xxxx par ton mot de passe administrateur

Si ça marche, tu enregistres sous forme d'application
 
Dernière édition:
Je ne sais pas le faire moi-même, mais on peut dans le script inclure un ligne qui dit que l'user qu'on a désigné peut utiliser sudo sans avoir à saisir son mot de passe.

Ca ressemble à ça :

# user johnl can run the specified command as sudo with no password
johnl ALL = (ALL) NOPASSWD: /home/johnl/Applications/bin/test

NB : je n'en sais pas plus ! :D
En fait, il faut ajouter une ligne de ce genre dans le fichier de configuration de sudo, à savoir /etc/sudoers.

Ensuite l'heureux utilisateur pourra passer la commande exacte sans avoir à entrer un mot de passe (je me sers de ça pour mon compte principal qui n'est plus administrateur ;) ).
 
dans Editeur Applescript, il faut faire quelque chose comme

do shell script ("sudo /Applications/WBFS for MacOS X.app/Contents/MacOS/WBFS for MacOS X") password "xxxx" with administrator privileges

en remplacant xxxx par ton mot de passe administrateur

Si ça marche, tu enregistres sous forme d'application

Je viens d'essayer et j'obtiens ce message d'erreur :
Bloc de code:
error "sudo: /private/etc/sudoers is mode 0446, should be 0440
sudo: no valid sudoers sources found, quitting" number 1

Je pense donc voir un lien avec votre post bompi, mais je ne réussis pas à l'appliquer, je ne vois pas comment m'y prendre.
 
Pour éditer le fichier de paramétrage de sudo, le ieux reste d'utiliser la commande visudo mais il faut connaître l'éditeur vi.
Bloc de code:
sudo visudo
Si nano te convient mieux,
Bloc de code:
sudo nano /etc/sudoers
Admettons que ton compte a pour nom court alfred et que la commande à passer est
Bloc de code:
/Users/alfred/bin/monScript.sh
Il faut alors ajouter dans la configuration la ligne suivante :
Bloc de code:
alfred   ALL=NOPASSWD: /Users/alfred/bin/monScript.sh
Ensuite passer la commande suivante ne demandera pas le mot de passe administrateur :
Bloc de code:
sudo /Users/alfred/bin/monScript.sh
 
Merci pour cette explication très claire.

Je ne m'en sors pas par contre pour créer mon script.

Bloc de code:
do shell script ("sudo /Applications/WBFS for MacOS X.app/Contents/MacOS/WBFS for MacOS X") password "xxxx" with administrator privileges
ne fonctionne pas : "no such file or directory"
J'ai essayé avec plusieurs noms de fichiers mais j'ai échoué.

Si j'ai bien compris je dois :
- créer un applescript qui lance en sudo mon application (comme la commande de mon 1er post)
- modifier sudoers pour permettre à ce script de s'exécuter sans mot de passe administrateur

Pour l'instant le problème est donc à la première étape...
 
À mon avis, il serait plus simple de créer un script contenant la commande puis d'appeler ce script dans ton AppleScript.
Cela permettrait d'ailleurs d'appeler ce script directement depuis le Terminal.

Pour revenir à ton exemple, le problème vient sans doute des espaces dans le nom de la commande à exécuter.
 
Oui je pense aussi que c'est les espaces qui ne vont pas. Dans le terminal quand tu te balades dans des dossiers dont le nom comporte un espace il faut mettre \. Par exemple si tu mets Applications/WBFS for MacOS X.app je crois qu'il va chercher le dossier WBFS dans applications (et bien sûr il n'existe pas d'où le "no such file or directory") au lieu de WBFS for MacOS X.app
Dans ton exemple: WBFS for MacOS X, dans le terminal je mettrais WBFS\ for\ MacOS\ X
Après je sais pas si tu peux mettre \ dans l'éditeur applescript
Pour info: \ = alt+shift+/
 
En effet, c'était simplement ça... Il m'avait semblé l'avoir fait en renommant mais j'ai du me tromper.

Au final, ça fonctionne de la façon suivante : j'ai renommé WBFS for MacOS X.app en WBFS.app et WBFS for MacOS X en WBFS.

Ainsi, la commande devient
Bloc de code:
do shell script ("sudo /Applications/WBFS.app/Contents/MacOS/WBFS") password "motdepasse" with administrator privileges

En remplaçant évidemment motdepasse par le mot de passe administrateur.

Au final, pas besoin d'autorisations supplémentaire.

Pour ceux qui auraient aussi ce message d'erreur :
Bloc de code:
error "sudo: /private/etc/sudoers is mode 0446, should be 0440
sudo: no valid sudoers sources found, quitting" number 1
Il suffit en fait de faire une réparation des permissions du disque.

Merci à tous pour votre aide rapide et de qualité, j'ai appris pas mal de choses :)

Je viens de lire ton message Raph8 : j'ai essayé avec "\ " à la place des espaces mais j'obtiens "« " » prévu mais jeton inconnu trouvé."
 
Dernière édition: