Ich habe einen Benutzer mit dem Namen erstellt intelmq
, der die Berechtigung hat, ein Programm mit dem Namen auszuführen intelmqctl
. Dann habe ich einen Benutzer mit dem Namen erstellt apache
, und ich möchte als Benutzer apache
ausführen . Ich habe der Datei die folgenden Zeilen hinzugefügt:intelmqctl
intelmq
sudoers
Defaults:apache !requiretty
apache ALL=(intelmq) NOPASSWD: /usr/bin/intelmqctl
Allerdings wird jedes Mal, wenn ich versuche, den folgenden Befehl als Benutzer auszuführen, apache
Folgendes zurückgegeben:
Befehl:sudo -u apache sudo -u intelmq /usr/bin/intelmqctl --type json stop abusech-ip-parser
Ausgabe:
Sorry, user apache is not allowed to execute '/bin/sudo -u intelmq /usr/bin/intelmqctl --type json stop abusech-ip-parser' as apache on localhost.localdomain.
Ich verwende CentOS 7.
Hier sind die Schritte, die ich zur Installation ausgeführt habe, intelmqctl
und eine genauere Erklärung des Problems selbst. Vielleicht ist mir bei der Installation etwas misslungen:https://github.com/certtools/intelmq/issues/981
sudo -iu apache
Wenn ich versuche, als auszuführen root
, wird es zum apache
Benutzer geändert. Wenn ich dann den Befehl ausführe sudo -u intelmq /usr/bin/intelmqctl
, funktioniert es und es werden alle Optionen zur Ausführung angezeigt intelmqctl
.
Wenn ich den Befehl jedoch sudo -iu apache
als apache
Benutzer ausführe, wird Folgendes zurückgegeben:Sorry, user apache is not allowed to execute '/bin/bash' as apache on localhost.localdomain.
Antwort1
Sie können dieser Binärdatei die Setuid-Berechtigung hinzufügen und den Eigentümer auf Intelmq ändern.
chmod u+s /usr/bin/intelmqctl
chown intelmq /usr/bin/intelmqctl
Anschließend können Sie diese ausführbare Datei mit dem Prozessbesitz von intelmq ausführen.