529 Stimmen

Wie man den Fehler 'sudo: keine tty vorhanden und kein askpass Programm festgelegt' beheben kann?

Ich versuche, einige Quellen mit Hilfe eines Makefiles zu kompilieren. Im Makefile gibt es eine Reihe von Befehlen, die als sudo ausgeführt werden müssen.

Wenn ich die Quellen aus einem Terminal kompiliere, läuft alles gut und das Make wird das erste Mal angehalten, wenn ein sudo Befehl ausgeführt wird und auf das Passwort wartet. Sobald ich das Passwort eingebe, setzt das Make fort und beendet sich.

Aber ich möchte die Quellen gerne in NetBeans kompilieren. Also habe ich ein Projekt gestartet und NetBeans gezeigt, wo die Quellen zu finden sind. Wenn ich das Projekt kompiliere, erscheint allerdings folgender Fehler:

sudo: no tty present and no askpass program specified

Das passiert das erste Mal, wenn ein sudo Befehl ausgeführt wird.

Ich habe das Problem im Internet recherchiert und alle Lösungen, die ich gefunden habe, deuten auf eine Sache hin: das Deaktivieren des Passworts für diesen Benutzer. Da es sich hier um den Root-Benutzer handelt, möchte ich das nicht tun.

Gibt es eine andere Lösung?

27voto

Vasili Pascal Punkte 2716

Für Ubuntu 16.04 Benutzer

Es gibt eine Datei, die Sie mit lesen müssen:

cat /etc/sudoers.d/README

Eine Datei mit dem Modus 0440 in /etc/sudoers.d/myuser mit folgendem Inhalt ablegen:

myuser  ALL=(ALL) NOPASSWD: ALL

Sollte das Problem beheben.

Vergessen Sie nicht:

chmod 0440 /etc/sudoers.d/myuser

27voto

sNICkerssss Punkte 6092

Versuchen Sie es mit diesem:

echo '' | sudo -S my_command

18voto

Susil Parida Punkte 382

Loggen Sie sich in Ihren Linux ein. Führen Sie folgende Befehle aus. Seien Sie vorsichtig, da das Bearbeiten von sudoer eine riskante Angelegenheit ist.

$ sudo visudo

Sobald der Vi-Editor geöffnet ist, machen Sie die folgenden Änderungen:

  1. Kommentieren Sie Defaults requiretty aus

    # Defaults    requiretty
  2. Gehen Sie ans Ende der Datei und fügen Sie hinzu

    jenkins ALL=(ALL) NOPASSWD: ALL

16voto

Gubatron Punkte 5888

Wenn Sie aus irgendeinem Grund hier sind, weil Sie in Ubuntu unter Windows 10 kein sudo verwenden können

  1. Bearbeiten Sie die Datei /etc/hosts von Windows (mit Notepad), sie befindet sich unter: %localappdata\lxss\rootfs\etc, fügen Sie 127.0.0.1 WINDOWS8 hinzu, das wird den ersten Fehler beseitigen dass der Host nicht gefunden werden kann.

  2. Um den Fehler no tty present loszuwerden, führen Sie immer sudo -S aus

13voto

Alexander Mills Punkte 76733

Dies hat für mich funktioniert:

echo "myuser ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers

wo dein Benutzer "myuser" ist

für ein Docker-Image wäre das einfach:

RUN echo "myuser ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X