it-swarm.com.de

sudoers NOPASSWD: Sudo: kein tty vorhanden und kein askpass-Programm angegeben

Ich habe einen Benutzer wie diesen hinzugefügt:

$ adduser --system --home /no/home --no-create-home --group --disabled-password --disabled-login testuser

Einen Benutzer zu einer Gruppe hinzugefügt:

$ adduser testuser testgroup

sudoers (visudo) hinzugefügt:

testuser    ALL=(ALL) NOPASSWD: ALL
%testgroup         ALL=(ALL:ALL) NOPASSWD: ALL

Wenn ich versuche, das Bash-Skript mit folgendem Inhalt auszuführen:

#!/bin/sh
Sudo -u testuser /usr/bin/php /usr/local/bin/script.php

Wenn ich dieses Skript ausführe, bekomme ich den Fehler im Protokoll:

Sudo: no tty present and no askpass program specified

Bearbeiten: requiretty ist nicht in der Sudoers-Datei enthalten.

7
Tim Mishutin

Sudo Berechtigungen beziehen sich auf den Benutzer/die Gruppe, die Sie ändern, von nicht den Benutzer, den Sie in ändern.

Diese Berechtigungszeilen erlauben es dem Benutzer testuser und der Gruppe testgroup, jeden Befehl (wie jeder andere Benutzer) ohne Kennwort auszuführen.

Sie müssen die Berechtigung to dem Benutzer, der das Skript ausführt, erteilen, um die Befehle as der testuser-Benutzer auszuführen, was Sie möchten.

Angenommen, das war es, was Sie zulassen wollten.

7
Etan Reisner

Dieser Fehler tritt auf, wenn Ihre Sudoers-Datei requiretty angibt. Auf der sudoers-Manpage:

   requiretty      If set, Sudo will only run when the user is 
                   logged in to a real tty.  When this flag is set, 
                   Sudo can only be run from a login session and not 
                   via other means such as cron(8) or cgi-bin scripts.  
                   This flag is off by default.

Um den Fehler zu beheben, entfernen Sie requiretty aus Ihrer Sudoers-Datei.

3
jordanm

Ich habe das Problem behoben, indem ich mich beim Server angemeldet habe und die folgenden Zeilen an die Konfiguration des SSH-Servers angehängt habe:

> vim /etc/ssh/sshd_config

Match User <your user name>
    PermitTTY yes

Daher brauche ich die -t - Optionen nicht dauerhaft.

0
Jeff Tian