it-swarm.com.de

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

Ich möchte bestimmten Benutzern erlauben, auf ein anderes Benutzerkonto zuzugreifen, ohne das Kennwort dieses Kontos kennen zu müssen, aber keinen Zugriff auf ein anderes Benutzerkonto (d. H. Root) zulassen.
Zum Beispiel möchte ich Tom den DBA erlauben, dem Oracle-Benutzer zu su, aber nicht dem Tomcat-Benutzer oder root.

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

56
gharper

Ja, das ist möglich.

In / etc/sudoers ist das Element unmittelbar nach dem Gleichen der Benutzer, als den der Befehl ausgeführt werden darf.

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

Der Benutzer (tom) kann Sudo -u Oracle/bin/chown tom/home/Oracle/oraclefile eingeben

45
Brent

Fügen Sie Ihren/etc/sudoers so etwas hinzu

tom ALL=(Oracle) ALL

Dann sollte Benutzer Tom in der Lage sein, Sudo zu verwenden, um Dinge als Benutzer Oracle mit der Option -u auszuführen, ohne Tom zuzulassen

Das heißt, Erhalten einer Shell als Benutzer Oracle (vorausgesetzt, Ihr Sudo ist neu genug, um die Option -i zu haben).

Sudo -u Oracle -i
42

Fügen Sie/etc/sudoers Folgendes hinzu, um NUR die in der Frage aufgeführten Funktionen bereitzustellen:

tom            ALL=(Oracle)    /bin/bash

Dann kann Tom:

Sudo -u Oracle bash -i
9
karimofthecrop

Zum Beispiel möchte ich Tom den DBA erlauben, dem Oracle-Benutzer, aber nicht dem Tomcat-Benutzer oder dem Root zuzuweisen.

Ich musste dies kürzlich auf einem System tun und hatte Schwierigkeiten, meine Notizen zu dem alternativen Setup zu finden, das ich vor Jahren verwendet habe und das auch die Syntax su <user> Erlaubte. In meiner Situation musste ich mehreren Benutzern erlauben, su einem bestimmten Benutzer zuzuweisen.

Erstellen Sie eine Gruppe mit addgroup <groupName>, Zu der andere Benutzer ohne Kennwort su können. Fügen Sie dann jedem Benutzer diese Gruppe hinzu, die Sie diesem Benutzer ohne Kennwort su geben möchten: usermod -a -G <groupName> <userName> (Oder usermod -a -G Oracle tom). Die Gruppenänderungen werden möglicherweise erst bei der nächsten Anmeldung wirksam.

Hinweis: In Ihrem Fall haben Sie die Gruppe bereits, da die Gruppe Oracle erstellt wurde, als Sie den Oracle-Benutzer mit adduser Oracle Erstellt haben.

Bearbeiten Sie nun /etc/pam.d/su Und unter folgendem:

# This allows root to su without passwords (normal operation)
auth       sufficient pam_rootok.so

..add auth Regelzeilen, damit der Abschnitt so aussieht:

# This allows root to su without passwords (normal operation)
auth       sufficient pam_rootok.so
auth       [success=ignore default=1] pam_succeed_if.so user = <groupName>
auth       sufficient   pam_succeed_if.so use_uid user ingroup <groupName>

Ersetzen Sie in diesem Fall <groupName> Durch Oracle. Dadurch kann jeder Benutzer, der Teil von <groupName> Ist, su <groupName>

Jetzt kann tomsu Oracle Und wenn Sie anderen Benutzern den gleichen Zugriff gewähren müssen, fügen Sie sie der Gruppe Oracle hinzu.

ähnliche Frage hier

0
jtlindsey