Wie vermeide ich, dass root sudo nicht ausführen darf?

0

Ich versuche, ein Drittanbieter-Installationsskript (ansible tower setup.sh) auszuführen, das als root oder über sudo gestartet werden muss, da einige Befehle auf root-Berechtigungen basieren. Jedoch einige Befehle während der Skriptausführung versuchen sudo . Fragen Sie mich nicht warum, ich denke, das Setup-Skript ist eine gemeinsame Anstrengung mit einigen Inkonsistenzen ...

Das Skript schlägt also fehl und ich kann es reproduzieren. Ich stehe immer vor diesem seltsamen Fehler, wenn ich versuche, sudo als root auszugeben, z.

root@machine:/home/someuser: sudo echo 1
root is not allowed to run sudo on <FQDN here>.  This incident will be reported.

Ich habe so etwas noch nie in meinen früheren Erfahrungen mit Ubuntu gesehen (und um fair zu sein, auch noch bei Google.)

Da es nicht möglich ist, alle Stellen zu finden und das Skript so zu transformieren, dass sudo nicht aufgerufen wird, muss ein Weg gefunden werden, damit der Root-Benutzer sudo ausführen kann. Der Ubuntu 16.04-Server, an dem ich arbeite, wird auf exotische Weise vom privaten Cloud-Anbieter des Unternehmens innerhalb der Domäne (IDK, ob dies von Bedeutung ist) konfiguriert.

Meine / etc / sudoers sieht so aus:

#
# This file MUST be edited with the 'visudo' command as root.
# more bla bla
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
+unixadmin,+unixadminext      ALL= NOPASSWD: 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

über sudo:

root@machine:/home/someuser# which sudo
/usr/bin/sudo
root@machine:/home/someuser# ll /usr/bin/sudo
-rwsr-xr-x 1 root root 140816 Jun  7  2017 /usr/bin/sudo*    

Was vermisse ich?

Ich habe den root-Benutzer zur sudo-Gruppe hinzugefügt, aber das Problem konnte nicht behoben werden.

kottalovag
quelle
Wenn du sind root, warum musst du sudo ausführen? Ich bin mir sicher, dass ich hier einen genaueren Punkt vermisse, aber wenn Sie etwas von einer root-Eingabeaufforderung ausführen, ist sudo absolut überflüssig.
Mokubai
Ich stelle die gleiche Frage. Root sollte sudo nicht benötigen, da sudo im Wesentlichen den Root-Zugriff für andere Nicht-Root-Benutzer emuliert. Wenn Ihr Skript mit höheren Berechtigungen ausgeführt werden muss, kann dies durch Ausführen als root erreicht werden. Die Idee, als root zu laufen, lässt mich erschaudern. Vielleicht könnten wir mehr helfen, wenn wir wüssten, was Sie tatsächlich erreichen wollen und welche Fehler Sie machen.
s1ns3nt
@ Mokubai, frag die Autoren des Skripts, mit dem ich arbeite. Grundsätzlich macht das der ansible Tower Installer intern, ich selbst rufe nur das Shell-Skript auf. Natürlich muss das Skript über sudo aufgerufen werden, da es hier und da auf Root-Ness angewiesen ist, an anderen Stellen versucht es, sich zu erhöhen.
kottalovag
@ s1ns3nt, danke für die Frage, ich habe meine Frage bearbeitet, um klarer zu sein.
kottalovag

Antworten:

0

Führen Sie als root aus groups - Root ist nicht in der Sudo-Gruppe, warum sollte es jemals nötig sein?

Um das Problem zu beheben, können Sie entweder root zur sudo-Gruppe hinzufügen oder jedes Skript überprüfen, das sudo ausführt (was Sie als Möglichkeit für Ihr spezielles Problem abgezinst haben, aber möglicherweise eine Lösung für andere .

So fügen Sie der sudo-Gruppe root hinzu:

(als root) usermod -a -G sudo root

djsmiley2k
quelle
Thx, ich habe mir die Gruppen mit dem members-Befehl angesehen. Fügen Sie dann den Root-Benutzer mit usermod zur sudo-Gruppe hinzu. Ich habe mich neu angemeldet. Ich kann sudo jedoch immer noch nicht über root ausführen.
kottalovag