Machine: sudo : aucun tty présent et aucun programme askpass spécifié

Créé le 29 juin 2016  ·  5Commentaires  ·  Source: docker/machine

J'utilise MacOSX Captain comme système d'exploitation hôte
J'ai créé un conteneur à partir d'Ubuntu Images
Le conteneur bash s'exécute avec l'utilisateur root par défaut

J'ai installé sudo via apt-get
alors j'avais créé un utilisateur non privilégié appelé test-user

je lance le bash avec test-user
docker exec -i -t -u test-user conteneur-id bash

quand j'essaye d'utiliser sudo apt-get install
J'obtiens cette erreur sudo : aucun tty présent et aucun programme askpass spécifié

J'essaie de le faire parce que j'ai lu que je ne devrais pas utiliser l'utilisateur root ou admin pour exécuter un programme car ce serait un problème de sécurité.

Commentaire le plus utile

J'ai le même problème. Pour certaines personnes qui vont dans /etc/sudoers (sudoers est un fichier) et qui ajoutent le nom d'utilisateur ALL=(ALL) NOPASSWD: ALL (ce qui fait que vous n'avez pas besoin du mot de passe) fonctionne, alors vous pouvez peut-être l'essayer, mais ça n'a pas fonctionné pour moi. Quelqu'un d'autre a-t-il de meilleures suggestions?

Tous les 5 commentaires

J'ai le même problème. Pour certaines personnes qui vont dans /etc/sudoers (sudoers est un fichier) et qui ajoutent le nom d'utilisateur ALL=(ALL) NOPASSWD: ALL (ce qui fait que vous n'avez pas besoin du mot de passe) fonctionne, alors vous pouvez peut-être l'essayer, mais ça n'a pas fonctionné pour moi. Quelqu'un d'autre a-t-il de meilleures suggestions?

Oui ça marche pour moi,
essayez de modifier le fichier à l'aide de la commande visudo et assurez-vous que vous avez entré le nom d'utilisateur correctement, mais je ne suis pas sûr que cette solution soit sécurisée, si vous oubliez de fermer le terminal, toute personne utilisant votre ordinateur portable utilisera la commande sudo sans mot de passe pour injecter n'importe quel programme.

J'essaie de trouver un moyen de saisir le mot de passe, mais cela ne fonctionne pas.

Cela a également fonctionné pour moi, utilisez votre nom d'utilisateur réel et non username

Même problème ici. Bien que j'aie des autorisations sudo sur la machine distante exécutant docker, il semble en quelque sorte mal de jouer avec la configuration sudoers distants pour créer une configuration locale docker-machine.

Problème similaire. Lors de la création pour aws, l'utilisateur ssh docker-machine par défaut est _ubuntu_. J'essaie de créer un autre utilisateur sudo (quelque chose de plus convivial comme _demouser_) ou de renommer l'utilisateur _ubuntu_ après avoir fini de créer la machine virtuelle distante.

Dans les deux cas, vous pouvez utiliser (ou scripter) des instructions similaires à celles de https://askubuntu.com/questions/34074/how-do-i-change-my-username. En un mot:

  • Ajouter un nouvel utilisateur sudo ou temporaire
  • Optionnel:

    • Connectez-vous en tant qu'utilisateur nouveau/temporaire et modifiez le nom/répertoire d'accueil de l'utilisateur _ubuntu_

Les deux étapes ont le même problème, le nouvel utilisateur ou l'utilisateur _changed_ "ubuntu" vous demande de spécifier un mot de passe pour que sudo fonctionne. Sauf si vous modifiez le fichier sudoers pour configurer l'option nopasswd. Il existe une sauce secrète avec l'utilisateur "ubuntu" (par défaut) d'origine qui permet un sudo sans mot de passe malgré l'absence de configuration supplémentaire dans sudoers.

Cette page vous a été utile?
0 / 5 - 0 notes