it-swarm.com.de

Erstellen Sie einen benutzerdefinierten Sudo-Befehl ohne Kennwort

Ich möchte ein Skript implementieren, um einen Befehl mit Root-Rechten auszuführen, ohne ein Kennwort eingeben zu müssen. Am Terminal würde ich es gerne so sehen:

./newsudo "comand with root privileges" 

Ich denke, der Weg wäre, den "Befehl mit Root-Rechten" als Argument innerhalb des Skripts mit und exec oder ähnlichem zu verwenden, um es auszuführen.

Die Wahrheit ist, ich bin in diesem ganzen Bereich sehr noob und ich weiß nicht, wo ich anfangen soll.

Vielen Dank!!

4
Binkpang34

Erstellen Sie einen generischen Befehl, um einen beliebigen (Unter-) Befehl als Sudo ohne Kennwort auszuführen. ist es möglich?

Theoretisch ist das, was Sie verlangen, möglich. Da es möglich ist, eine Anwendung in der sudoers-Datei so einzustellen, dass sie mit Argumenten ausgeführt wird, können wir einen Befehl (Skript) ausführen, der mit dem betreffenden Befehl mit Sudo ausgeführt wird als Argument.

Sollen wir es tun

NIEMALS, da dies gegen das Prinzip der Administratorschaft verstößt. JEDER böswillige Prozess könnte Code ausführen, um Ihr System zu zerstören.

Das Fazit ist, dass ich nicht einmal posten werde, wie das geht.


Weitere Dinge, die Sie tun oder nicht tun sollten, wenn Sie Software ohne Passwort ausführen

Wie von @Groundzero erwähnt, können Sie der sudoers-Datei bestimmte Anwendungen oder Skripte hinzufügen, um sie ohne Kennwort auszuführen, wie beschrieben hier . Beachten Sie jedoch Folgendes:

  • Fügen Sie der sudoers-Datei keine Anwendungen hinzu, mit denen Ihr System oder allgemein schädliche Dinge beschädigt werden können. Vor allem, wenn die Anwendung über umfangreiche Optionen verfügt.
  • Speichern Sie keine Skripts, die mit Sudo (ohne Kennwort) ausgeführt werden sollen, an einem Ort, an dem sie ohne Administratorrechte bearbeitet werden können. Eine einfache Bearbeitung durch irgendjemanden (oder irgendeinen Prozess) kann alles bewirken.
14
Jacob Vlijm

Erstellen Sie einfach eine Sudo-Regel, die die betreffenden Befehle dem gewünschten Benutzer/der gewünschten Gruppe mit NOPASSWD: vor dem Befehl erteilt. Sie benötigen kein neues Skript, nur so etwas, um jedem in der Gruppe der Administratoren die Möglichkeit zu geben, als root etwas auszuführen, ohne dass ein Kennwort erforderlich ist:

%admins ALL = NOPASSWD: ALL

Im Allgemeinen ist es eine gute Idee, Kennwörter für besonders gefährliche Befehle zu fordern, aber Ihre Sicherheitsrichtlinie liegt bei Ihnen. Es gab einige (inzwischen gelöschte) Diskussionen darüber, wie unsicher dies ist, und ich stimme zu: Es ist gefährlich. Es ist fast immer eine schlechte Idee zu sagen, "dieser Benutzer kann alles als root ausführen, ohne seine Identität gelegentlich erneut zu überprüfen."

Es gibt jedoch auch andere Sicherheitsforen. Wenn das legitime Ziel darin besteht, beliebige Befehle als root ohne Kennwort auszuführen, ist dies nur der sicherste Weg. Die Einschränkung besteht darin, dass jeder, der dies implementiert, sich der Risiken bewusst sein muss, einschließlich "jeder, der einen Befehl mit den Rechten dieses Benutzers ausführen kann, ist effektiv root". Dazu gehören beispielsweise heruntergeladene Skripte und möglicherweise sogar schädliche Webseiten, wenn der Browser eine Sicherheitslücke aufweist. Die Trennung zwischen "nicht privilegiertem Benutzer" und "root" ist mit einer solchen Regel so gut wie weggefallen. Käufer aufgepasst. :)

3
dannysauer