GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Webmin

Benutzerdefinierte Befehle

Diese Seite behandelt das benutzerdefinierte Befehlsmodul von Webmin, mit dem Schaltflächen zum Ausführen häufig verwendeter Shell-Befehle erstellt werden können.

Inhalt

Das benutzerdefinierte Befehlsmodul

Die meisten Systemadministratoren erstellen gerne Shell-Skripte, um allgemeine Aufgaben auszuführen, wie das Sichern einer Datenbank oder das Hinzufügen eines neuen Benutzers. Da jedes System und jede Organisation anders ist, wird es immer Aufgaben geben, die ein allgemeines Tool wie Webmin nicht so einfach erledigen kann wie ein einfaches angepasstes Skript. Leider sind Skripte, die auf der Befehlszeile ausgeführt werden, für einen unerfahrenen Benutzer nicht einfach zu verwenden.

Mit dem Custom Commands-Modul können Sie einfache Weboberflächen für Shell-Skripte und -Befehle erstellen, sodass diese auf Knopfdruck in Webmin ausgeführt werden können. Außerdem können Sie Parameter verschiedener Typen für jeden Befehl definieren, die vom Benutzer eingegeben und in den Shell-Befehl eingesetzt werden können. Dies kann verwendet werden, um zusätzliche Argumente oder Eingaben für die ausgeführten Skripts bereitzustellen, abhängig von der Auswahl, die der Benutzer vor der Ausführung getroffen hat.

Eine weitere Funktion des Moduls ist die Möglichkeit, Dateieditoren zu definieren, sodass häufig geänderte Dateien über die Weboberfläche von Webmin bearbeitet werden können. Sie können auch Befehle definieren, die vor und nach der Bearbeitung der Datei ausgeführt werden sollen, damit sie vor der Bearbeitung validiert, kopiert oder gesichert werden kann.

Die möglicherweise nützlichste Funktion des Moduls ist die Unterstützung der Zugriffskontrolle. Sie können anderen Webmin-Benutzern die Rechte erteilen, einige oder alle Befehle und Editoren zu verwenden, während Sie nur sich selbst und anderen vertrauenswürdigen Administratoren Berechtigungen zum Erstellen und Bearbeiten von Befehlen erteilen. Das bedeutet, dass die anderen Benutzer nur die Skripte ausführen und die Dateien bearbeiten können, die Sie ihnen erlauben, jedoch ohne volle Root-Rechte.

Im Gegensatz zu den meisten anderen Modulen befasst sich dieses Modul nicht mit der Konfiguration eines separaten Servers oder Dienstes. Daher hat es auf allen Unix-Versionen genau dieselbe Benutzeroberfläche und Funktionalität, auf denen Webmin ausgeführt werden kann.

Wenn Sie das Modul aus der Kategorie Andere aufrufen, zeigt seine Hauptseite alle vorhandenen benutzerdefinierten Befehle und Datei-Editoren zusammen mit ihren Parametern an. Der folgende Screenshot zeigt ein Beispiel aus einem System mit 1 Dateieditor und 8 definierten Befehlen, von denen zwei einen Parameter haben. Wenn Sie das Modul noch nie verwendet haben, ist die Seite jedoch leer.


Das benutzerdefinierte Befehlsmodul

Sie können jeden auf der Hauptseite angezeigten Befehl ausführen, indem Sie einfach auf die Schaltfläche klicken. Wenn der Befehl jedoch Parameterfelder oder Auswahlmöglichkeiten hat, müssen Sie diese ausfüllen oder die entsprechende Auswahl treffen, bevor Sie ihn ausführen. Wenn Sie auf die Schaltfläche klicken, werden Sie zu einer Seite weitergeleitet, auf der alle Ausgaben des Befehls angezeigt werden, sodass Sie sehen können, ob er erfolgreich war oder fehlgeschlagen ist.

Um einen Dateieditor zu verwenden, klicken Sie einfach auf die Schaltfläche auf der Hauptseite. Sie gelangen auf ein Bearbeitungsformular, das den aktuellen Dateiinhalt anzeigt, den Sie frei ändern können. Wenn Sie fertig sind, klicken Sie auf Speichern Schaltfläche unter dem Textfeld, um den neuen Dateiinhalt zu schreiben.

Einen neuen Befehl erstellen

