WSL / bash-on-windows- sudo cassé après la mise à jour de la version


2

Je sais que je ne suis pas censé courir do-release-upgradedans le WSL, mais je l’ai quand même fait. La mise à jour elle-même s'est déroulée sans erreur, mais toute tentative d'exécution de sudo renvoie:

sudo: no tty present and no askpass program specified

La sortie en ls -l /devtant qu'utilisateur régulier:

ls: cannot access 'lxss': Operation not permitted
ls: random: Invalid argument
ls: tty: Invalid argument
ls: tty0: Invalid argument
total 0
drwxr-xr-x 2 root     root      0 Aug 15 19:27 block
lrwxrwxrwx 1 root     root     13 Aug 15 19:27 fd -> /proc/self/fd
crw------- 1 root     root   0, 0 Aug 15 19:32 kmsg
c????????? ? ?        ?         ?            ? lxss
crw-rw-rw- 1 root     root   1, 3 Dec 31  1969 null
crw-rw-rw- 0 root     tty    5, 2 Aug 15 19:28 ptmx
drwxr-xr-x 0 root     root      0 Aug 15 19:27 pts
crw-rw-rw- 1 root     root   1, 8 Aug 15 19:32 random
lrwxrwxrwx 1 root     root      8 Aug 15 19:27 shm -> /run/shm
lrwxrwxrwx 1 root     root     15 Aug 15 19:27 stderr -> /proc/self/fd/2
lrwxrwxrwx 1 root     root     15 Aug 15 19:27 stdin -> /proc/self/fd/0
lrwxrwxrwx 1 root     root     15 Aug 15 19:27 stdout -> /proc/self/fd/1
crw--w---- 0 me tty  136, 0 Dec 31  1969 tty
crw-rw-rw- 1 root     tty    4, 0 Aug 15  2016 tty0
crw------- 1 me tty    4, 1 Aug 15  2016 tty1
crw-rw-rw- 1 root     root   1, 9 Aug 15 19:32 urandom
crw-rw-rw- 1 root     root   0, 0 Aug 15 19:32 zero

L'exécution en tant que root (à l'aide de lxrun.exe / setdefaultuser) renvoie la même chose.

Je sais que je peux simplement réinstaller Ubuntu, mais je suis toujours curieux de savoir ce qui pourrait causer le problème et s’il existe une solution simple.

Oh, et dateretourne Mon Aug 15 19:45:49 DST 2016, comme il se doit.

Réponses:


2

Qu'est-ce qui pourrait aider comme alternative au téléchargement d'anciens paquets:

  • Connectez-vous en tant que racine, via lxrun /setdefaultuser rootou (si vous n'avez pas encore mis à niveau)sudo su
  • Définir un mot de passe pour l'utilisateur racine via passwd

Maintenant, vous pouvez toujours passer à la racine en utilisant simplement su rootet en entrant le mot de passe que vous avez défini, sans avoir à basculer l'utilisateur par défaut via lxrun.

Comme alternative, vous pouvez empêcher d'exiger sudo un mot de passe du tout, comme mentionné dans plusieurs réponses ici :

Pour empêcher sudo de demander un mot de passe, vous pouvez ajouter la ligne suivante à la fin de votre fichier / etc / sudoers (à utiliser en visudotant que root pour éditer le fichier).

<username> ALL=(ALL) NOPASSWD: ALL

Sachez que cela fera que sudo ne demandera plus aucun mot de passe lors de l'exécution d'une commande Sudo. Si vous voulez limiter les programmes utilisables avec sudo, ajoutez le chemin complet aux fichiers binaires (séparés par des virgules) au lieu du dernier ALL, par exemple:

<username> ALL=(ALL) NOPASSWD: /usr/sbin/cron, /usr/sbin/visudo


Près d'un an plus tard: +1, mais la réponse ci-dessus est la meilleure et la plus simple.
Fabby

Sensationnel. J'ai oublié que j'avais même demandé cela. Un an plus tard, j'utilise OpenSUSE comme système d'exploitation principal avec une installation Windows exécutée sur KVM pour les cas d'utilisation occasionnels. Cependant, cette réponse est ce que j’aurais fait maintenant si j’avais encore du mal avec ce problème.
Anton Liakhovitch

2

Trouvez une solution ici :

De cmd:

lxrun /setdefaultuser root

De bash en tant que root:

wget http://mirrors.kernel.org/ubuntu/pool/main/s/sudo/sudo_1.8.9p5-1ubuntu1.1_amd64.deb
wget http://mirrors.kernel.org/ubuntu/pool/main/p/procps/procps_3.3.9-1ubuntu2_amd64.deb
wget http://mirrors.kernel.org/ubuntu/pool/main/s/strace/strace_4.8-1ubuntu5_amd64.deb
dpkg -i sudo_1.8.9p5-1ubuntu1.1_amd64.deb
dpkg -i procps_3.3.9-1ubuntu2_amd64.deb
dpkg -i strace_4.8-1ubuntu5_amd64.deb

N'oubliez pas de définir votre utilisateur par défaut non root après avoir terminé!

lxrun /setdefaultuser <your user>

Les miroirs répertoriés ci-dessus ne fonctionnent pas pour moi, mais j'ai constaté qu'ils fonctionnaient bien: <pre> wget mirror.hmc.edu/ubuntu/pool/main/s/sudo/… wget mirror.hmc.edu/ubuntu/pool / main / s / strace /… </ pre> Je ne pouvais pas rétrograder en procpsraison de libprocps3mon absence . J'ai donc utilisé <pre> mirror.hmc.edu/ubuntu/pool/main/p/procps/… >
David Lukac le

-1

De cmd:

ubuntu config --default-user root

Pour exécuter WSL dans l'invite de commande Windows en cours

ubuntu.exe

Pour voir les trois derniers utilisateurs ajoutés au système Ubuntu

tail -3 /etc/passwd

Pour changer le mot de passe pour user01

passwd user01

Pour quitter WSL

exit

Cette réponse suggère une méthode qui ne fonctionnerait que pour 1709+, qui a été publiée un an après la question et qui n’est donc pas applicable à cette question.
Ramhound

Ma réponse s’adresse d’abord aux nouveaux utilisateurs du WSL. Pour l'instant, toutes les solutions ci-dessus sont déjà obsolètes. J'espère donc que ma réponse aidera quelqu'un qui possède une version plus moderne de W10 mais qui a le même problème que l'auteur de la question (avec l'indisponibilité de lancer "sudo" et "sudo -s", etc.).
Roman
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.