{"id":359,"date":"2025-11-14T08:56:49","date_gmt":"2025-11-14T08:56:49","guid":{"rendered":"https:\/\/abilit.eu\/?page_id=359"},"modified":"2025-11-14T10:15:37","modified_gmt":"2025-11-14T10:15:37","slug":"webmin-usermin","status":"publish","type":"page","link":"https:\/\/abilit.eu\/index.php\/webmin-usermin\/","title":{"rendered":"Webmin\/Usermin"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Webmin est un outil bas\u00e9 sur Perl, permettant l&#8217;administration tr\u00e8s compl\u00e8te d&#8217;un syst\u00e8me informatique. Il existe depuis 1997, et est actuellement en version 2600, donc un projet toujours tr\u00e8s actif.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il fonctionne sur Linux (RHEL, Fedora, CentOS, OpenSUSE, AlmaLinux, Rocky Linux, Oracle Linux, Debian, Ubuntu, Mint, LMDE, &#8230;) mais aussi sur BSD, <a href=\"https:\/\/ipv6.rs\/tutorial\/macOS\/Webmin\/\" target=\"_blank\" rel=\"noreferrer noopener\">MacOS<\/a>, AIX et autres Unix. Je l&#8217;ai fait tourner, en son temps, sur SunOS et <a href=\"https:\/\/technopark02.blogspot.com\/2005\/09\/setting-up-webmin-on-solaris-10.html\" data-type=\"link\" data-id=\"https:\/\/technopark02.blogspot.com\/2005\/09\/setting-up-webmin-on-solaris-10.html\" target=\"_blank\" rel=\"noreferrer noopener\">Solaris<\/a>, ainsi que sur HP-UX \u00e9galement. Il semblerait qu&#8217;il y a eu une version pour Windows, \u00e0 l&#8217;\u00e9poque de XP, mais beaucoup moins mature que la branche Unix, et qui a disparu aujourd&#8217;hui.<br><br>L&#8217;outil pr\u00e9sente une interface <strong>strictement web<\/strong>, parfaitement compatible avec tout type de browser (aucun plug-in sp\u00e9cifique \u00e0 charger). Le service est, par d\u00e9faut, accessible sur le port 10.000, via http ou https.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"764\" height=\"167\" src=\"https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-41.png\" alt=\"\" class=\"wp-image-360\" srcset=\"https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-41.png 764w, https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-41-300x66.png 300w\" sizes=\"auto, (max-width: 764px) 100vw, 764px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">L&#8217;acc\u00e8s \u00e0 <strong>Webmin<\/strong> est strictement limit\u00e9 \u00e0 des utilisateurs <strong>disposant d&#8217;un compte Webmin<\/strong>. Le seul compte actif lors de l&#8217;installation est &#8220;root&#8221;, avec pour authentifiant, le mot de passe du compte root du syst\u00e8me sous-jacent.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cette situation peut \u00eatre totalement modifi\u00e9e: on peut cr\u00e9er des comptes Webmin correspondant ou non \u00e0 des comptes Unix locaux, supprimer ce compte &#8220;root&#8221;, etc&#8230; Il est juste un peu compliqu\u00e9 de se loguer, la premi\u00e8re fois, si le compte local &#8220;root&#8221; n&#8217;a pas de password configur\u00e9, ou si un login sur ce compte &#8220;en direct&#8221; n&#8217;est pas autoris\u00e9, mais \u00e7a peut se corriger.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"501\" src=\"https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-42-1024x501.png\" alt=\"\" class=\"wp-image-363\" srcset=\"https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-42-1024x501.png 1024w, https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-42-300x147.png 300w, https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-42-768x376.png 768w, https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-42-1536x751.png 1536w, https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-42.png 1918w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Le service web est int\u00e9gr\u00e9 dans le logiciel. Donc il ne d\u00e9pend pas d&#8217;un service tiers, genre Apache ou Nginx. C&#8217;est pratique lorsqu&#8217;on d\u00e9sire g\u00e9rer un serveur web local, justement&#8230;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Point de vue s\u00e9curit\u00e9, il tourne sur plein de machine expos\u00e9es \u00e0 l&#8217;Internet, mais il reste prudent, \u00e0 priori, d&#8217;en restreindre l&#8217;acc\u00e8s \u00e0 tout hasard, par exemple en ne permettant l&#8217;acc\u00e8s au port 10.000 qu&#8217;\u00e0 certaines adresses IP sources, ou via un VPN, voir via une connexion locale (un tunnel TCP dans une session SSH, &#8230;)<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"501\" src=\"https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-43-1024x501.png\" alt=\"\" class=\"wp-image-365\" srcset=\"https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-43-1024x501.png 1024w, https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-43-300x147.png 300w, https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-43-768x376.png 768w, https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-43-1536x751.png 1536w, https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-43.png 1918w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Le but n&#8217;\u00e9tant pas d&#8217;administrer la machine (mais c&#8217;est un excellent outil pour ce faire) je vais en rester l\u00e0 concernant Webmin pour le moment.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Usermin.<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Usermin est une sorte de &#8220;petit fr\u00e8re&#8221; de Webmin, destin\u00e9 non pas \u00e0 l&#8217;administration de la machine, mais \u00e0 des <strong>utilisateurs<\/strong> du serveur. Les personnes qui peuvent se connecter via Usermin sont, par d\u00e9faut, tous les comptes &#8220;users&#8221; du syst\u00e8me sous-jacent. Mais on peut mettre toutes les restrictions souhaitables, via la page ad-hoc de Webmin, qui s&#8217;appelle &#8220;Usermin Configuration&#8221;\/&#8221;Allowed Users and Groups&#8221;.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"321\" height=\"350\" src=\"https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-46.png\" alt=\"\" class=\"wp-image-368\" srcset=\"https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-46.png 321w, https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-46-275x300.png 275w\" sizes=\"auto, (max-width: 321px) 100vw, 321px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">On peut aussi d\u00e9cider de quel(s) module(s) chaque utilisateur pourra acc\u00e9der ou non. On peut aussi d\u00e9finir certains modules de Usermin qui seront accessibles <strong>anonymement<\/strong>. On peut donc faire du contr\u00f4le d&#8217;acc\u00e8s aux fonctionnalit\u00e9s offertes par Usermin, via l&#8217;interface d&#8217;administration Webmin.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le service Usermin tourne, par d\u00e9faut, sur le port 20.000, en http ou https.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un exemple d&#8217;interface Usermin accessible sans devoir s&#8217;authentifier est visible ici:<br><a href=\"https:\/\/bookings.intertel.club\/custom2\/form.cgi?id=1714560152\">https:\/\/bookings.intertel.club\/custom2\/form.cgi?id=1714560152<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On peut \u00e9videmment configurer un alias, pour avoir une URL &#8220;plus sexy&#8221;, via Apache ou Nginx (reverse proxy).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Les modules disponibles sous Usermin sont donc bien plus restreints que sous Webmin: pas d&#8217;administration du syst\u00e8me. Plut\u00f4t des outils permettant d&#8217;acc\u00e9der \u00e0 des fichiers, de configurer des \u00e9v\u00e9nements r\u00e9currents, d&#8217;acc\u00e9der \u00e0 sa mailbox, etc&#8230;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"501\" src=\"https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-44-1024x501.png\" alt=\"\" class=\"wp-image-366\" srcset=\"https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-44-1024x501.png 1024w, https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-44-300x147.png 300w, https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-44-768x376.png 768w, https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-44-1536x752.png 1536w, https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-44.png 1918w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Parmi les innombrables modules disponibles sous Webmin\/Usermin, celui qui nous int\u00e9resse ici est &#8220;Custom Commands&#8221;. Comme son nom l&#8217;indique, il permet de d\u00e9finir des commandes personnalis\u00e9es, toujours simplement \u00e0 travers une simple interface web.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Toute la puissance du module &#8220;Custom Commands&#8221; est qu&#8217;il est tr\u00e8s g\u00e9n\u00e9rique. A travers l&#8217;interface Webmin, on peut le cloner (donc cr\u00e9er autant d&#8217;\u00e9crans &#8220;Custom Commands&#8221; que n\u00e9cessaire), renommer les clones (donc donner des noms explicites \u00e0 ces \u00e9crans), les regrouper dans divers onglets, \u00e9galement configurables directement via l&#8217;interface web.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On aboutit alors \u00e0 quelque-chose du genre:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"261\" height=\"194\" src=\"https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-47.png\" alt=\"\" class=\"wp-image-369\"\/><\/figure>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\">Voici donc une nouvelle cat\u00e9gorie dans Webmin\/Usermin, qui s&#8217;appelle &#8220;GateKeeper&#8221;, notre solution de gestion de centre de recyclage.<\/p>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\">Chaque ligne en dessous correspond \u00e0 un \u00e9cran contenant tous les clones du module &#8220;Custom Commands&#8221; (ou autres modules, au choix) qu&#8217;on y aura mis.<br>Par exemple:<\/p>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\"><\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"260\" height=\"190\" src=\"https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-48.png\" alt=\"\" class=\"wp-image-370\"\/><\/figure>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\">Sous cette cat\u00e9gorie &#8220;GateKeeper Locks&#8221;, on trouve:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"183\" src=\"https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-49-1024x183.png\" alt=\"\" class=\"wp-image-371\" srcset=\"https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-49-1024x183.png 1024w, https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-49-300x53.png 300w, https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-49-768x137.png 768w, https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-49.png 1352w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\">Chaque ligne correspond \u00e0 un clone du module &#8220;Custom Commands&#8221;, renomm\u00e9 pour correspondre \u00e0 son usage.<\/p>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\">A noter que, puisque nous sommes ici sous <strong>Webmin<\/strong>, avec un login d&#8217;administrateur, nous voyons les options de designer de ces commandes: <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Create new custom command<\/li>\n\n\n\n<li>Edit<\/li>\n\n\n\n<li>&#8230;<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Si on clique sur une de ces commandes, on entre dans le formulaire typique d&#8217;une &#8220;Custom Command&#8221;:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"263\" src=\"https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-50-1024x263.png\" alt=\"\" class=\"wp-image-372\" srcset=\"https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-50-1024x263.png 1024w, https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-50-300x77.png 300w, https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-50-768x197.png 768w, https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-50.png 1355w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">On a affaire \u00e0 des champs libres, ou de type &#8220;pull-down menus&#8221;, ou des champs de type &#8220;date&#8221;, ou des menus \u00e0 choix multiples, des cases cochables, etc&#8230;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Une fois tous les param\u00e8tres souhait\u00e9s introduits (certains champs peuvent \u00eatre <strong>obligatoires<\/strong>, d&#8217;autres non), on clique sur &#8220;Ex\u00e9cuter&#8221; et la commande li\u00e9e \u00e0 cet \u00e9cran s&#8217;ex\u00e9cute. Le r\u00e9sultat, qui peut \u00eatre du &#8220;simple texte&#8221; ou un r\u00e9sultat structur\u00e9 en HTML, est affich\u00e9 dans le web browser, comme par exemple:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"436\" height=\"410\" src=\"https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-51.png\" alt=\"\" class=\"wp-image-373\" srcset=\"https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-51.png 436w, https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-51-300x282.png 300w\" sizes=\"auto, (max-width: 436px) 100vw, 436px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Typiquement, derri\u00e8re ce type d&#8217;\u00e9cran se cache un simple programme, \u00e9crit dans le langage de son choix (ici c&#8217;est tout simplement g\u00e9n\u00e9ralement du BASH script), pouvant donc faire appel \u00e0 tout type de commande, dont des requ\u00eates SQL.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour voir de quoi on parle, il suffit de cliquer sur &#8220;Edit&#8221;. On entre alors dans le module en mode &#8220;programmeur&#8221;:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"616\" src=\"https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-52-1024x616.png\" alt=\"\" class=\"wp-image-374\" srcset=\"https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-52-1024x616.png 1024w, https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-52-300x180.png 300w, https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-52-768x462.png 768w, https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-52.png 1352w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">On voit ici qu&#8217;il est tr\u00e8s simple de donner un nom \u00e0 cette &#8220;Custom Command&#8221;, que ce qui est ex\u00e9cut\u00e9 est un simple script (&#8220;<em>~\/bin\/ViewLockTypes.sh<\/em>&#8220;), qu&#8217;on peut pr\u00e9ciser sous quels droits cette commande s&#8217;ex\u00e9cute, dans quel environnement, quel r\u00e9pertoire, combien de temps elle doit prendre au maximum, etc&#8230;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On peut aussi lui ajouter des param\u00e8tres, de divers types, qui sont pass\u00e9s par variables environnementales.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le script est ici tr\u00e8s simple:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>#!\/bin\/bash\n\ncat &lt;&lt; eof\n&lt;style>\n   table { padding-right: 10px; padding-left: 10px; \n}\ntd { vertical-align: top; \n     text-align: left;\n}\nth {\n     text-align: left;\n     border-left:   50px solid white;\n     border-right:  50px solid white;\n     padding-left:  50px solid white;\n     padding-right: 50px solid white;\n}\nth, td {\n    padding: 15px;\n    text-align: left;\n}\ntable#t01 tr:nth-child(even) {\n    background-color: #c2f7be;\n}\ntable#t01 tr:nth-child(odd) {\n   background-color: #fff;\n}\ntable#t01 th {\n    background-color: black;\n    color: white;\n}\n&lt;\/style>\n&lt;table style=\"border: 5px solid black; padding: 50px solid white;\">\n  &lt;tr align=\"top\" style=\"padding: 20px solid; border: 5px solid;\">\n    &lt;td style=\"padding: 20px solid\">\neof\npsql -q -U abilit -h 127.0.0.1 gatekeeper_prod &lt;&lt; eof\n\\H\n\\pset title 'Liste des causes possibles de blockages de cartes:'\n\\pset tableattr id=\"t01\"\nSELECT note AS \"Cause de blockage\" \nfrom lock_types \nORDER BY note asc;\neof\ncat &lt;&lt; eof\n    &lt;p>&lt;br>&lt;\/p>\n    &lt;\/td>\n  &lt;\/tr>\n&lt;\/table>\neof<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">On a totalement le contr\u00f4le de ce qu&#8217;on veut faire. On peut donc faire des &#8220;extracts&#8221; d&#8217;une base de donn\u00e9es, laisser l&#8217;acc\u00e8s \u00e0 ce type d&#8217;extracts \u00e0 certains comptes Usermin, permettre de passer des param\u00e8tres, par exemple pour chercher la fiche d&#8217;un membre correspondant \u00e0 un certain num\u00e9ro de membre, ou sortir la liste des participants \u00e0 un \u00e9v\u00e9nement sur base d&#8217;une certaine date, etc&#8230;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bien s\u00fbr, le script (ou autre) peut \u00e9galement \u00e9crire dans la database. L&#8217;authentification vis-\u00e0-vis de la <a href=\"https:\/\/en.wikipedia.org\/wiki\/Relational_database\" data-type=\"link\" data-id=\"https:\/\/en.wikipedia.org\/wiki\/Relational_database\" target=\"_blank\" rel=\"noreferrer noopener\">RDBMS<\/a> est faite ici par le user sous lequel le script s&#8217;ex\u00e9cute, ainsi que par le fait que la connexion est de type locale, donc \u00e7a n&#8217;ouvre pas de risque d&#8217;acc\u00e8s ill\u00e9gitime \u00e0 distance.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il est \u00e9videmment possible aussi de d\u00e9clencher, via ce type d&#8217;\u00e9cran, un mailing ou toute action qui d\u00e9pend de commandes disponibles. On a des exemples de tels \u00e9crans permettant de red\u00e9marrer des fermes de serveurs ou des groupes entiers de syst\u00e8mes de &#8220;digital signage&#8221;, via des connexions SSH authentifi\u00e9es via certificats (RSA ou autres).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un &#8220;simple&#8221; utilisateur peut donc, via ce syst\u00e8me, avoir acc\u00e8s \u00e0 des ressources sensibles, dans la limite stricte de ce qui est pr\u00e9vu par l&#8217;\u00e9cran en question.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Comment le &#8220;simple utilisateur&#8221; acc\u00e8de-t-il \u00e0 cet \u00e9cran ?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Via <strong>Usermin<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Comme on le voit dans l&#8217;\u00e9cran de configuration ci-dessus, il y a un champ &#8220;Available in Usermin&#8221;. Tant que l&#8217;\u00e9cran n&#8217;est pas parfaitement au point, il n&#8217;est disponible que dans Webmin. Une fois cette option valid\u00e9e, il <strong><em>peut<\/em><\/strong> appara\u00eetre dans Usermin, mais seulement aux comptes Usermin autoris\u00e9s \u00e0 y acc\u00e9der:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"352\" src=\"https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-53-1024x352.png\" alt=\"\" class=\"wp-image-375\" srcset=\"https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-53-1024x352.png 1024w, https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-53-300x103.png 300w, https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-53-768x264.png 768w, https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-53.png 1349w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">On peut donc d\u00e9cider de quel(s) comptes locaux peuvent avoir acc\u00e8s \u00e0 Usermin, de quels modules les utilisateurs peuvent ou non avoir acc\u00e8s dans Usermin (par exemple pas d&#8217;acc\u00e8s au module &#8220;e-mails&#8221;), mais aussi pr\u00e9ciser, par user ou par groupe de users, \u00e0 quels clones de &#8220;Custom Commands&#8221; chaque compte pourra acc\u00e9der ou non.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L&#8217;interface, pour l&#8217;utilisateur, via Usermin, est tr\u00e8s proche de celle de l&#8217;administrateur\/programmeur via Webmin, mais sans les possibilit\u00e9s de modifications, bien entendu:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"276\" src=\"https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-54-1024x276.png\" alt=\"\" class=\"wp-image-376\" srcset=\"https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-54-1024x276.png 1024w, https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-54-300x81.png 300w, https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-54-768x207.png 768w, https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-54-1536x414.png 1536w, https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-54.png 1922w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">&#8230; Pas de bouton &#8220;Edit&#8221; &#8230;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">En r\u00e9sum\u00e9&#8230;<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">L&#8217;outil Webmin\/Usermin est incroyablement plus vaste que ce que nous voulons en faire, mais il permet <strong>rapidement<\/strong> de d\u00e9velopper une interface permettant de consulter et\/ou modifier une base de donn\u00e9es relationnelle, via une interface web standard, sans devoir se prendre la t\u00eate avec de la programmation d&#8217;interface graphique.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il permet aussi de g\u00e9rer facilement les comptes qui y ont acc\u00e8s.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le module &#8220;Custom Commands&#8221; permet aussi de g\u00e9n\u00e9rer un \u00e9cran d\u00e9di\u00e9 \u00e0 des RDBMS plut\u00f4t qu&#8217;\u00e0 des ex\u00e9cutables g\u00e9n\u00e9riques, mais \u00e7a, je ne l&#8217;ai pas utilis\u00e9, donc je ne peux pas en dire beaucoup plus.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"615\" src=\"https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-55-1024x615.png\" alt=\"\" class=\"wp-image-377\" srcset=\"https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-55-1024x615.png 1024w, https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-55-300x180.png 300w, https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-55-768x461.png 768w, https:\/\/abilit.eu\/wp-content\/uploads\/2025\/11\/image-55.png 1350w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Le produit est <strong>parfaitement stable<\/strong>, polyglotte, mature, s\u00e9curis\u00e9 et fonctionnel.<br><br>En cas de besoin, appelez-moi pour plus d&#8217;infos.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Webmin est un outil bas\u00e9 sur Perl, permettant l&#8217;administration tr\u00e8s compl\u00e8te d&#8217;un syst\u00e8me informatique. Il existe depuis 1997, et est actuellement en version 2600, donc un projet toujours tr\u00e8s actif. Il fonctionne sur Linux (RHEL, Fedora, CentOS, OpenSUSE, AlmaLinux, Rocky Linux, Oracle Linux, Debian, Ubuntu, Mint, LMDE, &#8230;) mais aussi sur BSD, MacOS, AIX et [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-359","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/abilit.eu\/index.php\/wp-json\/wp\/v2\/pages\/359","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/abilit.eu\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/abilit.eu\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/abilit.eu\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/abilit.eu\/index.php\/wp-json\/wp\/v2\/comments?post=359"}],"version-history":[{"count":3,"href":"https:\/\/abilit.eu\/index.php\/wp-json\/wp\/v2\/pages\/359\/revisions"}],"predecessor-version":[{"id":378,"href":"https:\/\/abilit.eu\/index.php\/wp-json\/wp\/v2\/pages\/359\/revisions\/378"}],"wp:attachment":[{"href":"https:\/\/abilit.eu\/index.php\/wp-json\/wp\/v2\/media?parent=359"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}