Gehen Sie wie folgt vor, um einen neuen Befehl zu erstellen, der über eine Schaltfläche auf der Hauptseite des Moduls ausgeführt werden kann:

  1. Klicken Sie auf Neuen benutzerdefinierten Befehl erstellen Link über oder unter den vorhandenen Schaltflächen. Dadurch wird das im Bild unten gezeigte Erstellungsformular angezeigt.
  2. Geben Sie eine kurze Beschreibung für Ihren Befehl in die Beschreibung ein Feld. Der von Ihnen eingegebene Text erscheint auf der Schaltfläche des Befehls auf der Hauptseite. Sie können auch zusätzlichen Text (einschließlich HTML-Tags) in das größere Textfeld darunter eingeben, der unter der Schaltfläche angezeigt wird.
  3. Im Befehl Geben Sie das Shell-Skript oder den Befehl ein, den Sie ausführen möchten. Alle Standard-Shell-Metazeichen {| border="1" |- werden unterstützt, wie z. B. ||, &, . Um mehrere Befehle einzugeben, |} trennen Sie sie mit ; oder &&. Wenn Ihr Befehl über Parameter verfügt (in Schritt 10 festgelegt), werden diese beim Ausführen des Befehls in Umgebungsvariablen konvertiert. Wenn Sie also einen Parameter namens foo haben, werden alle Vorkommen von $foo in der Befehlszeichenfolge durch das ersetzt, was der Benutzer für diesen Parameter eingibt. Beispielsweise könnte ein Befehl, der es dem Benutzer erlaubt, jeden Benutzer auf dem System zu fingern, wie finger $user aussehen .
  4. Standardmäßig wird der Befehl im Webmin-Verzeichnis für dieses Modul ausgeführt. Um dies zu ändern, deaktivieren Sie Standard für das Ausführen in Verzeichnis Feld und geben Sie einen anderen Pfad in das Textfeld daneben ein.
  5. Im Als Benutzer ausführen geben Sie den Namen des Unix-Benutzers ein, unter dem der Befehl ausgeführt werden soll. Sie können stattdessen Webmin-Benutzer auswählen, wodurch es als Unix-Benutzer mit demselben Namen wie der Webmin-Benutzer ausgeführt wird, der es ausführt. Wenn der Befehl ausgeführt wird, hat er normalerweise keinen Zugriff auf dieselben Umgebungsvariablen, die der Unix-Benutzer hätte, wenn er sich über Telnet oder SSH anmeldet. Wenn Sie jedoch Umgebung des Benutzers verwenden aktivieren Option sind dann alle Variablen, die in den .profile-, .cshrc- und anderen Anmeldedateien des Benutzers festgelegt sind, verfügbar. Webmin führt den Befehl mit su aus, das zum Benutzer wechselt, seine Shell ausführt und dann den Befehl ausführt.
  6. Wenn Ihr Befehl eine HTML-Ausgabe erzeugt, die bei seiner Ausführung im Browser angezeigt werden soll, ändern Sie das Feld *Befehl gibt HTML aus?* in Ja . Andernfalls maskiert Webmin alle HTML-Tags in der Ausgabe, was für Befehle, die nur normalen Text erzeugen, richtig ist.
  7. Um die Platzierung des neuen Befehls auf der Titelseite des Moduls zu steuern, geben Sie eine Zahl für die Bestellung auf der Hauptseite ein Möglichkeit. Befehle werden so geordnet, dass die mit der höchsten Nummer zuerst erscheinen. Wenn Standard gewählt wird, wird die Bestellnummer mit Null angenommen. Wenn Sie für einen Ihrer benutzerdefinierten Befehle keine Bestellnummer festlegen, werden sie in der Reihenfolge angezeigt, in der sie erstellt wurden.
  8. Um zu verhindern, dass der Benutzer sieht, dass der eigentliche Shell-Befehl ausgeführt wird, wenn auf seine Schaltfläche geklickt wird, setzen Sie das Feld *Befehl beim Ausführen ausblenden?* auf Ja . Dies ist eine gute Idee, wenn Ihr Befehl Kennwörter oder andere vertrauliche Informationen enthält, die Sie vor dem Benutzer verbergen möchten.
  9. Damit der Befehl im benutzerdefinierten Befehlsmodul von Usermin erscheint, ändern Sie die Verfügbar in Usermin? Feld auf Ja . Weitere Informationen zur Installation und Konfiguration von Usermin finden Sie unter UserminConfiguration.
  10. Wenn Sie möchten, dass Ihr Befehl Parameter hat, die der Benutzer auf der Hauptseite einstellen kann, müssen Sie die Befehlsparameter ausfüllen Sektion. Jede Zeile in der Tabelle in diesem Abschnitt definiert einen Parameter, und für jeden müssen die folgenden Informationen eingegeben werden :
    Name
    Ein kurzer eindeutiger Name für diesen Parameter, der im Befehl verwendet werden kann Feld (mit vorangestelltem $), um anzugeben, wo der vom Benutzer eingegebene Wert ersetzt werden soll. Der Name sollte nur aus Buchstaben, Ziffern und dem Zeichen _ bestehen.
    Beschreibung
    Der Text, der den Parameter auf der Hauptseite des Moduls bezeichnet. Dieser kann beliebige Zeichen inklusive HTML-Tags enthalten, sollte aber nicht zu lang sein.
    Typ
    Dieses Menü steuert, wie der Parameter auf der Hauptseite des Moduls angezeigt wird und welche Eingaben erlaubt sind. Die häufigste Wahl ist Text , aber alle verfügbaren Optionen und ihre Bedeutung werden in den Parametertypen behandelt Abschnitt unten.
    Quote-Parameter?
    Wenn auf Ja gesetzt , wird der vom Benutzer eingegebene Wert vor der Ersetzung in Anführungszeichen " gesetzt. Beim Erstellen eines neuen Befehls ist nur eine leere Zeile für die Eingabe eines einzelnen Parameters verfügbar. Um weitere hinzuzufügen, müssen Sie den Befehl nach dem Speichern erneut bearbeiten .
  11. Wenn Sie schließlich die Details Ihres neuen Befehls eingegeben haben, klicken Sie auf Erstellen Taste. Solange das Formular keine Fehler enthält, kehren Sie zur Hauptseite des Moduls zurück, auf der die neue Befehlsschaltfläche sichtbar sein sollte


