2

Я знаю, что не должен запускать do-release-upgrade в WSL, но я все равно это сделал. Само обновление прошло без ошибок, но любая попытка запустить sudo возвращает:

sudo: no tty present and no askpass program specified

Вывод ls -l /dev для обычного пользователя:

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

Запуск от имени пользователя root(с помощью lxrun.exe/setdefaultuser) возвращает то же самое.

Я знаю, что могу просто переустановить Ubuntu, но мне все еще интересно, что может быть причиной проблемы, и есть ли ее простое решение.

Ох, и date возвращается Mon Aug 15 19:45:49 DST 2016 , как и должно быть.

3 ответа3

2

Нашел решение здесь:

Из cmd:

lxrun /setdefaultuser root

Из bash от имени 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

Не забудьте установить своего пользователя без полномочий root по умолчанию после того, как вы закончите!

lxrun /setdefaultuser <your user>
2

Что может помочь в качестве альтернативы загрузке старых пакетов:

  • Войдите в систему как Root, через lxrun /setdefaultuser root или (если вы еще не обновились) sudo su
  • Установите пароль для пользователя Root через passwd

Теперь вы всегда можете переключиться на root, просто используя su root и введя пароль, который вы установили, без необходимости переключать пользователя по умолчанию через lxrun.

В качестве альтернативы вы можете вообще запретить sudo запрашивать пароль, как указано в нескольких ответах здесь:

Чтобы вообще не запрашивать пароль у sudo, вы можете добавить следующую строку в конец вашего файла /etc /sudoers (используйте visudo как root для редактирования файла)

<username> ALL=(ALL) NOPASSWD: ALL

Имейте в виду, это приведет к тому, что sudo больше не будет запрашивать пароль при выполнении любой команды Sudo. Если вы хотите ограничить программы, которые можно использовать с помощью sudo, добавьте полный путь к двоичным файлам (через запятую) вместо окончательного ALL, например:

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

-1

Из cmd:

ubuntu config --default-user root

Чтобы запустить WSL в текущей командной строке Windows

ubuntu.exe

Чтобы увидеть последних трех пользователей, добавленных в систему Ubuntu

tail -3 /etc/passwd

Чтобы изменить пароль для user01

passwd user01

Для выхода из WSL

exit

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .