Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Terminal - éviter taper mot de passe

77 réponses
Avatar
romer
Hi,
Si le terminal est ouvert au moment d'éteindre l'iMac, il est rapide de
taper 'sd' - raccourci créé qui active la cmd <'sudo shutdown -h now'>)

Sudo est obligatoire - faut être super-user pour faire cela. Et donc le
mot de passe utilisateur est demandé.

Est-il possible d'introduire ce mot de passe dans la commande même (pour
éviter d'avoir Í  le taper et le faire de plus sans la moindre erreur de
frappe, etc. ?
--
A+
Romer

10 réponses

Avatar
romer
M.V. wrote:
Dans l'alias qui lance l'extinction du Mac ou dans d'autres alias ?

Ben bien sͻr, avec celui qui provoque l'extinction comme je l'ai dit
précédemment :
De quel alias pouvais-je parler si ce n'est de celui-lÍ  ?

Je fais la distinction car certains de mes alias fonctionnent bien en
dépit de la présence de l'antislash d'échappement.
Donc ce qui est incompréhensible est que l'alias :
alias ej='osascript -e "tell application "Finder" to eject (every disk
whose ejectable is true)"'
fonctionne bien et que l'alias :
alias sd='osascript -e 'tell app "Finder" to shut down''
fonctionne mais que le redémarrage qui suit est fortement compromis.
Et cela vérifié plusieurs fois.
--
A+
Romer
Avatar
romer
M.V. wrote:
Il y a quand même un peu de mauvaise foi dans tes propos (je trouve).
Dire que la ligne (parfaitement éloquente Í  mon sens) :
tell application "Finder" to shut down
est pesante quand
sudo shutdown -h now
ne le serait pas donc, me laisse dubitatif Pourquoi pas shutdown tout
seul ? Pourquoi ce -h ? Pourquoi préciser now alors que la demande est
d'éteindre le Mac et pas de l'éteindre dans 10 ans ? Et pourquoi
demander le mot de passe pour une action aussi anodine ?

'Now' l'éteint immédiatement. On peut donner une temporalité dans
certains cas. Surtout Í  des serveurs éloignés pour donner un certain
temps Í  son exécution et que le système fasse des ajustements.
Pour le Mac, c'est sans doute inutile car il fait lui-même ses
ajustements de niveau de temporalité.
C'est fortement subjectif - le goͻt ne s'explique pas. Pourquoi certains
aiment Bach et Beethoven et pas Boulez, SchͶnberg ou l'inverse.
J'ai même une collègue qui trouvait Mozart mièvre (elle n'avait pas dÍ»
écouter 'Don Juan' !)
Il y a lÍ  une certaine forme de sectarisme Í  laquelle je ne peux
m'habituer (͠ mon avis bien sͻr).

Ce n'est pas cette commande de AS que je n'aime pas mais le langage dans
son intégralité. Trop de blabla - j'aime la concision et la pureté
formelle. Mais tout ceci est encore une fois subjectif.
NB La réciproque n'étant pas vrai : dans la grande majorité des scripts
AS que j'utilise il y a au moins une commande du Terminal… J'ai même un
script qui utilise 9 fois une commande shell et que Joseph-B connaͮt
bien (monter/démonter des volumes).

Pour monter ou démonter un volume, il n'est pas besoin de beaucoup de
choses :
diskutil mount "Sto_1
diskutil unmount "Sto_1
et avec un alias c'est transparent de simplicité.
De toute façon inutile de convaincre un sectaire* - c'est pas possible
:-)
* précision avant nouveau désaccord : le sectaire c'est moi, d'accord ?
tu vas t'imaginer que c'est toi.
--
A+
Romer
Avatar
pehache
Le 11/02/2021 Í  22:13, Bernd a écrit :
M.V. wrote:
Il y a quand même un peu de mauvaise foi dans tes propos (je trouve).
Dire que la ligne (parfaitement éloquente Í  mon sens) :
tell application "Finder" to shut down
est pesante quand
sudo shutdown -h now
ne le serait pas donc, me laisse dubitatif Pourquoi pas shutdown tout
seul ? Pourquoi ce -h ? Pourquoi préciser now alors que la demande est
d'éteindre le Mac et pas de l'éteindre dans 10 ans ? Et pourquoi
demander le mot de passe pour une action aussi anodine ?

'Now' l'éteint immédiatement. On peut donner une temporalité dans
certains cas. Surtout Í  des serveurs éloignés pour donner un certain
temps Í  son exécution et que le système fasse des ajustements.
Pour le Mac, c'est sans doute inutile car il fait lui-même ses
ajustements de niveau de temporalité.