Erstellen eines neuen benutzerdefinierten Befehls

Sobald ein Befehl erstellt wurde, können Sie ihn bearbeiten, indem Sie auf Befehl bearbeiten klicken Link darunter auf der Hauptseite des Moduls. Alle oben beschriebenen Felder können geändert und ein zusätzlicher Parameter hinzugefügt werden. Wenn Sie mit den Änderungen fertig sind, klicken Sie auf Speichern Schaltfläche unten auf der Seite. Oder um den Befehl loszuwerden, klicken Sie auf Löschen Schaltfläche stattdessen in der unteren rechten Ecke.

Parametertypen

Für jeden Parameter in einem Befehl können Sie einen Typ aus seinem Menü unter Typ auswählen Säule. Die verfügbaren Optionen und ihre Bedeutung sind :

Text
Texteingabefeld
args [Standardtext für Textfeld]
Benutzer
Benutzername-Eingabefeld
args [Standard-Benutzername für das Benutzerfeld]
UID
Benutzer-ID-Eingabefeld
args [Standard-Benutzer-ID für das UID-Feld]
Gruppe
Gruppenname-Eingabefeld
args [Standardname für das Gruppenfeld]
GID
Gruppen-ID-Eingabefeld
args [standardmäßige Gruppen-ID für das GID-Feld]
Datei
Datei (serverseitig) Eingabefeld auswählen
args [default /path/to/server/file]
Verzeichnis
Verzeichnis (Serverseite) Eingabefeld auswählen
args [default /path/to/server/directory/]
Option..
ja | no boolean field
args ["zu übergebender Wert, wenn Ja ausgewählt ist"]
Passwort
Passworteingabefeld
args [Standardpasswort]
Menü..
Optionsauswahlmenü-Eingabefeld
Argumente [/path/to/option/file.txt]
Menüoptionen sind in einer Datei aufgelistet. Geben Sie den Pfad und Dateinamen zur Datei /path/to/myMenu_options.txt im Feld Type parameter args an. Die Datei myMenu_options.txt enthält eine Option pro Zeile als "Schlüssel" "Wert". Der "Schlüssel" wird an Ihr benutzerdefiniertes Befehlsskript übergeben. Der "Wert" ist das, was dem Benutzer angezeigt wird.
Hochladen
Datei (Benutzerseite) Eingabefeld auswählen
args [Standardpfad/Datei]
Textfeld
textarea input field
args [Standardtext für Textfeld]
Multimenü..
verschachteltes Optionsauswahl-Eingabefeld
args Wie der Menütyp, aber erlaubt Mehrfachauswahl
Großes Multimenü..
komplexes verschachteltes Auswahleingabefeld
args Dasselbe wie Multi-Menü, aber groß genug, um alle Optionen anzuzeigen
Links-Rechts-Menü..
linkes <-> rechtes Menü-Widget
args Funktioniert wie das Multi-Menü, zeigt aber links Optionen und rechts ausgewählte Werte
Datum
Datumsauswahl-Eingabefeld
args [Standarddatum im Format JJJJ-MM-TT]
Senden-Schaltfläche
Befehlsschaltfläche senden
args Nur eine Schaltfläche

