• =?UTF-8?Q?Re=3a_debian_11_-_cr=c3=a9er_une_=22desktop_icon=22=2e=2e?= =

    From hamster@21:1/5 to All on Sun Mar 5 21:40:01 2023
    Le 05/03/2023 à 21:13, roger.tarani@free.fr a écrit :
    Y a-t-il une solution pour que cet utilisateur ait juste à :
    - télécharger le programme
    - faire <tâche à déterminer> (??? : clic gauche ou droit ou autre)
    - répondre "Entrez votre pwd pour exécuter ce programme en tant que sudoer" ?

    Oui : ca s'appelle windows 11. Cette facon d'agir est typique du monde windows. Un programme ne s'installe pas comme ca sous linux et il y a de
    bonnes raisons.

    Pour installer un programme sous linux, utiliser en priorité apt (ou un
    truc ou on clique avec la souris et qui en fait lance la commande apt a
    notre place). Si le programme qu'on veut installer n'est pas dans les
    depots, aller voir du coté de flatpak ou snap. Et si meme la c'est pas disponible… chercher un autre programme qui fait la meme chose.

    On peut trouver des trucs pas libres et en général très sales qui ne
    sont pas disponibles ni dans les depots, ni dans flatpak, ni dans snap.
    Par exemple zoom ou skype ou sketchup. Pour ces trucs la il faut oublier
    la procédure simple du genre "un clic droit sur l'icone". On peut
    arriver a les installer mais en général en travaillant un peu.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From hamster@21:1/5 to All on Mon Mar 6 00:30:01 2023
    Le 05/03/2023 à 22:57, roger.tarani@free.fr a écrit :
    C'est un point accessoire, puisque je livre un programme à un utilisateur qui va l'exploiter en connaissance sur sa machine.
    Il fera clic droit "Rendre exécutable", voire chmod +x.
    L'installateur copiera automatiquement le pgm dans /usr/local/bin pour permettre un lancement depuis n'importe quel chemin dans un terminal.
    Je pourrais envisager un paquet .deb .

    Ah d'accord, j'avais pas compris ta demande. Si c'est un programme que
    tu fait et que tu fournis, en effet il faut trouver une solution.

    Je ne pensais pas que ce serait si compliqué avec gnome

    Avant tu parlais de xfce, la tu parle de gnome, au final c'est quel
    bureau sur l'ordi ou tu veux que l'installateur crée une icone sur le bureau ?

    Qui a fait ça récemment sur un hôte debian 11 ?

    Je suis sous mate et je viens d'essayer.

    Clic droit sur le bureau puis "creer un lanceur". Ca m'ouvre une
    fenetre, je choisis le nom, la commande a executer, l'icone que je veux,
    je clique sur "ok".

    Ca me fait une icone sur le bureau qui execute la commande spécifiée
    quand je clique dessus.

    Je regarde le contenu de ce machin avec cat Bureau/test.desktop
    #!/usr/bin/env xdg-open
    [Desktop Entry]
    Version=1.0
    Type=Application
    Terminal=false
    Icon=/usr/local/share/icon/test.png
    Icon[fr_FR]=test
    Name[fr_FR]=test
    Exec=/usr/local/bin/test
    Name=test

    Ce truc est un bete fichier texte, avec le nom qui finit par .desktop ce
    qui est le standard de freedesktop.org. Il m'appartiens (ben oui, il est
    sur mon bureau) et il a les droits d'execution.

    J'en comprend que si je fais un fichier contenant les bonnes infos et
    que je le met sur le bureau, ca doit marcher. J'essaye : je fais un
    fichier retest.desktop contenant :

    #!/usr/bin/env xdg-open
    [Desktop Entry]
    Version=1.0
    Type=Application
    Terminal=false
    Icon=/usr/local/share/icon/autretest.png
    Icon[fr_FR]=autretest
    Name[fr_FR]=retest
    Exec=/usr/local/bin/retest
    Name=retest

    Je l'enregistre sur le bureau, je lui donne les droits d'execution et…
    ca marche. Comme c'est un truc qui est visiblement fait selon le
    standard de freedesktop.org, je pense que ca marchera tout aussi bien
    sur d'autres bureaux (gnome, cinammon, kde, xfce, lxde, etc…). A tester
    quand meme.

    Vu que tu fais un installateur qui copie automatiquement le programme
    dans /usr/local/bin, ce meme installateur peut tout aussi bien copier un fichier d'icone dans /usr/local/share/icons et un fichier de lanceur sur
    le bureau, puis changer le proprietaire et donner les droits d'execution
    pour ce lanceur.

    PS : si tu veux faire un lanceur dans le menu aussi, ca se passe dans /usr/local/share/applications. Je te laisse aller voir les fichiers
    *.desktop qui sont dans /usr/share/applications et t'en inspirer pour
    faire le tiens.

    PS : d'ailleurs, y a-t-il moyen de lancer un pgm en tant que sudoer depuis le le navigateur de fichiers ?
    (le menu contextuel ne propose pas ça ; et admin:// dans la barre d'adresse déclenche une demande de pwd sudoer mais n'ajoute pas plus de "exécuter (comme root) dans un menu contextuel)

    La ca va beaucoup dépendre du navigateur de fichiers, et comme tu nous
    dit pas lequel tu utilise c'est une question très floue.

    PS2 : dans le fichier retest.desktop sur mon bureau, j'ai modifié la
    commande a executer, j'ai mis :
    Exec=pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY
    /usr/local/bin/retest
    Comme ca il me demande le mot de passe administrateur quand je clique
    sur le lanceur.

    PS3: c'est chiant de se trimballer des variables d'environnement a
    chaque fois qu'on tape pkexec, alors j'ai fait un alias
    alias pkexec='pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY'
    dans /etc/bash.bashrc et je m'en soucie plus.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Basile Starynkevitch@21:1/5 to Pierre Frenkiel on Mon Mar 6 07:20:01 2023
    On 05/03/2023 19:16, Pierre Frenkiel wrote:
    le window manager twm permet de faire des tas de chose interessantes,
    et en particulier d'utiliser des icones
    pour appeler un programme


    Et d'autres gestionnaires de fenêtres (icewm, matchbox-window-manager ou
    fvwm ...) peuvent être configurés pour lancer un programme par le menu. (click droit de la souris, suir le fond d'écran)



    --
    Basile Starynkevitch <basile@starynkevitch.net>
    (only mine opinions / les opinions sont miennes uniquement)
    92340 Bourg-la-Reine, France
    web page: starynkevitch.net/Basile/ & refpersys.org

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From didier gaumet@21:1/5 to All on Mon Mar 6 09:20:01 2023
    Le 05/03/2023 à 22:57, roger.tarani@free.fr a écrit :
    [...]
    Ces utilisateurs presse-bouton piquouzés à macos|winos sont pénibles...
    [...]

    Bonjour,

    cette remarque me paraît inutile (au mieux)

    Tu reproches à des utilisateurs de base la méconnaissance des
    environnements en ligne de commande, alors que toi, développeur,
    méconnais les environnements de bureau utilisés par ceux à qui tu
    fournis des solutions

    Cordialement,
    DG.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From bern@21:1/5 to All on Mon Mar 6 11:00:01 2023
    Le 2023-03-06 00:51, roger.tarani@free.fr a écrit :

    Cf. mon 1er message détaillé, reproduit :

    1/ Procédé 1 (CLI)

    Je crée un fichier
    [...création du fichier test.desktop...]
    Je clique droit dessus et je choisis ouvrir avec "Create launcher on
    the panel".

    2/ Procédé 2 (souris)
    Je clique droit sur le programme
    Je ne vois pas l'option "Add to Desktop"

    Clarifions :
    Procédé 1 => vous faites clic droit dans un procédé CLI ? Mélange... Procédé 2 => c'est une démarche "windows-like". Pas la bonne ici.

    Méthode 1, CLI :
    - créer dans le répertoire $HOME/Bureau le fichier test.desktop avec le
    bon contenu.
    - et c'est tout, vous avez votre icône à double-cliquer.

    Méthode 2, clickodrome :
    - clic droit sur le bureau, choisir "Create launcher on the panel" et continuer. C'est "create launcher" qui va créer le fichier test.desktop
    à partir des réponses que vous lui donnerez.

    Mais ne mélangez pas les deux méthodes.

    Dans tous les cas, s'il y a un mot de passe à gérer ou autre chose, voir
    le message de hamster qui a tout dit.

    Bonne journée.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From didier gaumet@21:1/5 to All on Mon Mar 6 19:00:02 2023
    Le 06/03/2023 à 17:53, roger.tarani@free.fr a écrit :
    [...]
    Je vais et je veux faire cet effort de rendre accessible, à un utilisateur qui sait juste taper 2 lignes de commandes sans rien y comprendre, un programme par un double clic sur une icône. Un truc banal.
    [...]
    Moi, je n'ai aucun besoin d'icônes. Mais il me plaît d'être agréable à un utilisateur qui me demande si c'est possible. Donc j'explore.

    [Aparté]
    Je ne vais pas polémiquer mais ton utilisateur ne devrait pas avoir
    besoin de taper des commandes: il ne ressent pas plus le besoin d'une environnement CLI/TUI que tu ne ressens le besoin d'un DE. Et ton
    utilisateur, par définition en tant qu'informaticien, tu es à son
    service. Si il y a entre vous une relation professionnelle tu ne fais
    pas preuve d'une amabilité spéciale, tu fais ton travail.
    [Fin d'aparté]

    Comptes-tu apporter des éléments utiles susceptibles de régler ce problème générique ? Je crois que cela pourrait intéresser des gens.

    Selon moi, le pus simple:

    - [Menu] pour faire apparaître dans un menu compatible Freedesktop (la
    plupart des DE) ton utilisateur n'a qu'à utiliser Alacarte. Suivant le
    DE utilisé, un clic contextuel sur l'entrée du menu ainsi créée peut permettre de créer un raccourci depuis un panel ou une icône sur le bureau.

    pour info:

    - [panel] tu sembles utiliser le panel Xfce avec le bureau Gnome? Auquel
    cas ça pourrait expliquer ton insuccès à créer une icône dans ledit
    panel (le message d'erreur semble pointer vers un service Freedesktop (org.xfce.panel) attendu mais pas trouvé). Possiblement ça se passerait
    mieux si tu utilisais le panel Xfce au sein du bureau Xfce, ou si tu
    utilisais une fonctionnalité équivalente mais dans l'écosytème Gnome si
    tu veux utiliser Gnome.

    - [desktop] si tu veux créer des icônes sur le bureau, déjà fais gaffe
    que certains DE traduisent en langue locale et d'autres non. Donc pour
    certains DE il faut placer les fichiers .desktop dans ~/Desktop et pour d'autres dans ~/Bureau.

    - [desktop, gnome] l'extension Gnome packagée par Debian 11 pour placer
    des icônes sur le bureau ne fonctionne plus (trop vieille), dans Debian
    12 c'est une version NG, que tu peux trouver directement sur le site des extensions Gnome si tu veux l'installer dans le Gnome de Bullseye.

    - [applis sans installation] enfin, d'autres que moi te l'ont déjà
    indiqué, un moyen pratique pour faire installer à un utilisateur une application sans qu'il ait des droits d'administrateur, c'est de lui
    fournir une appli dans un bac-à-sable (flatpak et autres)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From hamster@21:1/5 to All on Mon Mar 6 21:40:01 2023
    Le 06/03/2023 à 17:34, roger.tarani@free.fr a écrit :
    Je n'ai pas vraiment mélangé.
    J'ai reporté mon expérience selon 2 voies communément relayées sur internet.

    *Procédé 1/CLI : *
    Je crée un fichier (que je dois saisir avec mes doigts et un clavier)
    que j'enregistre dans ~/Desktop :

    $ cat ~/Desktop/test.desktop
    [Desktop Entry]
    Version=1.0
    Type=Application
    Terminal=false
    Exec=/usr/bin/gedit
    Name=gedit
    Comment=gedit
    Icon=/home/test/Desktop/logo.png

    SUR LE BUREAU, ou dans une fenête de navigateur (nautilus),
    Je clique droit dessus et je choisis ouvrir avec "Create launcher on the panel".

    Non non non. Ce fichier EST le launcher, il ne faut donc pas essayer de
    créer un launcher avec. Tu a juste a faire ce fichier et lui donner les
    droits d'execution, pas a faire de clic droit dessus ou autres opérations.

    En fait, c'est bien plus simple que ce que tu essaye de faire.

    J'ai alors une erreur :
    "Failed to add a plugin to the panel GDBus.Error:org.freedesktop.DBus.Error.Service.UNknown: The name org.xfce.Panel was not provided by any .service files"
    Voir image ci-dessous.

    C'est cette commande qui ne s'exécute pas :
    $ ps aux | grep xfce
    ... *xfce4-panel --add=launcher /home/test/Desktop/test.desktop*

    Logique : tu essaye de créer un launcher qui lance… un autre launcher.

    Il apparaît donc cette commande que j'ignorais et qui me permet à
    présent d'être à 100% en CLI :
    'xfce4-panel --add=launcher /home/test/Desktop/test.desktop'

    Je suppose que cette commande marcherait si tu lui passait comme
    paramètre le chemin d'un binaire executable ou d'un script. Mais c'est
    pas ce que tu fais : tu lui passe comme paramètre le chemin d'un
    launcher, c'est a dire un fichier *.desktop.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From hamster@21:1/5 to All on Mon Mar 6 21:30:02 2023
    Le 06/03/2023 à 10:24, bern a écrit :
    Méthode 1, CLI :
    - créer dans le répertoire $HOME/Bureau le fichier test.desktop avec le
    bon contenu.
    - et c'est tout, vous avez votre icône à double-cliquer.

    Il faut aussi lui donner les droits d'execution.

    Méthode 2, clickodrome :
    - clic droit sur le bureau, choisir "Create launcher on the panel"

    J'insiste : clic droit sur le bureau, pas sur un fichier, sur une zone
    vide en dehors de tout fichier ou dossier.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Basile Starynkevitch@21:1/5 to roger.tarani@free.fr on Tue Mar 7 08:10:02 2023
    This is a multi-part message in MIME format.
    On 07/03/2023 01:44, roger.tarani@free.fr wrote:

    ----- Mail original -----
    De: "hamster"<hamster@suna.fdn.fr>
    À: "Liste Debian"<debian-user-french@lists.debian.org>
    Envoyé: Lundi 6 Mars 2023 21:31:25
    Objet: Re: debian 11 - créer une "desktop icon"... simplement

    Le 06/03/2023 à 17:34,roger.tarani@free.fr a écrit :
    Je n'ai pas vraiment mélangé.
    J'ai reporté mon expérience selon 2 voies communément relayées sur internet.

    *Procédé 1/CLI : *
    Je crée un fichier (que je dois saisir avec mes doigts et un clavier)
    que j'enregistre dans ~/Desktop :

    $ cat ~/Desktop/test.desktop
    [Desktop Entry]
    Version=1.0
    Type=Application
    Terminal=false
    Exec=/usr/bin/gedit
    Name=gedit
    Comment=gedit
    Icon=/home/test/Desktop/logo.png

    SUR LE BUREAU, ou dans une fenête de navigateur (nautilus),
    Je clique droit dessus et je choisis ouvrir avec "Create launcher on the
    panel".
    Non non non. Ce fichier EST le launcher, il ne faut donc pas essayer de créer un launcher avec. Tu a juste a faire ce fichier et lui donner les droits d'execution, pas a faire de clic droit dessus ou autres opérations.

    En fait, c'est bien plus simple que ce que tu essaye de faire.

    OUI, OUI, OUI ! En effet.


    J'ai alors une erreur :
    "Failed to add a plugin to the panel
    GDBus.Error:org.freedesktop.DBus.Error.Service.UNknown: The name
    org.xfce.Panel was not provided by any .service files"
    Voir image ci-dessous.

    C'est cette commande qui ne s'exécute pas :
    $ ps aux | grep xfce
    ... *xfce4-panel --add=launcher /home/test/Desktop/test.desktop*
    Logique : tu essaye de créer un launcher qui lance… un autre launcher.

    Maintenant, c'est clair. Je m'attendais à ce qu'un launcher soit créé
    avec l'amorce de définition du fichier .desktop .



    Il apparaît donc cette commande que j'ignorais et qui me permet à
    présent d'être à 100% en CLI :
    'xfce4-panel --add=launcher /home/test/Desktop/test.desktop'
    Je suppose que cette commande marcherait si tu lui passait comme
    paramètre le chemin d'un binaire executable ou d'un script.


    Une possibilité complémentaire (pour faire un "lanceur") qui a besoin
    des privilèges de root, serait de coder un petit programme (soigné, il
    doit vérifier chaque appel système listé dans https://man7.org/linux/man-pages/man2/syscalls.2.html ) en C (ou C++)
    dont le binaire serait mis dans /usr/local/bin/ par exemple


    coder avec soin un programme (plutôt minimal) toto.c qui fait les appels systèmes détaillés ci-dessous.

    le compiler avec gcc -Wall -Wextra -g -O toto.c -o /tmp/toto.bin et
    d'autres options choisies avec soin, peut-être *-I* /rep//h/ et *-L*
    /repl/ et *-l**/biblio/*//où /reph/ est un repertoire d'entêtes
    (peut-être /usr/local/include/ ...) et /repl/ un répertoire de
    bibliothèques (peut-être /usr/local/lib/ ...) qu'on nomme /biblio/

    le déboguer convenablement (en ligne de commande, et avec strace(1) <https://man7.org/linux/man-pages/man1/strace.1.html> et gdb(1) <https://man7.org/linux/man-pages/man1/gdb.1.html> ....) et peut-être
    même avec l'aide de Frama-C <https://frama-c.com/> et d'annotations ACSL

    une fois qu'on est sûr de soi on installe le binaire exécutable avec le privilège setuid.

    cp -v /tmp/toto.bin /usr/local/bin/

    chmod u+s /usr/local/bin/toto.bin


    Les appels systèmes et fonctions significatifs à utiliser avec soin et rigueur dans toto.c sont parmi les suivants

    * fork(2) <https://man7.org/linux/man-pages/man2/fork.2.html>
    * execve(2) <https://man7.org/linux/man-pages/man2/execve.2.html>
    * pipe(2) <https://man7.org/linux/man-pages/man2/pipe.2.html>
    * sigaction(2) <https://man7.org/linux/man-pages/man2/sigaction.2.html>
    * seteuid(2) <https://man7.org/linux/man-pages/man2/seteuid.2.html>
    * setresuid(2) <https://man7.org/linux/man-pages/man2/setresuid.2.html>
    * mkfifo(3) <https://man7.org/linux/man-pages/man3/mkfifo.3.html>
    * atexit(3) <https://man7.org/linux/man-pages/man3/atexit.3.html>


    et des dizaines d'autres!


    Si on est parano, on ferait peut-être même des exécutables intermédiaires.


    Cordialement

    --
    Basile Starynkevitch<basile@starynkevitch.net>
    (only mine opinions / les opinions sont miennes uniquement)
    92340 Bourg-la-Reine, France
    web page: starynkevitch.net/Basile/ & refpersys.org

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 07/03/2023 01:44,
    <a class="moz-txt-link-abbreviated" href="mailto:roger.tarani@free.fr">roger.tarani@free.fr</a> wrote:<br>
    </div>
    <blockquote type="cite"
    cite="mid:959195337.-2091946474.1678149853907.JavaMail.zimbra@free.fr">
    <pre class="moz-quote-pre" wrap="">

    ----- Mail original -----
    De: "hamster" <a class="moz-txt-link-rfc2396E" href="mailto:hamster@suna.fdn.fr">&lt;hamster@suna.fdn.fr&gt;</a>
    À: "Liste Debian" <a class="moz-txt-link-rfc2396E" href="mailto:debian-user-french@lists.debian.org">&lt;debian-user-french@lists.debian.org&gt;</a>
    Envoyé: Lundi 6 Mars 2023 21:31:25
    Objet: Re: debian 11 - créer une "desktop icon"... simplement

    Le 06/03/2023 à 17:34, <a class="moz-txt-link-abbreviated" href="mailto:roger.tarani@free.fr">roger.tarani@free.fr</a> a écrit :
    </pre>
    <blockquote type="cite">
    <pre class="moz-quote-pre" wrap="">Je n'ai pas vraiment mélangé.
    J'ai reporté mon expérience selon 2 voies communément relayées sur internet.

    *Procédé 1/CLI : *
    Je crée un fichier (que je dois saisir avec mes doigts et un clavier)
    que j'enregistre dans ~/Desktop :

    $ cat ~/Desktop/test.desktop
    [Desktop Entry]
    Version=1.0
    Type=Application
    Terminal=false
    Exec=/usr/bin/gedit
    Name=gedit
    Comment=gedit
    Icon=/home/test/Desktop/logo.png

    SUR LE BUREAU, ou dans une fenête de navigateur (nautilus),
    Je clique droit dessus et je choisis ouvrir avec "Create launcher on the panel".
    </pre>
    </blockquote>
    <pre class="moz-quote-pre" wrap="">
    Non non non. Ce fichier EST le launcher, il ne faut donc pas essayer de
    créer un launcher avec. Tu a juste a faire ce fichier et lui donner les
    droits d'execution, pas a faire de clic droit dessus ou autres opérations.

    En fait, c'est bien plus simple que ce que tu essaye de faire.

    OUI, OUI, OUI ! En effet.


    </pre>
    <blockquote type="cite">
    <pre class="moz-quote-pre" wrap="">J'ai alors une erreur :
    "Failed to add a plugin to the panel GDBus.Error:org.freedesktop.DBus.Error.Service.UNknown: The name
    org.xfce.Panel was not provided by any .service files"
    Voir image ci-dessous.

    C'est cette commande qui ne s'exécute pas :
    $ ps aux | grep xfce
    ... *xfce4-panel --add=launcher /home/test/Desktop/test.desktop*
    </pre>
    </blockquote>
    <pre class="moz-quote-pre" wrap="">
    Logique : tu essaye de créer un launcher qui lance… un autre launcher.

    Maintenant, c'est clair. Je m'attendais à ce qu'un launcher soit créé
    avec l'amorce de définition du fichier .desktop .



    </pre>
    <blockquote type="cite">
    <pre class="moz-quote-pre" wrap="">Il apparaît donc cette commande que j'ignorais et qui me permet à
    présent d'être à 100% en CLI :
    'xfce4-panel --add=launcher /home/test/Desktop/test.desktop'
    </pre>
    </blockquote>
    <pre class="moz-quote-pre" wrap="">
    Je suppose que cette commande marcherait si tu lui passait comme
    paramètre le chemin d'un binaire executable ou d'un script. </pre>
    </blockquote>
    <p><br>
    </p>
    <p>Une possibilité complémentaire (pour faire un "lanceur") qui a
    besoin des privilèges de root, serait de coder un petit programme
    (soigné, il doit vérifier chaque appel système listé dans <a
    moz-do-not-send="true"
    href="https://man7.org/linux/man-pages/man2/syscalls.2.html"
    class="moz-txt-link-freetext">https://man7.org/linux/man-pages/man2/syscalls.2.html</a>
    ) en C (ou C++) dont le binaire serait mis dans <font
    face="monospace">/usr/local/bin/</font> par exemple <br>
    </p>
    <p><br>
    </p>
    <p>coder avec soin un programme (plutôt minimal) <font
    face="monospace">toto.c </font>qui fait les appels systèmes
    détaillés ci-dessous.<br>
    <font face="monospace"></font></p>
    <p>le compiler avec <font face="monospace">gcc -Wall -Wextra -g -O
    toto.c -o /tmp/toto.bin </font>et d'autres options choisies
    avec soin, peut-être <font face="monospace"><b>-I</b> <font
    color="red"><i>rep</i><i>h</i></font></font> et <font
    face="monospace"><b>-L</b> <font color="red"><i>repl</i></font></font>
    et <font face="monospace"><b>-l</b><font color="red"><b><i>biblio</i></b></font></font><i>
    </i>où <font face="monospace"><i>reph</i></font> est un
    repertoire d'entêtes (peut-être <font face="monospace">/usr/local/include/</font>
    ...) et <font face="monospace"><i>repl</i></font> un répertoire
    de bibliothèques (peut-être <font face="monospace">/usr/local/lib/</font>
    ...) qu'on nomme <i>biblio</i><br>
    </p>
    <p>le déboguer convenablement (en ligne de commande, et avec <a
    moz-do-not-send="true"
    href="https://man7.org/linux/man-pages/man1/strace.1.html">strace(1)</a>
    et <a moz-do-not-send="true"
    href="https://man7.org/linux/man-pages/man1/gdb.1.html">gdb(1)</a>
    ....) et peut-être même avec l'aide de <a moz-do-not-send="true"
    href="https://frama-c.com/">Frama-C</a> et d'annotations ACSL</p>
    <p>une fois qu'on est sûr de soi on installe le binaire exécutable
    avec le privilège setuid.</p>
    <p><font face="monospace">cp -v /tmp/toto.bin /usr/local/bin/</font></p>
    <p><font face="monospace">chmod u+s /usr/local/bin/toto.bin</font></p>
    <p><br>
    </p>
    <p>Les appels systèmes et fonctions significatifs à utiliser avec
    soin et rigueur dans toto.c sont parmi les suivants</p>
    <ul>
    <li><a moz-do-not-send="true"
    href="https://man7.org/linux/man-pages/man2/fork.2.html">fork(2)</a></li>
    <li><a moz-do-not-send="true"
    href="https://man7.org/linux/man-pages/man2/execve.2.html">execve(2)</a></li>
    <li><a moz-do-not-send="true"
    href="https://man7.org/linux/man-pages/man2/pipe.2.html">pipe(2)</a></li>
    <li><a moz-do-not-send="true"
    href="https://man7.org/linux/man-pages/man2/sigaction.2.html">sigaction(2)</a></li>
    <li><a moz-do-not-send="true"
    href="https://man7.org/linux/man-pages/man2/seteuid.2.html">seteuid(2)</a></li>
    <li><a moz-do-not-send="true"
    href="https://man7.org/linux/man-pages/man2/setresuid.2.html">setresuid(2)</a><br>
    </li>
    <li><a moz-do-not-send="true"
    href="https://man7.org/linux/man-pages/man3/mkfifo.3.html">mkfifo(3)</a></li>
    <li><a moz-do-not-send="true"
    href="https://man7.org/linux/man-pages/man3/atexit.3.html">atexit(3)</a></li>
    </ul>
    <p><br>
    </p>
    <p>et des dizaines d'autres!</p>
    <p><br>
    </p>
    <p>Si on est parano, on ferait peut-être même des exécutables
    intermédiaires.</p>
    <p><br>
    </p>
    <p>Cordialement<br>
    </p>
    <pre class="moz-signature" cols="72">--
    Basile Starynkevitch <a class="moz-txt-link-rfc2396E" href="mailto:basile@starynkevitch.net">&lt;basile@starynkevitch.net&gt;</a>
    (only mine opinions / les opinions sont miennes uniquement)
    92340 Bourg-la-Reine, France
    web page: starynkevitch.net/Basile/ &amp; refpersys.org

    </pre>
    </body>
    </html>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From didier gaumet@21:1/5 to All on Tue Mar 7 09:30:01 2023
    Le 07/03/2023 à 01:26, roger.tarani@free.fr a écrit :
    [...]
    L'individu veut être administrateur mais n'en a pas les capacités.
    [...]


    [HS]
    - si c'est ton client, tu lui fais comprendre diplomatiquement qu'il ne
    peut pas remplir ses fonctions correctement sans une formation ad-hoc
    que tu lui proposes contre rétribution. Si après ça il n'a toujours pas
    le niveau tu lui proposes une télé-gérance technique payante
    - si c'est un collègue dans ta boîte ou un collaborateur d'une autre
    boîte avec laquelle la tienne collabore, tu fais remonter à ta
    hiérarchie qu'il y a un problème de répartition des tâches et
    d'efficacité et tu la laisse gérer ça (c'est son boulot)
    - si c'est un copain/ami/relation pour qui tu interviens gracieusement,
    tu lui fais comprendre gentiment que ton bénévolat a ses limites parce
    que tu as une vie par ailleurs et tu lui proposes d'administrer son
    bouzin ou de te désengager, à ton choix
    [fin HS]

    [...]
    J'ai installé alacarte que je ne connaissais pas. Le programme est alors accessible via le nom "Main Menu".
    Il permet aisément de gérer le menu Applications (essai fait sous gnome).

    ok

    Mais je ne vois rien pour gérer des icônes sur le bureau.

    Oui, ça dépend du DE utilisé: ceux qui essaient de mettre à l'aise les utilisateurs de Windows présentent des ces options similaires à Windows,
    les autres partiellement ou pas du tout. Dans le cas de Gnome, comme tu
    l'as vu, rien de cela, tu te contentes de placer des fichiers .desktop
    sur le bureau avec les droits d'exécution et c 'est bon.

    [...]
    J'ai bêtement fait clic droit "Create launcher on the panel", ce qui déclenche l'erreur freedesktop.org ...

    J'utilise Gnome 3.38 sous Bullseye et je n'ai pas cette option de menu contextuel. D'après tes retours précédents je pense que dans le passé tu
    as installé le DE Xfce et que quand tu l'as désinstallé tu n'as fait qu'imparfaitement le ménage et que xfce4-panel est resté installé mais
    qu'il n'est pas totalement opérationnel dans ton contexte de DE Gnome.

    [...]
    - [desktop, gnome] l'extension Gnome packagée par Debian 11 pour placer
    des icônes sur le bureau ne fonctionne plus (trop vieille), dans Debian
    12 c'est une version NG, que tu peux trouver directement sur le site des extensions Gnome si tu veux l'installer dans le Gnome de Bullseye.

    De quelle extension parles-tu (en version NG/Nouvelle Génération, sans doute) ?

    Bon alors je t'ai partiellement raconté des bêtises, l'ancienne
    extension gnome pour les icônes sur le bureau n'est plus opérationnelles
    à partir de Gnome 40 il me semble. Donc pour Debian Bullseye (Gnome
    3.38) elle est OK. Pour les versions ultérieures c'est la nouvelle
    extension.
    Les paquets Debian pour ces extensions: https://packages.debian.org/search?keywords=desktop-icon&searchon=names&suite=all&section=all
    La nouvelle extension sur le site Gnome dédié: https://extensions.gnome.org/extension/2087/desktop-icons-ng-ding/

    QUESTION SUBSIDIAIRE (et réponse trouvée)
    Comment lancer un programme avec une icône en tant que sudoer ?
    Le plus simple que j'ai trouvé est de passer la commande
    'sudo /path/to/program'

    je suis un inculte de la question dans un contexte GUI, donc vérifie soigneusement mes propos avant toute action.
    Avant il y avait des utilitaires du style gksu ou gksudo (dans bullseye
    il reste encore lxqt-sudo). Mais la gestion de ces autorisations a été
    durcie ultérieurement et j'ai l'impression (clairement, j'y connais
    rien) que maintenant ce doit être géré en paramétrant Policykit dont la
    doc est là (je ne l'ai pas lue):
    https://polkit.pages.freedesktop.org/polkit/

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From didier gaumet@21:1/5 to All on Tue Mar 7 09:40:01 2023
    Le 07/03/2023 à 09:25, didier gaumet a écrit :
    [...
    Avant il y avait des utilitaires du style gksu ou gksudo (dans bullseye
    il reste encore lxqt-sudo). Mais la gestion de ces autorisations a été durcie ultérieurement et j'ai l'impression (clairement, j'y connais
    rien) que maintenant ce doit être géré en paramétrant Policykit dont la doc est là (je ne l'ai pas lue): https://polkit.pages.freedesktop.org/polkit/

    il semblerait que pkexec soit l'équivalent moderne et sécurisé des
    anciennes commandes gksu/gksudo

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Basile Starynkevitch@21:1/5 to roger.tarani@free.fr on Tue Mar 7 15:30:02 2023
    This is a multi-part message in MIME format.
    On 07/03/2023 14:32, roger.tarani@free.fr wrote:
    Cette approche est passionnante, bien que non simple ni cadrée en
    terme d'effort à consentir (h, j, s, m ?).


    (en parlant d'un programme en C utilisant des appels systèmes et setuid <https://fr.wikipedia.org/wiki/Setuid>)


    L'effort à consentir dépend fortement de la compétence du codeur, de son accès à une documentation à jour, etc....

    Pour quelqu'un d'habitué à coder sous Linux (par exemple l'auteur des logiciels libres sudo ou super) l'effort devrait se compter en jour ou
    une semaine, mais pas des mois.


    Car elle invite à considére les internes du système utilisé quotidiennement.

    Mais avant ça, la question me semble être :
      Est-qu'un fichier truc.desktop qui contient 'Terminal=true' et
    surtout 'Exec=sudo /usr/local/bin/truc'
      qui déclenche l'appel d'une fenêtre d'un agent de sécurité (lequel attend le pwd du sudoer présumé),
    pose ou non un problème de sécurité ? (Vs un 'sudo truc' en CLI, dont
    je crois qu'il fait la même chose)



    Peut-être, dans le cas où le $PATH a été modifié par maladresse (ou malveillance).

    Et on peut aussi soupçonner (ou auditer) le code du noyau Linux ou de la librairie GNU libc ou musl-libc.


    Et on apprendrait des choses à étudier le code (en logiciel libre) des commandes sudo en https://github.com/sudo-project/sudo

    Enfin, le contexte applicatif est essentiel: si on code un petit service
    web nécessaire à une boutique de fringues, c'est très différent de coder (ou de valider) par exemple un respirateur Covid en open source. https://github.com/Recovid

    (que j'ai eu l'honneur d'expertiser avec des collègues du CEA LIST <https://list.cea.fr/>, mon employeur).


    Librement

    --
    Basile Starynkevitch<basile@starynkevitch.net>
    (only mine opinions / les opinions sont miennes uniquement)
    92340 Bourg-la-Reine, France
    web page: starynkevitch.net/Basile/ & refpersys.org

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 07/03/2023 14:32,
    <a class="moz-txt-link-abbreviated" href="mailto:roger.tarani@free.fr">roger.tarani@free.fr</a> wrote:<br>
    </div>
    <blockquote type="cite"
    cite="mid:484592140.-2089248312.1678195970601.JavaMail.zimbra@free.fr">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <div style="font-family: arial, helvetica, sans-serif; font-size:
    12pt; color: #000000">
    <div>Cette approche est passionnante, bien que non simple ni
    cadrée en terme d'effort à consentir (h, j, s, m ?).<br>
    </div>
    </div>
    </blockquote>
    <p><br>
    </p>
    <p>(en parlant d'un programme en C utilisant des appels systèmes et
    <a moz-do-not-send="true"
    href="https://fr.wikipedia.org/wiki/Setuid">setuid</a>)</p>
    <p><br>
    </p>
    <p>L'effort à consentir dépend fortement de la compétence du codeur,
    de son accès à une documentation à jour, etc....</p>
    <p>Pour quelqu'un d'habitué à coder sous Linux (par exemple l'auteur
    des logiciels libres <font face="monospace">sudo</font> ou <font
    face="monospace">super</font>) l'effort devrait se compter en
    jour ou une semaine, mais pas des mois.</p>
    <p><br>
    </p>
    <blockquote type="cite"
    cite="mid:484592140.-2089248312.1678195970601.JavaMail.zimbra@free.fr">
    <div style="font-family: arial, helvetica, sans-serif; font-size:
    12pt; color: #000000">
    <div>Car elle invite à considére les internes du système utilisé
    quotidiennement.<br data-mce-bogus="1">
    </div>
    <div><br data-mce-bogus="1">
    </div>
    <div>Mais avant ça, la question me semble être : </div>
    <div>  Est-qu'un fichier truc.desktop qui contient
    'Terminal=true' et surtout 'Exec=sudo /usr/local/bin/truc'  </div>
    <div>  qui déclenche l'appel d'une fenêtre d'un agent de
    sécurité (lequel attend le pwd du sudoer présumé),</div>
    <div>  <span style="text-decoration: underline;"
    data-mce-style="text-decoration: underline;">pose ou non un
    problème de sécurité</span> ? (Vs un 'sudo truc' en CLI,
    dont je crois qu'il fait la même chose)<br data-mce-bogus="1">
    </div>
    </div>
    </blockquote>
    <p><br>
    </p>
    <p><br>
    </p>
    <p>Peut-être, dans le cas où le <font face="monospace">$PATH</font>
    a été modifié par maladresse (ou malveillance).</p>
    <p>Et on peut aussi soupçonner (ou auditer) le code du noyau Linux
    ou de la librairie GNU libc ou musl-libc.<br>
    </p>
    <p><br>
    </p>
    <p>Et on apprendrait des choses à étudier le code (en logiciel
    libre) des commandes <font face="monospace">sudo</font> en <a
    moz-do-not-send="true"
    href="https://github.com/sudo-project/sudo"
    class="moz-txt-link-freetext">https://github.com/sudo-project/sudo</a><br>
    </p>
    <p>Enfin, le contexte applicatif est essentiel: si on code un petit
    service web nécessaire à une boutique de fringues, c'est très
    différent de coder (ou de valider) par exemple un respirateur
    Covid en open source. <a moz-do-not-send="true"
    href="https://github.com/Recovid" class="moz-txt-link-freetext">https://github.com/Recovid</a><br>
    </p>
    <p>(que j'ai eu l'honneur d'expertiser avec des collègues du <a
    moz-do-not-send="true" href="https://list.cea.fr/">CEA LIST</a>,
    mon employeur).</p>
    <p><br>
    </p>
    <p>Librement<br>
    </p>
    <pre class="moz-signature" cols="72">--
    Basile Starynkevitch <a class="moz-txt-link-rfc2396E" href="mailto:basile@starynkevitch.net">&lt;basile@starynkevitch.net&gt;</a>
    (only mine opinions / les opinions sont miennes uniquement)
    92340 Bourg-la-Reine, France
    web page: starynkevitch.net/Basile/ &amp; refpersys.org

    </pre>
    </body>
    </html>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From didier gaumet@21:1/5 to All on Tue Mar 7 19:50:02 2023
    Le 07/03/2023 à 14:57, roger.tarani@free.fr a écrit :
    [...]
    https://extensions.gnome.org/extension/2087/desktop-icons-ng-ding/

    Je viens d'essayer cette extension.
    Ça me crée en double tous les fichiers sur le bureau ! (2 tailles)
    Quand je la désactive, mes fichiers disparaissent du bureau tandis qu'on les voit dans nautilus.
    Un copier-coller sur le bureau d'un fichier .desktop les fait réapparaître !
    hum...

    chez moi (Debian bullseye, Gnome 3,38) par souci d'homogénéité je suis passé à cette nouvelle extension plutôt que l'ancienne parce que j'ai navigué un temp entre Fedora et Debian et que l'ancienne ne marchait
    plus sous le Gnome plus récent de Fedora comparé à Debian.

    Ici ça marche parfaitement.
    Je ne sais quoi te dire: peut-être n'as-tu pas désinstallé correctement l'ancienne (donc doublons) et paramétré la nouvelle (tout ça dans
    l'appli GUI "Extensions" ou l'appli CLI gnome-extensions)?

    [...]
    Voir aussi ma question dans mon dernier message à Basile
    (dans truc.desktop, Exec=sudo /usr/local/bin/truc, qui déclenche une
    demande de pwd est-il assez sûr/aussi sûr qu'un 'sudo truc' en CLI ?)

    Je suis une truffe côté sécurité, donc se méfier de ce que je dis vu l'aspect sensible de la question.

    Mais en très gros de ce que j'avais vaguement compris (tu noteras les précautions oratoires que j'emploie, hein), ça me semblerait équivalent
    si tu n'exécutes en tant que root qu'un script shell, mais ce serait non
    pas moins sûr mais potentiellement moins opérationnel si tu lances ainsi
    une appli GUI.

    Et l'avènement de pkexec pour gérer ce genre de chose à la place des
    anciens outils, c'est comme le fait de ne plus faire lancer le serveur X
    par root: le but serait d'avoir une gestion fine des autorisations
    d'exécution en ne donnant des privilèges root qu'à des morceaux d'applis plutôt qu'à des applis, qui plus est plus finement.

    Mais, rappel: j'ai peut-être compris seulement la moitié du truc, et en
    plus de travers, hein. Prudence.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From hamster@21:1/5 to All on Tue Mar 7 22:50:01 2023
    Le 07/03/2023 à 01:32, roger.tarani@free.fr a écrit :
    Mais peux-tu expliquer le contexte dans lequel tu fais apparaître
    "Create launcher on the panel" dans le menu contextuel ?

    Je n'utilise pas gnome mais mate. Sous mate en cliquant droit sur le
    bureau, j'ai un menu contextuel qui contiens "creer un lanceur".

    Mais la n'est pas la question : je voulais juste souligner que quand on
    a fait un fichier lanceur, il ne faut pas faire ensuite de clic droit
    dessus.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From hamster@21:1/5 to All on Tue Mar 7 23:00:01 2023
    Le 07/03/2023 à 09:39, didier gaumet a écrit :
    il semblerait que pkexec soit l'équivalent moderne et sécurisé des anciennes commandes gksu/gksudo

    Exact. Je sais pas si c'est moderne et sécurisé, mais je sais que c'est
    la commande qui marche quand on a un linux basé sur systemD.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From didier gaumet@21:1/5 to All on Wed Mar 8 14:20:01 2023
    [CORRECTIF]
    Bon alors je reviens sur ce que j'ai dit, qui illustre bien mon peu de maîtrise du sujet:
    - Polkit a remplacé Policykit (je croyais que c'était juste une
    abréviation mais non)
    - pkexec pour lancer un programme GUI en tant que root semble
    fonctionner sous X mais pas sous Wayland, non parce que Wayland n'aurait
    pas encore implémenté certains composants mais parce qu'on considère
    pkexec dangereux et qu'on privilégie la conception d'applis GUI
    intégrant les fonctionnalités Polkit pour élévation de privilèges (périmètre et durée réduits) lorsque nécessaire

    Il y a une page Polkit sur le wiki Debian (mêm si elle s'appelle
    Policykit, il s'agit de Polkit, apparemment):
    https://wiki.debian.org/PolicyKit

    Pour ce qui est de la recherche de doumentation, quand je ne trouve pas
    mon bonheur sur le site principal de Debian ou son wiki, je consulte
    souvent le wiki Archlinux, bien fourni. Je crois me souvenir que les
    docs et wiki Gentoo sont assez bien documentés aussi. Et pour des grands concepts, la doc RedHat/Fedora n'est pas mal.
    On peut aussi chercher en priorité lorsqu'il s'agit de projets upstream, directement sur leur site (ex: Freedesktop, Systemd, etc...)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)