GNU/Linux >> Tutoriels Linux >  >> Panels >> Webmin

Commandes personnalisées

Cette page couvre le module de commandes personnalisées de Webmin, qui peut être utilisé pour créer des boutons pour exécuter des commandes shell fréquemment utilisées.

Contenu

Le module de commandes personnalisées

La plupart des administrateurs système aiment créer des scripts shell pour effectuer des tâches courantes, comme la sauvegarde d'une base de données ou l'ajout d'un nouvel utilisateur quelconque. Parce que chaque système et organisation est différent, il y aura toujours des tâches qu'un outil généralisé comme Webmin ne peut pas faire aussi facilement qu'un simple script personnalisé. Malheureusement, les scripts exécutés en ligne de commande ne sont pas faciles à utiliser pour un utilisateur inexpérimenté.

Le module Commandes personnalisées vous permet de créer des interfaces Web simples pour les scripts et commandes shell, afin qu'ils puissent être exécutés depuis Webmin en un clic. Il vous permet également de définir des paramètres de différents types pour chaque commande qui peuvent être entrés par l'utilisateur et substitués dans la commande shell. Cela peut être utilisé pour fournir des arguments ou des entrées supplémentaires aux scripts qui sont exécutés, en fonction des sélections effectuées par l'utilisateur avant de l'exécuter.

Une autre caractéristique du module est la possibilité de définir des éditeurs de fichiers, de sorte que les fichiers fréquemment modifiés puissent être modifiés via l'interface Web de Webmin. Vous pouvez également définir des commandes à exécuter avant et après l'édition du fichier, afin qu'il puisse être validé, copié ou sauvegardé avant l'édition.

La fonctionnalité la plus utile du module est peut-être sa prise en charge du contrôle d'accès. Vous pouvez accorder à d'autres utilisateurs Webmin les droits d'utiliser tout ou partie des commandes et des éditeurs, tout en ne donnant qu'à vous-même et à d'autres administrateurs de confiance les autorisations de créer et de modifier des commandes. Cela signifie que les autres utilisateurs peuvent uniquement exécuter les scripts et modifier les fichiers que vous leur autorisez, mais sans les privilèges root complets.

Contrairement à la plupart des autres modules, celui-ci ne traite pas de la configuration d'un serveur ou d'un service séparé. Par conséquent, il a exactement la même interface utilisateur et les mêmes fonctionnalités sur toutes les versions d'Unix sur lesquelles Webmin peut s'exécuter.

Lorsque vous entrez dans le module à partir de la catégorie Autres, sa page principale affiche toutes les commandes personnalisées existantes et les éditeurs de fichiers, ainsi que leurs paramètres. La capture d'écran ci-dessous montre un exemple d'un système avec 1 éditeur de fichiers et 8 commandes définies, dont deux ont un paramètre. Si vous n'avez jamais utilisé le module auparavant, la page sera cependant vide.


Le module Commandes personnalisées

Vous pouvez exécuter n'importe quelle commande affichée sur la page principale en cliquant simplement sur son bouton. Cependant, si la commande comporte des champs de paramètres ou des choix, vous devez les remplir ou effectuer les sélections appropriées avant de l'exécuter. Lorsque le bouton est cliqué, vous serez redirigé vers une page affichant toutes les sorties de la commande, afin que vous puissiez voir si elle a réussi ou échoué.

Pour utiliser un éditeur de fichiers, cliquez simplement sur son bouton sur la page principale. Cela vous mènera à un formulaire d'édition montrant le contenu actuel du fichier, que vous pouvez modifier librement. Une fois terminé, cliquez sur Enregistrer sous la zone de texte pour écrire le nouveau contenu du fichier.

Créer une nouvelle commande