Erstellen eines neuen Dateieditors

Um eine neue Schaltfläche zur Bearbeitung einer Datei zur Hauptseite des Moduls hinzuzufügen, müssen Sie die folgenden Schritte ausführen :

  1. Klicken Sie auf Neuen Dateieditor erstellen Link über oder unter den vorhandenen Schaltflächen. Dadurch wird das im Bild unten gezeigte Editor-Erstellungsformular angezeigt.
  2. Geben Sie eine kurze Beschreibung für die zu bearbeitende Datei in die Beschreibung ein Feld. Der Text, den Sie eingeben, erscheint auf der Schaltfläche des Editors auf der Hauptseite. Sie können auch zusätzlichen Text (einschließlich HTML-Tags) in das größere Textfeld darunter eingeben, der unter der Schaltfläche angezeigt wird.
  3. Geben Sie den vollständigen Pfad zu der zu bearbeitenden Datei in das Feld *Zu bearbeitende Datei* ein. Die Datei muss noch nicht unbedingt existieren.
  4. Damit der Eigentümer der Datei beim Speichern geändert wird, setzen Sie das Feld *Dateieigentümer* auf Benutzer und geben Sie einen Unix-Benutzernamen und Gruppennamen in die Felder daneben ein. Dies ist besonders nützlich, wenn Sie eine noch nicht vorhandene Datei bearbeiten, damit die Eigentümerschaft der neu erstellten Datei richtig festgelegt wird. Wenn Sie das Feld auf Belassen eingestellt lassen , wird der Eigentümer der Datei beim Speichern nicht geändert. Neu erstellte Dateien gehören root.
  5. Um die Zugriffsberechtigungen der Datei beim Speichern zu ändern, legen Sie die Dateiberechtigungen fest Feld auf auf oktal setzen und geben Sie die Berechtigungen ein (wie 700 oder 664 ) in das Feld daneben. Wählen Sie Beibehalten aus , werden die Berechtigungen der Datei beim Speichern nicht geändert. Die Berechtigungen für neu erstellte Dateien hängen von der umask der Webmin-Prozesse ab.
  6. Um einen Befehl auszuführen, kurz bevor die Datei vom Benutzer gespeichert wird, füllen Sie das Feld *Auszuführender Befehl vor dem Speichern * aus. Dies kann nützlich sein, um eine Sicherungskopie zu erstellen, die Datei aus RCS auszuchecken oder alles andere, was Ihnen einfällt.
  7. Um einen Befehl gleich nach dem Speichern der Datei auszuführen, füllen Sie das Feld C*Befehl zum Ausführen nach dem Speichern* aus. Dies kann nützlich sein, um den Inhalt der Datei zu validieren, sie auf ein anderes System zu kopieren oder sie wieder in RCS einzuchecken.
  8. Um die Platzierung der Schaltfläche des neuen Editors auf der Titelseite des Moduls zu steuern, geben Sie eine Zahl für die Option *Auf Hauptseite bestellen* ein. Befehle und Editoren sind so geordnet, dass die mit der höchsten Nummer zuerst erscheinen. Wenn Standard gewählt wird, wird die Bestellnummer mit Null angenommen. Wenn Sie für keinen Ihrer Datei-Editoren die Bestellnummer festlegen, werden sie in der Reihenfolge angezeigt, in der sie erstellt wurden.
  9. Damit der Editor im benutzerdefinierten Befehlsmodul von Usermin erscheint, ändern Sie die Verfügbar in Usermin? Feld auf Ja . Weitere Informationen zur Installation und Konfiguration von Usermin finden Sie unter UserminConfiguration.
  10. Klicken Sie abschließend auf Speichern Taste. Wenn das Formular keine Fehler enthält, kehren Sie zur Hauptseite des Moduls zurück, die eine Schaltfläche für den neuen Editor enthält.


