Das schaut mir nach einer migrierten /etc/sudoers
aus, beispielsweise von einem Buster => Bullseye upgrade, oder erstellt als Teil deiner Setup Skripte oder so? Da ist dieses requiretty
enthalten, was in Bullseye standardmäßig nicht vorhanden ist (auch in Buster nicht). requiretty
sorgt dafür dass für sudo
eine Konsole benötigt wird (offensichtlich unabhängig davon ob ein Password abgefragt wird), welche in Serviceumgebungen nicht existiert.
Generell empfehle ich diese Datei unangetastet zu lassen und eigene sudoers
Einstellungen als separate Datei zu erstellen:
echo -e 'fhem ALL=(ALL) NOPASSWD: ALL\nfhem ALL=(ALL) NOPASSWD:SETENV: /usr/bin/cpanm *' > /etc/sudoers.d/fhem
Das hat den Vorteil dass im Falle von einem Upgrade, insbesondere Distributionsupgrades, die neuen Standarddateien automatisch installiert werden. Sobald eine Datei in /etc
manuell geändert wurde, wird APT diese nicht mehr automatisch überschreiben.
Möglicherweise gibt es bereits eine Paketversion der Datei die du nach obigem nutzen kannst:
mv /etc/sudoers.dpkg-dist /etc/sudoers
Falls nicht, hier ist das Bullseye-Original:
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL:ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
# See sudoers(5) for more information on "@include" directives:
@includedir /etc/sudoers.d
Wie du siehst mit @
anstatt #
, was die neuere Syntax ist, wobei noch beides funktioniert, jedoch vor allem ohne requiretty
.
EDIT: Falls du aus Sicherheitsgründen oder so requiretty
weiter nutzen möchtest, muss Defaults:www-data !requiretty
als weitere Ausnahme hinzugefügt werden.