Pour créer une nouvelle commande pouvant être exécutée à l'aide d'un bouton sur la page principale du module, les étapes à suivre sont :

  1. Cliquez sur Créer une nouvelle commande personnalisée lien au-dessus ou au-dessous des boutons existants. Cela fera apparaître le formulaire de création illustré dans l'image ci-dessous.
  2. Entrez une courte description de votre commande dans la Description domaine. Quel que soit le texte que vous entrez, il apparaîtra sur le bouton de la commande sur la page principale. Vous pouvez également saisir du texte supplémentaire (y compris des balises HTML) dans la zone de texte plus grande en dessous, à afficher sous le bouton.
  3. Dans la Commande , entrez le script shell ou la commande que vous souhaitez exécuter. Tous les métacaractères standard du shell {| border="1" |- sont pris en charge, tels que ||, &, . Pour saisir plusieurs commandes, |} séparez-les par   ; ou alors &&. Si votre commande a des paramètres (définis à l'étape 10), ils seront convertis en variables d'environnement lors de l'exécution de la commande. Donc, si vous avez un paramètre appelé foo, toutes les occurrences de $foo dans la chaîne de commande seront remplacées par ce que l'utilisateur entrera pour ce paramètre. Par exemple, une commande permettant à l'utilisateur de toucher n'importe quel utilisateur du système peut ressembler à finger $user .
  4. Par défaut, la commande s'exécutera dans le répertoire Webmin de ce module. Pour changer cela, désélectionnez Par défaut pour le répertoire Exécuter dans champ et entrez un chemin différent dans la zone de texte à côté de celui-ci.
  5. Dans la section Exécuter en tant qu'utilisateur , entrez le nom de l'utilisateur Unix sous lequel la commande doit être exécutée. Vous pouvez sélectionner l'utilisateur Webmin à la place, ce qui entraînera son exécution en tant qu'utilisateur Unix portant le même nom que l'utilisateur Webmin qui l'exécute. Lorsque la commande est exécutée, elle n'aura normalement pas accès aux mêmes variables d'environnement que l'utilisateur Unix aurait s'il se connectait via telnet ou SSH. Cependant, si vous cochez la case Utiliser l'environnement de l'utilisateur alors toutes les variables définies dans les fichiers .profile, .cshrc et autres fichiers de connexion de l'utilisateur seront disponibles. Webmin exécute la commande avec su, qui passe à l'utilisateur, exécute son shell puis exécute la commande.
  6. Si votre commande produit une sortie HTML que vous souhaitez voir apparaître dans le navigateur lors de son exécution, définissez le champ *Command outputs HTML?* sur Oui . Sinon, Webmin échappera toutes les balises HTML dans la sortie, ce qui est la bonne chose à faire pour les commandes qui produisent uniquement du texte normal.
  7. Pour contrôler l'emplacement de la nouvelle commande sur la page d'accueil du module, saisissez un numéro pour la Commande sur la page principale option. Les commandes sont classées de manière à ce que celles qui portent le numéro le plus élevé apparaissent en premier. Si par défaut est choisi, le numéro de commande est pris égal à zéro. Si vous ne définissez pas de numéro de commande pour l'une de vos commandes personnalisées, elles seront affichées dans l'ordre dans lequel elles ont été créées.
  8. Pour empêcher l'utilisateur de voir la commande shell en cours d'exécution lorsque son bouton est cliqué, définissez le champ *Masquer la commande lors de l'exécution ?* sur Oui . C'est une bonne idée si votre commande contient des mots de passe ou d'autres informations sensibles que vous souhaitez cacher à l'utilisateur.
  9. Pour que la commande apparaisse dans le module Commandes personnalisées d'Usermin, modifiez le Disponible dans Usermin ? champ sur Oui . Voir UserminConfiguration pour plus d'informations sur l'installation et la configuration de Usermin.
  10. Si vous souhaitez que votre commande ait des paramètres que l'utilisateur peut définir sur la page principale, vous devez remplir les Paramètres de la commande section. Chaque ligne du tableau de cette section définit un paramètre, et pour chacun, les informations suivantes doivent être saisies :
    Nom
    Un nom court et unique pour ce paramètre, qui peut être utilisé dans la commande champ (préfixé par un $) pour indiquer où la valeur saisie par l'utilisateur doit être substituée. Le nom doit être composé uniquement de lettres, de chiffres et du caractère _.
    Description
    Le texte qui étiquettera le paramètre sur la page principale du module. Il peut contenir n'importe quel caractère, y compris des balises HTML, mais ne doit pas être trop long.
    Tapez
    Ce menu contrôle la façon dont le paramètre est affiché sur la page principale du module, et quelles entrées sont autorisées. Le choix le plus courant est Texte , mais toutes les options disponibles et leurs significations sont couvertes dans les Types de paramètres ci-dessous.
    Paramètre de citation ?
    Si défini sur Oui , la valeur saisie par l'utilisateur sera entre guillemets avec des caractères " avant substitution. Lors de la création d'une nouvelle commande, une seule ligne vide pour la saisie d'un seul paramètre est disponible. Pour en ajouter d'autres, vous devrez rééditer la commande après l'avoir enregistrée .
  11. Enfin, lorsque vous avez terminé d'entrer les détails de votre nouvelle commande, cliquez sur Créer bouton. Tant qu'il n'y a pas d'erreurs dans le formulaire, vous serez renvoyé à la page principale du module sur laquelle le nouveau bouton de commande devrait être visible


Créer une nouvelle commande personnalisée

Une fois qu'une commande a été créée, vous pouvez la modifier en cliquant sur Modifier la commande lien en dessous sur la page principale du module. Tous les champs décrits ci-dessus peuvent être modifiés et un paramètre supplémentaire ajouté. Une fois que vous avez terminé d'apporter des modifications, cliquez sur Enregistrer bouton en bas de la page. Ou pour vous débarrasser de la commande, cliquez sur Supprimer bouton dans le coin inférieur droit à la place.

Types de paramètres

Pour chaque paramètre d'une commande, vous pouvez choisir un type dans son menu sous le Type colonne. Les options disponibles et leurs significations sont :

Texte
champ de saisie de texte
args [texte par défaut pour le champ de texte]
Utilisateur
champ de saisie du nom d'utilisateur
args [nom d'utilisateur par défaut pour le champ utilisateur]
UID
champ de saisie de l'ID utilisateur
args [ID utilisateur par défaut pour le champ UID]
Groupe
champ de saisie du nom de groupe
args [nom par défaut du champ de groupe]
GID
champ de saisie de l'ID de groupe
args [ID de groupe par défaut pour le champ GID]
Fichier
fichier (côté serveur) sélectionnez le champ de saisie
args [default /path/to/server/file]
Répertoire
répertoire (côté serveur) sélectionnez le champ de saisie
args [default /path/to/server/directory/]
Option..
oui | pas de champ booléen
args ["valeur à passer si Oui est sélectionné"]
Mot de passe
champ de saisie du mot de passe
args [mot de passe par défaut]
Menu..
option select menu input field
args [/path/to/option/file.txt]
les options de menu sont listées dans un fichier. Indiquez le chemin et le nom de fichier du fichier /path/to/myMenu_options.txt dans le champ Type parameters args. Le fichier myMenu_options.txt contient une option par ligne comme "clé" "valeur". La "clé" est ce qui est passé à votre script de commande personnalisé. La "valeur" est ce qui est affiché à l'utilisateur.
Télécharger
fichier (côté utilisateur) sélectionnez le champ de saisie
args [chemin/fichier par défaut]
Zone de texte
champ de saisie textarea
args [texte par défaut pour la zone de texte]
Multi-menus..
champ de saisie de sélection d'options imbriquées
args Comme le type de menu, mais permet plusieurs sélections
Grand menu multiple..
champ de saisie de sélection imbriqué complexe
args Identique au menu multiple, mais suffisamment grand pour afficher toutes les options
Menu gauche-droite..
widget de menu gauche <-> droit
args Fonctionnellement identique à Multi Menu, mais affiche les options à gauche et les valeurs sélectionnées à droite
Date
date select input field
args [date par défaut au format AAAA-MM-JJ]
Bouton Soumettre
soumettre le bouton de commande
args Juste un bouton

Créer un nouvel éditeur de fichiers

Pour ajouter un nouveau bouton à la page principale du module pour éditer un fichier, vous devez suivre ces étapes :

  1. Cliquez sur Créer un nouvel éditeur de fichier lien au-dessus ou au-dessous des boutons existants. Cela fera apparaître le formulaire de création d'éditeur illustré dans l'image ci-dessous.
  2. Entrez une courte description du fichier à modifier dans la Description domaine. Quel que soit le texte que vous entrez, il apparaîtra sur le bouton de l'éditeur sur la page principale. Vous pouvez également saisir du texte supplémentaire (y compris des balises HTML) dans la zone de texte plus grande en dessous, à afficher sous le bouton.
  3. Saisissez le chemin complet du fichier à modifier dans le champ *Fichier à modifier*. Le fichier ne doit pas nécessairement exister encore.
  4. Pour que le propriétaire du fichier soit modifié lors de son enregistrement, définissez le champ *Propriété du fichier* sur Utilisateur et entrez un nom d'utilisateur Unix et un nom de groupe dans les champs à côté. Ceci est particulièrement utile lors de l'édition d'un fichier qui n'existe pas encore, afin que la propriété du fichier nouvellement créé soit correctement définie. Si vous laissez le champ défini sur Laisser tel quel , la propriété du fichier ne sera pas modifiée lors de son enregistrement. Les fichiers nouvellement créés appartiendront à root.
  5. Pour que les autorisations d'accès au fichier soient modifiées lors de son enregistrement, définissez les Autorisations du fichier champ à Définir sur octal et entrez les autorisations (comme 700 ou 664 ) dans le champ à côté. A vous de sélectionner Laisser tel quel , les autorisations du fichier ne seront pas modifiées lors de son enregistrement. Les autorisations sur les fichiers nouvellement créés dépendent de l'umask des processus Webmin.
  6. Pour qu'une commande soit exécutée juste avant que le fichier ne soit enregistré par l'utilisateur, remplissez le champ *Commande à exécuter avant l'enregistrement *. Cela peut être utile pour faire une copie de sauvegarde, vérifier le fichier de RCS ou toute autre chose que vous pouvez trouver.
  7. De même, pour qu'une commande s'exécute juste après l'enregistrement du fichier, remplissez le champ C*ommand to run after saving*. Cela peut être utile pour valider le contenu du fichier, le copier sur un autre système ou le réintégrer dans RCS.
  8. Pour contrôler l'emplacement du bouton du nouvel éditeur sur la page d'accueil du module, saisissez un numéro pour l'option *Commander sur la page principale*. Les commandes et les éditeurs sont classés de manière à ce que ceux dont le numéro est le plus élevé apparaissent en premier. Si par défaut est choisi, le numéro de commande est pris égal à zéro. Si vous ne définissez pas de numéro de commande pour l'un de vos éditeurs de fichiers, ils seront affichés dans l'ordre dans lequel ils ont été créés.
  9. Pour que l'éditeur apparaisse dans le module de commandes personnalisées d'Usermin, modifiez le Disponible dans Usermin ? champ sur Oui . Voir UserminConfiguration pour plus d'informations sur l'installation et la configuration de Usermin.
  10. Enfin, cliquez sur Enregistrer bouton. S'il n'y a pas d'erreurs dans le formulaire, vous serez renvoyé à la page principale du module qui comprendra un bouton pour le nouvel éditeur.


Créer un nouvel éditeur de fichiers

Une fois qu'un éditeur a été créé, vous pouvez le modifier en cliquant sur le lien *Modifier l'éditeur de fichier *en dessous sur la page principale du module. Une fois que vous avez terminé d'apporter des modifications, cliquez sur Enregistrer bouton en bas de la page. Ou pour vous débarrasser de l'éditeur, cliquez sur Supprimer bouton dans le coin inférieur droit à la place.

Contrôle d'accès aux modules

Les options de contrôle d'accès dans le module Commandes personnalisées sont conçues pour permettre à un utilisateur principal de Webmin de donner à d'autres utilisateurs le droit d'exécuter des commandes sélectionnées, mais pas de les modifier ou de les créer. Du point de vue de la sécurité, cela n'a aucun sens de donner à un utilisateur non approuvé des autorisations pour créer ses propres commandes personnalisées, car cela lui permettrait d'exécuter n'importe quelle commande en tant que root et ainsi de compromettre la sécurité de l'ensemble du système. De même, vous pouvez restreindre les éditeurs de fichiers qu'un utilisateur Webmin peut utiliser et l'empêcher de créer de nouveaux éditeurs.

Une fois que vous avez créé un utilisateur ou un groupe ayant accès au module Commandes personnalisées (comme expliqué au chapitre 52), les étapes à suivre pour limiter son accès sont :

  1. Dans le module Utilisateurs Webmin, cliquez sur Commandes personnalisées à côté du nom de l'utilisateur ou du groupe auquel vous souhaitez accorder l'accès. Cela fera apparaître le formulaire de contrôle d'accès pour le module.
  2. Modifier le Peut modifier la configuration du module ? champ sur Non .
  3. À moins que vous ne souhaitiez que l'utilisateur puisse exécuter toutes les commandes et utiliser tous les éditeurs, définissez les Commandes que cet utilisateur peut exécuter champ à Sélectionné et choisissez ceux qu'il devrait être autorisé à utiliser dans la liste ci-dessous. Alternativement, vous pouvez choisir *Tous sauf sélectionnés* et sélectionner dans la liste les commandes qu'il ne devrait pas être autorisé à utiliser. Tous les autres seront à sa disposition.
  4. Modifiez le Peut créer et modifier des commandes ? champ sur Non .
  5. Cliquez sur Enregistrer bouton. Les paramètres de contrôle d'accès seront activés et vous serez renvoyé à la page principale du module Utilisateurs Webmin.

Si vous souhaitez accorder l'accès aux commandes et éditeurs personnalisés sélectionnés à un grand nombre d'utilisateurs, une meilleure solution peut être d'installer Usermin, qui permet à tout utilisateur Unix de se connecter. Toute commande pour laquelle il est Disponible dans Usermin ? le champ est défini sur Oui sera visible dans le module de commandes personnalisées d'Usermin et fonctionnera exactement de la même manière. Voir Configuration de Usermin pour plus d'informations sur Usermin et comment il peut être configuré pour limiter les utilisateurs Unix qui peuvent exécuter des commandes personnalisées.


Webmin
  1. Commandes Linux de A à Z

  2. Commandes Linux de base

  3. Commande d'écho Linux

  4. Commandes python-novaclient utiles

  5. Comprendre les commandes Linux de base

Comment exécuter des commandes Linux en arrière-plan

Commandes Linux de base

Commandes Linux - Guide complet

Comment exécuter plusieurs commandes Linux en une seule commande

Comment exécuter plusieurs commandes Linux à la fois dans le terminal Linux

Exécuter des commandes avec une limite de temps dans Ubuntu 20.04