This is a multi-part message in MIME format.
On 07/03/2023 01:44,
[email protected] wrote:
----- Mail original -----
De: "hamster"<[email protected]>
À: "Liste Debian"<[email protected]>
Envoyé: Lundi 6 Mars 2023 21:31:25
Objet: Re: debian 11 - créer une "desktop icon"... simplement
Le 06/03/2023 à 17:34,[email protected] 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<
[email protected]>
(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:
[email protected]">
[email protected]</a> wrote:<br>
</div>
<blockquote type="cite"
cite="mid:
[email protected]">
<pre class="moz-quote-pre" wrap="">
----- Mail original -----
De: "hamster" <a class="moz-txt-link-rfc2396E" href="mailto:
[email protected]"><
[email protected]></a>
À: "Liste Debian" <a class="moz-txt-link-rfc2396E" href="mailto:
[email protected]"><
[email protected]></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:
[email protected]">
[email protected]</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:
[email protected]"><
[email protected]></a>
(only mine opinions / les opinions sont miennes uniquement)
92340 Bourg-la-Reine, France
web page: starynkevitch.net/Basile/ & refpersys.org
</pre>
</body>
</html>
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)