sudo: нет tty присутствует и не указана программа прохода

В более ранние годы веб-дизайна разработчикам чаще приходилось открывать все внешние URL-адреса в новых окнах, но все чаще это считается плохой практикой, потому что, как вы обнаружили, он берет управление у пользователя. [!d0 ]

Статья Должны ли ссылки открываться в новых Windows? делает хороший аргумент «точка-за-точкой» в поддержку этого представления.

Обходные методы хаки, которые динамически разделяют атрибут target="blank" в вашем веб-браузере, существуют, но вам не нужно их использовать. Эти обходные пути относятся только к симптомам.

Единственное решение

Пишите вебмастерам проблемных сайтов и вежливо объясните, насколько неуважительным и враждебным является чрезмерное использование target="blank". Укажите, как ссылки, открывающиеся в новых окнах, обрывают кнопку возврата посетителя, создавая препятствие для пользователей, пытающихся вернуться на их сайт. Сделайте так, чтобы их дизайн убедительно лишал пользователей выбора для управления собственным компьютером.

Если пользователи говорят об этой проблеме, возможно, со временем нам не придется прибегать к другим обходным решениям размещен здесь больше.

1
задан 4 April 2015 в 22:17

4 ответа

Вопрос:

Как я могу обойти это?

sudo: no tty present and no askpass program specified

Альтернативный ответ

В качестве альтернативы попробуйте:

[d4 ] sudo -S ./binary

Это позволяет sudo читать пароль со стандартного ввода, stdin.

Сценарии, где это помогает

В средах chroot эти другие ответы может работать неправильно ... возможно, потому что:

/ etc / shadow vs / etc / passwd конфликт не позволяет пользователю вводить пароль. В chroot-ed среде доступ к tty1 может быть немного глючным, а ctrl-alt f2 - to tty2 является неосуществимым, потому что это tty среды без chroot-ed.

Например: вручную установка / восстановление linux или загрузчика с использованием среды chroot (например, Archlinux и arch-chroot).

15
ответ дан 24 May 2018 в 23:31

Вам нужно определить терминал / приложение, которое будет читать пароль. Существует два варианта:

export SUDO_ASKPASS=/usr/libexec/openssh/ssh-askpass vim /etc/sudoers (по умолчанию visiblepw)
5
ответ дан 24 May 2018 в 23:31
  • 1
    Разве не лучше использовать visudo вместо vim /etc/sudoers, чтобы избежать потенциальной блокировки себя из вашей машины из-за ошибки в вашем редактировании? – Drew Noakes 17 May 2014 в 00:57

Это не удается, потому что sudo пытается запросить пароль root и нет назначенного псевдо-tty.

Вы должны либо войти в систему с правами root, либо настроить следующие правила в /etc/sudoers (или: sudo visudo):

# Members of the admin group may gain root privileges
%admin  ALL=(ALL) NOPASSWD:ALL

Затем убедитесь, что ваш пользователь принадлежит к группе admin (или wheel).

4
ответ дан 24 May 2018 в 23:31
  • 1
    в то время как это неверно (никаких данных для этого нет, и пользователи в группе администратора с этим кодом в системах centos и ubuntu все еще получают ошибку), это отличный совет для создания групп и правил на основе этих групп для усиленные задачи – MrMesees 3 December 2016 в 03:02

Вы также можете создать файл, например «sudo_shutdown» в файле /etc/sudoers.d, с контентом:

# Allow admins to shutdown without pass
%adm ALL=(ALL) NOPASSWD: /sbin/shutdown

Это позволяет пользователям, находящимся в группе adm, отключиться без пароля. [ ! d1]

2
ответ дан 24 May 2018 в 23:31

Другие вопросы по тегам:

Похожие вопросы: