Frage Wie kann ich einem Benutzer erlauben, zu einem anderen Benutzer zu wechseln, ohne Root-Zugriff zu erlauben?


Ich würde gerne zulassen, dass bestimmte Benutzer an ein anderes Benutzerkonto gelangen, ohne das Kennwort dieses Kontos kennen zu müssen, aber nicht den Zugriff auf ein anderes Benutzerkonto (d. H. Root) zu erlauben.
Zum Beispiel möchte ich Tom den DBA gestatten, dem Oracle-Benutzer zu vertrauen, aber nicht dem Tomcat-Benutzer oder dem Root.

Ich könnte mir vorstellen, dass dies mit der Datei / etc / sudoers gemacht werden könnte - ist das möglich? Wenn das so ist, wie?


49
2018-06-02 15:13


Ursprung




Antworten:


Ja, das ist möglich.

Im / etc / sudoers Das Element unmittelbar nach dem Gleichheitszeichen ist der Benutzer, für den der Befehl ausgeführt werden darf.

tom  ALL=(oracle) /bin/chown tom *

Der Benutzer (tom) kann schreiben sudo -u oracle / bin / chown tom / zu Hause / oracle / oraclefile


39
2018-06-02 15:18



Dies würde es Tom ermöglichen, Befehle als oracle auszuführen, aber nicht als Orakelbenutzer - gharper
Was ist mit sudo -u oracle su -? Das würde ihm eine Shell als Orakelbenutzer öffnen. Ist es das was du willst? - Brent
+1 für diesen letzten Kommentar, Brent. Das wäre meine Antwort. - Annika Backstrom
Etwas wie das Folgende würde funktionieren: sudo -u oracle -s oder sudo -u oracle -i (-s für die Shell, -i für die Anmeldung - erstellt eine Login-Shell). Leider weiß ich nicht direkt, was Sie in / etc / sudoers verwenden würden, um den Benutzer einzuschränken, aber da Sie ihnen Shell-Zugriff erlauben, wollen Sie wahrscheinlich nur tom ALL = (oracle) ALL als jemand anderes erwähnt haben. Wenn sie eine Shell ausführen können, ist es wahrscheinlich nicht wichtig, die Befehle zu beschränken, die sie ausführen können. - Mark
Möchtest du nicht, dass Tom Befehle als Oracle-Benutzer ausführt, anstatt zum Oracle-Benutzer zu werden? Die Unterscheidung ist gering, aber es bietet ein großartiges Audit-Protokoll, ohne auf die Verwendung einer Audit-Shell verzichten zu müssen. - Scott Pack


Fügen Sie zu / etc / sudoers etwas hinzu

tom ALL=(oracle) ALL

Dann sollte Benutzer tom in der Lage sein, sudo zu verwenden, um als Benutzer oracle mit der Option -u zu laufen, ohne tom zu lassen

I.e. eine Shell als Benutzer-Orakel bekommen (naja, da dein Sudo neu genug ist, um die Option -i zu haben).

sudo -u oracle -i

36
2018-06-02 15:26



Ich musste Syntax verwenden tom ALL=(oracle)NOPASSWD:ALL Sudo nicht zu fragen, Passwort - snowindy


Um NUR die Fähigkeiten in der Frage bereitzustellen, fügen Sie Folgendes zu / etc / sudoers hinzu:

tom            ALL=(oracle)    /bin/bash

Dann kann Tom:

sudo -u oracle bash -i

7
2017-12-11 22:44