La raison principale de donner une "temporalité" c'est sur les serveurs
multi-utilisateurs de donner le temps Í  chacun de fermer son travail en
cours avant l'arrêt de la machine. Chaque utilisateur connecté reçoit un
message du genre "System will shut down in xx minutes". On ne stoppe pas
un serveur comme ça sans prévenir.
Le sudo + mot de passe, c'est tout simplement qu'il serait inconcevable
sur un serveur multi-utilisateurs de donner Í  tout le monde la
possibilité d'éteindre la machine. C'est réservé par défaut aux
administrateurs (mais configurable si Apple l'avait voulu).
Avatar
M.V.
Le 11 février 2021 Í  22:13, Bernd a écrit ce qui suit :
alias sd='osascript -e 'tell app "Finder" to shut down''
fonctionne mais que le redémarrage qui suit est fortement compromis.

Ce n'est pas ça que j'avais testé. C'était :
alias sd="osascript -e 'tell app "Finder" to shut down'"
et je n'avais constaté aucune anomalie au redémarrage.
Je viens de tester ce que tu as écrit :
alias sd='osascript -e 'tell app "Finder" to shut down''
et ça ne fonctionne pas chez moi :
$ sd
4:4: syntax error: expression prévu(s) mais fin de script trouvé(s).
(-2741)
Ce sont bien 4 fois les mêmes ' ? Ça me paraÍ®t bizarre.
NB L'orthographe de la réponse du Terminal est assez comique.
--
Michel VAUQUOIS - <http://michelvauquois.fr>
Avatar
M.V.
Le 11 février 2021 Í  22:13, Bernd a écrit ce qui suit :
Pourquoi certains aiment Bach et Beethoven et pas Boulez, SchͶnberg ou
l'inverse.

Il y en a même qui aiment les uns et les autres et qui plus est aime
aussi Chilly Gonzales et Michel Portal !
NB La réciproque n'étant pas vrai : dans la grande majorité des scripts
AS que j'utilise il y a au moins une commande du Terminal… J'ai même un
script qui utilise 9 fois une commande shell et que Joseph-B connaͮt
bien (monter/démonter des volumes).

Pour monter ou démonter un volume, il n'est pas besoin de beaucoup de
choses :
diskutil mount "Sto_1
diskutil unmount "Sto_1

Oui mais le script en question est un peu plus velu que ça.
Et quand j'ai une dizaine de volumes démontables et que je veux en
démonter 6, je ne me vois pas taper 6 fois la commande "diskutil umount"
surtout si un volume r͢le et qu'il faut ensuite faire un "diskutil
umount force" !
De toute façon inutile de convaincre un sectaire* - c'est pas possible

Je sais ! ;-)
--
Michel VAUQUOIS - <http://michelvauquois.fr>
Avatar
M.V.
Le 11 février 2021 Í  22:13, Bernd a écrit ce qui suit :
alias sd='osascript -e 'tell app "Finder" to shut down''
fonctionne mais que le redémarrage qui suit est fortement compromis.

Je viens de tester ces aliases sans aucun souci :
- mise en veille :
alias dodo="osascript -e 'tell app "Finder" to sleep'"
- extinction :
alias sd="osascript -e 'tell app "Finder" to shut down'"
- fermeture de session :
alias lo="osascript -e 'tell app "System Events" to keystroke "Q"
using {command down, option down, shift down}'"
- redémarrage :
alias restart="osascript -e 'tell app "Finder" to restart'"
Le seul truc qui me gêne est la réouverture systématique des applis
laissées ouvertes pour "sd" et "restart", réouverture que je ne sais pas
empêcher (sauf peut-être avec maj enfoncée Í  l'ouverture de session ? )
--
Michel VAUQUOIS - <http://michelvauquois.fr>
Avatar
M.V.
[Supersedes: <s05i6p$s4$]
Je complète :
Le 11 février 2021 Í  22:13, Bernd a écrit ce qui suit :
alias sd='osascript -e 'tell app "Finder" to shut down''
fonctionne mais que le redémarrage qui suit est fortement compromis.

Je viens de tester ces aliases sans aucun souci :
- mise en veille :
alias dodo="osascript -e 'tell app "Finder" to sleep'"
- extinction :
alias sd="osascript -e 'tell app "Finder" to shut down'"
- fermeture de session :
alias lo="osascript -e 'tell app "System Events" to keystroke "Q"
using {command down, option down, shift down}'"
- redémarrage :
alias restart="osascript -e 'tell app "Finder" to restart'"
Le seul truc qui me gêne est la réouverture systématique des applis
laissées ouvertes pour "sd" et "restart", réouverture que je ne sais pas
empêcher (sauf peut-être avec maj enfoncée Í  l'ouverture de session ? )
AJOUT :
Curieusement, la réouverture de session après "lo" ne provoque pas ce
petit souci.
--
Michel VAUQUOIS - <http://michelvauquois.fr>
Avatar
romer
M.V. wrote:
alias sd='osascript -e 'tell app "Finder" to shut down''
fonctionne mais que le redémarrage qui suit est fortement compromis.

Ce n'est pas ça que j'avais testé. C'était :
alias sd="osascript -e 'tell app "Finder" to shut down'"
et je n'avais constaté aucune anomalie au redémarrage.
Je viens de tester ce que tu as écrit :
alias sd='osascript -e 'tell app "Finder" to shut down''
et ça ne fonctionne pas chez moi :
$ sd
4:4: syntax error: expression prévu(s) mais fin de script trouvé(s).
(-2741)

Je viens de refaire les test avec :
alias sd="osascript -e 'tell app "Finder" to shut down'"
tel que tu l'écris en-tête de ce message.
Aucun dysfonctionnement au redémarrage !
Donc, il est possible qu'il y ait eu oubli d'un anti-slash quelque-part
hier qui a provoqué le pb.
Il a fallut activer la touche Option au redémarrage et choisir le DD
interne. Et dans ce cas ça marchait mais n'était pas viable au
quotidien.
Donc je conserve cet alias quoique ;
alias sd='sudo shutdown -h now'
marche aussi très bien et me convient mieux car ne comportant pas
d'alias plus ou moins sources de perturbations.
--
A+
Romer
Avatar
romer
Benoit wrote:
C'est toi qui crées une polémique lÍ  o͹ il n'y en a pas. Il n'a pas dit
qu'il refusait par principe d'écrire des AS, mais que quand il avait le
choix il préférait écrire des shell scripts.

Ce que je comprends tout Í  fait. Maintenant il y a eu une remarque au
sujet de la saisie de mot de passe via AS. Cela me donne envie de poser
une question : n'est-il pas possible de faire un script qui contient du
cryptage afin que le code de admin ne soit pas publique ?

C'est bien documenté sur le web mais assez complexe - enfin bien plus
qu'un petit applet d'une demi-ligne.
Je me demandais au début s'il était possible - comme dans tout langage -
de définir une variable, genre MdP='x' et de passer ensuite cette
variable dans la ligne de code qui éteint le Mac.
J'ai essayé mais il refuse : il demande sans cesse le code !
Quant Í  la question de la sécurité, elle est valide évidemment si on
cherche Í  éteindre le mac depuis l'extérieur. Mais de chez moi, en
interne, comment ce MdP pourrait-il être intercepté ? A moins que mon
Mac, le NAS, la Box soient sans cesse déjÍ  sous surveillance !
Pour la petite histoire, on peut éteindre son Mac depuis l'extérieur -
de Patagonie si on veut - en s'envoyant un mot inclu dans un mail - ce
mot (pas trop courant évidemment, sinon le moindre message le comportant
éteindrait le Mac) déclenche une action d'extinction.
Ça marche bien - je l'ai fait pour le fun.
Quand je pense qu'il fut un temps o͹ l'on pouvait rédiger ses scripts


en
français : Ça ! Ça m'a donné envie d'en écrire, et j'en ai écrit des
scripts.


Oui mais le français de par sa structure est plus 'verbeux' que
l'anglais. C'est une langue plus analytique que synthétique.
go down et go up par ex. utilisent des terment basiques qui sont
utilsables ailleurs - en français il faut 2 mots sans rapport de
signifiant (monter, descendre) et Í  apprendre par coeur.
Ces langages utilisent tout de même des termes compréhensibles dès la
3e, me semble t-il.
Put, get, while, sort, etc.
Plus des terme évidents (tirés sans doute du français ou du latin
d'ailleurs) - ignore, diskutil, resume, etc.
Et en plus pas d'accents en anglais qui viennent compliquer les choses,
ne serait-ce que les claviers !
Donc programmer en français ? Si au final ça plaÍ®t :-)
--
A+
Romer
Avatar
romer
M.V. wrote:
Il y en a même qui aiment les uns et les autres et qui plus est aime
aussi Chilly Gonzales et Michel Portal !

Sans doute, ils sont plus ou moins dans le même registre de 'culture'.
Aimer Boulez ou Bério et Sheila ou Zanini, j'ai tout de même un doute...
Pour monter ou démonter un volume, il n'est pas besoin de beaucoup de
choses :

diskutil mount "Sto_1
diskutil unmount "Sto_1

Oui mais le script en question est un peu plus velu que ça.
Et quand j'ai une dizaine de volumes démontables et que je veux en
démonter 6, je ne me vois pas taper 6 fois la commande "diskutil umount"

Tu ne tapes pas la phrase en faisant un alias.
surtout si un volume r͢le et qu'il faut ensuite faire un "diskutil
umount force" !

Il faut faire un petit script pour toute les combinaisons possibles ou
du moins les plus utilisées. Ca demande une heure grosso-modo mais ça
marche pour des années.
Je l'ai fait, ce n'est donc pas exceptionnel.
us1=unmount sto1
us2=unmount sto2
us12=us1;us2
etc.
C'est même amusant :-)
--
A+
Romer