<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://www.titux.org/tech/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://www.titux.org/tech/feed.php">
        <title>Blog - lumo:creation_complete_du_plugin_dokuwiki</title>
        <description></description>
        <link>https://www.titux.org/tech/</link>
        <image rdf:resource="https://www.titux.org/tech/lib/exe/fetch.php?media=logo.png" />
       <dc:date>2026-05-18T07:39:26+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://www.titux.org/tech/doku.php?id=lumo:creation_complete_du_plugin_dokuwiki:1._manifest.ini&amp;rev=1773312465&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.titux.org/tech/doku.php?id=lumo:creation_complete_du_plugin_dokuwiki:2._helper.php_fonctions_utilitaires&amp;rev=1773312601&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.titux.org/tech/doku.php?id=lumo:creation_complete_du_plugin_dokuwiki:3._syntax.php_syntaxe_dans_les_pages_wiki&amp;rev=1773312703&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.titux.org/tech/doku.php?id=lumo:creation_complete_du_plugin_dokuwiki:4._action.php_actions_via_url&amp;rev=1773312768&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.titux.org/tech/doku.php?id=lumo:creation_complete_du_plugin_dokuwiki:5._exemple_de_script_bash_securise&amp;rev=1773312834&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.titux.org/tech/doku.php?id=lumo:creation_complete_du_plugin_dokuwiki:6._configuration_nginx_complete&amp;rev=1773312901&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.titux.org/tech/doku.php?id=lumo:creation_complete_du_plugin_dokuwiki:7._installation_et_permissions&amp;rev=1773313028&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.titux.org/tech/doku.php?id=lumo:creation_complete_du_plugin_dokuwiki:8._utilisation_dans_dokuwiki&amp;rev=1773313565&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.titux.org/tech/doku.php?id=lumo:creation_complete_du_plugin_dokuwiki:accueil&amp;rev=1773313914&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://www.titux.org/tech/lib/exe/fetch.php?media=logo.png">
        <title>Blog</title>
        <link>https://www.titux.org/tech/</link>
        <url>https://www.titux.org/tech/lib/exe/fetch.php?media=logo.png</url>
    </image>
    <item rdf:about="https://www.titux.org/tech/doku.php?id=lumo:creation_complete_du_plugin_dokuwiki:1._manifest.ini&amp;rev=1773312465&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-03-12T10:47:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>1._manifest.ini</title>
        <link>https://www.titux.org/tech/doku.php?id=lumo:creation_complete_du_plugin_dokuwiki:1._manifest.ini&amp;rev=1773312465&amp;do=diff</link>
        <description>code ini


[plugin]
name=Bash Exec Plugin
desc=Exécute des scripts bash avec validation sécurisée
author=Votre Nom
email=votre@email.com
url=https://votre-site.com
date=2026-03-12
version=1.0.0</description>
    </item>
    <item rdf:about="https://www.titux.org/tech/doku.php?id=lumo:creation_complete_du_plugin_dokuwiki:2._helper.php_fonctions_utilitaires&amp;rev=1773312601&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-03-12T10:50:01+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>2._helper.php_fonctions_utilitaires</title>
        <link>https://www.titux.org/tech/doku.php?id=lumo:creation_complete_du_plugin_dokuwiki:2._helper.php_fonctions_utilitaires&amp;rev=1773312601&amp;do=diff</link>
        <description>code php


&lt;?php
/**
 * Helper class for Bash Exec Plugin
 */
class helper_plugin_bashexec extends DokuWiki_Plugin {
    
