При попытке запустить удаленный двоичный файл с помощью sudo
на удаленном компьютере:
ssh remotehost "sudo ./binary"
я вижу эту ошибку:
sudo: нет tty присутствует и нет askpass указана программа
blockquote>Как я могу обойти это?
РЕДАКТИРОВАТЬ это, безусловно, не является дубликатом вопроса, предложенного как такового. Ответы там совершенно неактуальны. Фактически, эти изменения в файле sudoers уже были применены к удаленному хосту.
Ffordd syml yw nodi -t
:
ssh -t remotehost "sudo ./binary"
O'r dudalen dyn:
Dyraniad ffug-rym yr heddlu. Gellir defnyddio hyn i weithredu rhaglenni mympwyol yn seiliedig ar sgrin ar beiriant anghysbell, a all fod yn ddefnyddiol iawn, e.e. wrth weithredu gwasanaethau bwydlen. Mae opsiynau lluosog -t yn gorfodi dyraniad tty, hyd yn oed os nad oes gan ssh tty lleol.
Ni allaf egluro pam yn union y mae hyn yn gweithio, ac efallai y bydd ffordd well. Hoffwn glywed amdano os felly :)
Mae @psusi yn esbonio pam mae hyn yn gweithio mewn sylw isod.
Как я могу обойти это?
sudo: no tty present and no askpass program specified
В качестве альтернативы попробуйте:
sudo -S ./[yourExecutable visible
Это указывает sudo на чтение пароля со стандартного ввода, stdin.
В средах chroot эти другие ответы могут работать некорректно ... возможно, потому что:
Например: Ручная установка / восстановление Linux или загрузчика с использованием среды chroot (такой как Archlinux и arch-chroot).
Вам необходимо определить терминал / приложение, которое будет читать пароль. Есть два варианта:
export SUDO_ASKPASS = / usr / libexec / openssh / ssh-askpass
vim / etc / sudoers
(По умолчанию visiblepw) Это не работает, потому что sudo
пытается запросить пароль суперпользователя, но псевдотерминал не выделен.
Вы должны либо войти в систему как root, либо установить следующие правила в вашем / etc / sudoers
(или: sudo visudo
):
# Members of the admin group may gain root privileges
%admin ALL=(ALL) NOPASSWD:ALL
Затем убедитесь, что ваш пользователь принадлежит к группе admin
(или wheel
).
Вы можете также создайте файл типа "sudo_shutdown" в /etc/sudoers.d с содержимым:
# Allow admins to shutdown without pass
%adm ALL=(ALL) NOPASSWD: /sbin/shutdown
Это позволяет пользователям, которые находятся в группе adm, завершать работу без пароля.
В моем случае я получил эту ошибку, потому что я не указывал команду, которую я хотел бы использовать как root в sudoers
Что-то вроде
/ e tc / sudoers.d / myuser
:
myuser ALL=(root) NOPASSWD: \
/bin/ls -la
работал у меня