1 votes

Arrêt "pas de tty présent et pas de programme askpass spécifié" ?

J'essaie d'exécuter un script d'arrêt script à distance sur plusieurs Macs. La commande que j'utilise pour le lancer via ssh est la suivante :

ssh ADMIN@mac123 'bash -s' sudo < ./documents/ShutdownUPTIME.sh

Bien sûr, il me demande un mot de passe sudo, que je tape correctement. Le seul message qui s'affiche ensuite est le suivant : sudo: no tty present and no askpass program specified

Une idée sur la façon de résoudre ce problème ? Mon utilisateur est bien un super-utilisateur

2voto

techraf Points 3610

Le message d'erreur apparaît lorsque vous essayez d'exécuter une commande à l'intérieur de votre appel bash avec sudo et, bien que l'utilisateur ADMIN sur le système de destination mac123 a le droit d'exécuter des commandes avec sudo , l'option NOPASSWD n'est pas spécifié pour cet utilisateur particulier (dans /etc/sudoers ).

Le système devrait inviter l'utilisateur et attendre que le mot de passe soit fourni par le clavier, mais comme aucun terminal n'est connecté, l'invite se bloquerait indéfiniment.

Pour éviter ce genre de situation, le système s'arrête avec le message d'erreur que vous avez obtenu.


Si vous preniez le temps de comprendre mon réponse d'hier :

à condition que l'ADMIN ait sans mot de passe autorisations sudo pour l'arrêt ou toutes les commandes sur la machine macxxx)

Vous ne rencontreriez pas ce problème.

Vous devez modifier votre script :

...
if [ $DAYS_UP -ge ${MAX_UPDAYS} ];then
    echo Mac is going to shutdown 
    sudo shutdown -h now
else
...

Et modifiez le fichier sudoers sur mac123 de sorte qu'il contienne, par exemple (il doit correspondre à la commande dans le script) :

ADMIN ALL=(ALL) NOPASSWD: /sbin/shutdown -h now

Gardez à l'esprit que vous doit le faire en utilisant visudo sinon vous risquez de casser complètement votre système.


Vous pouvez également utiliser SUDO_ASKPASS et la diriger vers un script fournissant le mot de passe (la deuxième partie du message d'erreur). Je ne recommande pas cette méthode.

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