    /**
     * Validation stricte des arguments
     */
    public function validateArgument($arg) {
        // Autorise uniquement alphanumérique, tirets et underscores
        if (!preg_match(&#039;/^[a-zA-Z0-9_-]{1,50}$/&#039;, $arg)) {
            return false;
        }
        return true;
    }
    
    /**
     * Validation du chemin du script
     */
    public function valida…</description>
    </item>
    <item rdf:about="https://www.titux.org/tech/doku.php?id=lumo:creation_complete_du_plugin_dokuwiki:3._syntax.php_syntaxe_dans_les_pages_wiki&amp;rev=1773312703&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-03-12T10:51:43+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>3._syntax.php_syntaxe_dans_les_pages_wiki</title>
        <link>https://www.titux.org/tech/doku.php?id=lumo:creation_complete_du_plugin_dokuwiki:3._syntax.php_syntaxe_dans_les_pages_wiki&amp;rev=1773312703&amp;do=diff</link>
        <description>code php


&lt;?php
/**
 * Syntax Plugin for Bash Exec
 */
class syntax_plugin_bashexec extends DokuWiki_Plugin_Syntax {
    
    public function getType() {
        return &#039;substition&#039;;
    }
    
    public function getPType() {
        return &#039;normal&#039;;
    }
    
    public function getSort() {
        return 150;
    }
    
    public function connectTo($mode) {
        $this-&gt;Lexer-&gt;addSpecialPattern(&#039;%%bashexec\{[^}]+\}%%&#039;, $mode, &#039;plugin_bashexec&#039;);
    }
    
    public function handle($mat…</description>
    </item>
    <item rdf:about="https://www.titux.org/tech/doku.php?id=lumo:creation_complete_du_plugin_dokuwiki:4._action.php_actions_via_url&amp;rev=1773312768&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-03-12T10:52:48+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>4._action.php_actions_via_url</title>
        <link>https://www.titux.org/tech/doku.php?id=lumo:creation_complete_du_plugin_dokuwiki:4._action.php_actions_via_url&amp;rev=1773312768&amp;do=diff</link>
        <description>code php


&lt;?php
/**
 * Action Plugin for Bash Exec
 */
class action_plugin_bashexec extends DokuWiki_Action_Plugin {
    
    public function register(Doku_Event_Handler $controller) {
        $controller-&gt;register_hook(&#039;ACTION_ACT_PREPROCESS&#039;, &#039;BEFORE&#039;, $this, &#039;handleScriptRequest&#039;);
        $controller-&gt;register_hook(&#039;TPL_ACT_RENDER&#039;, &#039;AFTER&#039;, $this, &#039;renderOutput&#039;);
    }
    
    public function handleScriptRequest(Doku_Event $event, $param) {
        if ($event-&gt;data !== &#039;script&#039;) {
      …</description>
    </item>
    <item rdf:about="https://www.titux.org/tech/doku.php?id=lumo:creation_complete_du_plugin_dokuwiki:5._exemple_de_script_bash_securise&amp;rev=1773312834&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-03-12T10:53:54+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>5._exemple_de_script_bash_securise</title>
        <link>https://www.titux.org/tech/doku.php?id=lumo:creation_complete_du_plugin_dokuwiki:5._exemple_de_script_bash_securise&amp;rev=1773312834&amp;do=diff</link>
        <description>code bash


#!/bin/bash
# /lib/plugins/bashexec/scripts/status.sh

# Vérifier les permissions du script
if [ &quot;$(id -u)&quot; -eq 0 ]; then
    echo &quot;Erreur: Le script ne doit pas être exécuté en root&quot; &gt;&amp;2
    exit 1
fi

# Arguments attendus
ARG1=&quot;${1:-}&quot;
ARG2=&quot;${2:-}&quot;

# Validation côté script (défense en profondeur)
if [[ ! &quot;$ARG1&quot; =~ ^[a-zA-Z0-9_-]{1,50}$ ]]; then
    echo &quot;Erreur: Argument 1 invalide&quot; &gt;&amp;2
    exit 1
fi

# Exemple d&#039;exécution
case &quot;$ARG1&quot; in
    &quot;status&quot;)
        echo &quot;Statut: OK&quot;
…</description>
    </item>
    <item rdf:about="https://www.titux.org/tech/doku.php?id=lumo:creation_complete_du_plugin_dokuwiki:6._configuration_nginx_complete&amp;rev=1773312901&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-03-12T10:55:01+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>6._configuration_nginx_complete</title>
        <link>https://www.titux.org/tech/doku.php?id=lumo:creation_complete_du_plugin_dokuwiki:6._configuration_nginx_complete&amp;rev=1773312901&amp;do=diff</link>
        <description>code php


server {
    listen 80;
    server_name wiki.votre-domaine.com;
    root /var/www/dokuwiki;
    index index.php;
    
    # Sécurité générale
    add_header X-Content-Type-Options nosniff;
    add_header X-Frame-Options SAMEORIGIN;
    add_header X-XSS-Protection &quot;1; mode=block&quot;;
    
    # DokuWiki principal
    location / {
        try_files $uri $uri/ @dokuwiki;
    }
    
    location @dokuwiki {
        fastcgi_pass unix:/var/run/php/php-fpm.sock;
        include fastcgi_params;
…</description>
    </item>
    <item rdf:about="https://www.titux.org/tech/doku.php?id=lumo:creation_complete_du_plugin_dokuwiki:7._installation_et_permissions&amp;rev=1773313028&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-03-12T10:57:08+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>7._installation_et_permissions</title>
        <link>https://www.titux.org/tech/doku.php?id=lumo:creation_complete_du_plugin_dokuwiki:7._installation_et_permissions&amp;rev=1773313028&amp;do=diff</link>
        <description>code bash


# Créer le répertoire du plugin
sudo mkdir -p /var/www/dokuwiki/lib/plugins/bashexec/scripts

# Copier les fichiers
sudo cp action.php syntax.php helper.php manifest.ini /var/www/dokuwiki/lib/plugins/bashexec/

# Créer le script
sudo nano /var/www/dokuwiki/lib/plugins/bashexec/scripts/status.sh

# Définir les propriétaires
sudo chown -R www-data:www-data /var/www/dokuwiki/lib/plugins/bashexec/

# Permissions restrictives
sudo chmod 750 /var/www/dokuwiki/lib/plugins/bashexec/
sudo chm…</description>
    </item>
    <item rdf:about="https://www.titux.org/tech/doku.php?id=lumo:creation_complete_du_plugin_dokuwiki:8._utilisation_dans_dokuwiki&amp;rev=1773313565&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-03-12T11:06:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>8._utilisation_dans_dokuwiki</title>
        <link>https://www.titux.org/tech/doku.php?id=lumo:creation_complete_du_plugin_dokuwiki:8._utilisation_dans_dokuwiki&amp;rev=1773313565&amp;do=diff</link>
        <description>code conf


%%bashexec{status.sh status active}%%



https://wiki.votre-domaine.com/doku.php?id=start&amp;do=script&amp;script=status.sh&amp;arg1=status&amp;arg2=active



{
    &quot;success&quot;: true,
    &quot;output&quot;: [&quot;Statut: OK&quot;, &quot;Paramètre: active&quot;],
    &quot;return_code&quot;: 0
}</description>
    </item>
    <item rdf:about="https://www.titux.org/tech/doku.php?id=lumo:creation_complete_du_plugin_dokuwiki:accueil&amp;rev=1773313914&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-03-12T11:11:54+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>accueil</title>
        <link>https://www.titux.org/tech/doku.php?id=lumo:creation_complete_du_plugin_dokuwiki:accueil&amp;rev=1773313914&amp;do=diff</link>
        <description>Création complète du plugin DokuWiki

retour

----------




/lib/plugins/bashexec/
├── action.php          # Gestion des actions et appels
├── syntax.php          # Syntaxe pour l&#039;insertion dans les pages
├── helper.php          # Fonctions utilitaires
├── script.sh           # Votre script bash (optionnel)
└── manifest.ini        # Métadonnées du plugin</description>
    </item>
</rdf:RDF>
