WSL / bash-on-windows-sudo quebrado após a atualização de lançamento

2

Eu sei que não devo executar do-release-upgrade na WSL, mas fiz isso de qualquer maneira. A atualização em si foi feita sem erros, mas qualquer tentativa de executar o sudo retorna:

sudo: no tty present and no askpass program specified

A saída de ls -l /dev como usuário comum:

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

A execução como root (usando lxrun.exe / setdefaultuser) retorna a mesma coisa.

Eu sei que posso apenas reinstalar o Ubuntu, mas ainda estou curioso para saber o que pode estar causando o problema e se há uma correção fácil.

Oh- e date retornam Mon Aug 15 19:45:49 DST 2016 , como deveria.

    
por Anton Liakhovitch 16.08.2016 / 04:42

2 respostas

2

O que pode ajudar como alternativa ao download de pacotes antigos:

  • Faça login como raiz, via lxrun /setdefaultuser root ou (se você ainda não fez o upgrade) sudo su
  • Defina uma senha para o usuário raiz por meio de passwd

Agora você pode alternar para root simplesmente usando su root e digitando a senha que você definiu, sem ter que alternar o usuário padrão via lxrun.

Como alternativa, você pode impedir que o sudo exija uma senha, como mencionado em várias respostas aqui :

Para evitar que o sudo peça uma senha, você pode adicionar a seguinte linha no final do seu arquivo / etc / sudoers (use visudo como root para editar o arquivo)

<username> ALL=(ALL) NOPASSWD: ALL

Esteja avisado, isso fará com que o sudo não solicite mais uma senha, ao executar qualquer comando do Sudo. Se você quiser limitar os programas que podem ser usados usando o sudo, adicione o caminho completo aos binários (separados por vírgulas) em vez do ALL final, por exemplo:

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

    
por 02.11.2016 / 09:35
2

Encontrou uma solução aqui :

Do cmd:

lxrun /setdefaultuser root

Do bash como 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ão se esqueça de definir seu usuário padrão que não seja root após o seu término!

lxrun /setdefaultuser <your user>
    
por 06.10.2016 / 22:08