Erstellen eines neuen Dateieditors

Sobald ein Editor erstellt wurde, können Sie ihn bearbeiten, indem Sie auf der Hauptseite des Moduls auf den Link *Dateieditor bearbeiten * darunter klicken. Wenn Sie mit den Änderungen fertig sind, klicken Sie auf Speichern Schaltfläche unten auf der Seite. Oder um den Editor loszuwerden, klicken Sie auf Löschen Schaltfläche stattdessen in der unteren rechten Ecke.

Modulzugriffskontrolle

Die Zugriffssteuerungsoptionen im Modul "Benutzerdefinierte Befehle" sind so konzipiert, dass sie es einem Master-Webmin-Benutzer ermöglichen, anderen Benutzern die Rechte zum Ausführen ausgewählter Befehle zu erteilen, sie jedoch nicht zu bearbeiten oder zu erstellen. Aus Sicherheitsgründen macht es keinen Sinn, einem nicht vertrauenswürdigen Benutzer die Berechtigung zum Erstellen eigener benutzerdefinierter Befehle zu erteilen, da dies ihm erlauben würde, jeden Befehl als Root auszuführen und so die Sicherheit des gesamten Systems zu gefährden. Ebenso können Sie die Datei-Editoren einschränken, die ein Webmin-Benutzer verwenden kann, und ihn daran hindern, neue Editoren zu erstellen.

Nachdem Sie einen Benutzer oder eine Gruppe mit Zugriff auf das Modul „Benutzerdefinierte Befehle“ erstellt haben (wie in Kapitel 52 erläutert), gehen Sie wie folgt vor, um seinen Zugriff einzuschränken:

  1. Klicken Sie im Webmin-Benutzermodul neben dem Namen des Benutzers oder der Gruppe, dem Sie Zugriff gewähren möchten, auf Benutzerdefinierte Befehle. Dadurch wird das Zugriffskontrollformular für das Modul angezeigt.
  2. Ändern Sie die Modulkonfiguration bearbeiten? Feld auf Nein .
  3. Sofern Sie nicht möchten, dass der Benutzer alle Befehle ausführen und alle Editoren verwenden kann, legen Sie die Befehle, die dieser Benutzer ausführen kann fest Feld auf Ausgewählt und wählen Sie aus der Liste unten diejenigen aus, die er verwenden darf. Alternativ können Sie *Alle außer ausgewählten* wählen und aus der Liste die Befehle auswählen, die er nicht verwenden darf. Alle anderen stehen ihm zur Verfügung.
  4. Ändern Sie die Kann Befehle erstellen und bearbeiten? Feld auf Nein .
  5. Klicken Sie auf Speichern Taste. Die Zugriffskontrolleinstellungen werden aktiviert und Sie kehren zur Hauptseite des Webmin-Benutzermoduls zurück.

Wenn Sie einer großen Anzahl von Benutzern Zugriff auf ausgewählte benutzerdefinierte Befehle und Editoren gewähren möchten, ist die Installation von Usermin möglicherweise eine bessere Lösung, die es jedem Unix-Benutzer ermöglicht, sich anzumelden. Jeder Befehl, für den er in Usermin verfügbar ist? Feld auf Ja gesetzt ist wird im benutzerdefinierten Befehlsmodul von Usermin sichtbar sein und auf genau die gleiche Weise funktionieren. Siehe Usermin-Konfiguration für weitere Informationen über Usermin und wie es konfiguriert werden kann, um zu beschränken, welche Unix-Benutzer benutzerdefinierte Befehle ausführen können.


Webmin
  1. Geplante Befehle

  2. Benutzerdefinierte Befehle

  3. A bis Z Linux-Befehle

  4. Linux-Echo-Befehl

  5. 25 grundlegende Ubuntu-Befehle

So führen Sie Linux-Befehle im Hintergrund aus

Grundlegende Linux-Befehle

Linux-Befehle - Vollständiges Handbuch

So führen Sie mehrere Linux-Befehle in einem einzigen Befehl aus

So führen Sie mehrere Linux-Befehle gleichzeitig im Linux-Terminal aus

Führen Sie Befehle mit einem Zeitlimit in Ubuntu 20.04 aus