Befehle als anderer Benutzer ausführen

Befehle als anderer Benutzer ausführen

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 apacheausführen . Ich habe der Datei die folgenden Zeilen hinzugefügt:intelmqctlintelmqsudoers

Defaults:apache !requiretty
apache ALL=(intelmq) NOPASSWD: /usr/bin/intelmqctl

Allerdings wird jedes Mal, wenn ich versuche, den folgenden Befehl als Benutzer auszuführen, apacheFolgendes 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, intelmqctlund eine genauere Erklärung des Problems selbst. Vielleicht ist mir bei der Installation etwas misslungen:https://github.com/certtools/intelmq/issues/981

sudo -iu apacheWenn ich versuche, als auszuführen root, wird es zum apacheBenutzer 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 apacheals apacheBenutzer 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.

verwandte Informationen