[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: faire un paquet .deb



salut,

On Mon, Aug 25, 2025 at 08:27:09PM +0200, hamster wrote:
> > > #!/bin/bash
> > dans ce cas, sh (10* moins gros) fait le taff
> Merci de l’info.

en fait c'est le cas dans 99% des cas et les 1% peuvent vite
être contournés. ca fait des années que je n'écris plus de scripts
shell qu'avec dash ou rc.

> > > set -e
> > > echo -ne "\n\nle tunnel est ouvert\n\nmaintenance@honeypot:~$ "
> > 
> > * rend ton script modulaire et partage le
> 
> Je comprend meme pas ce que tu veux dire par "rend modulaire".

je voulais dire: rend le générique.

si tu écris

	echo tunnel for luke@deathstar

l'info n'est pertinente que dans ton cas


par contre

	echo tunnel for $(whoami)@$(hostname)

va marcher pour tout le monde

> Pour ce qui est du partage, c’est mon intention, je suis en cours de
> rédaction de documentation sur ce que j’ai fait pour publier le tout.

so do I :)

> J’ai aussi une part de modestie : je suis conscient de mon niveau très
> bas en scripts bash et que j’ai fait ca sans bien connaitre les bonnes
> pratiques.

je fais pareil: je partage mon code en me disant que:

* ca peut servir à qq1
* c'est une base de discussion pour améliorer les choses.

> J’hésite donc a partager un truc dont je ne sais meme pas si il
> ne contient pas une erreur de débutant ou faille de sécurité béante que
> j’ignore.

ben demander une relecture sur cette liste ou sur unix[unix] me parait une
bonne idée.

> > * utilise un heredoc quand tu fais du multiligne
> Je connais pas heredoc. Man heredoc ne me donne rien. Je suis allé cherche

here-doc-text dans man dash. c'est le système de template
interne au shell. dans mon exemple, ceci est un heredoc

<<% cat

    le tunnel avec $(whoiam)@$(hostname) est ouvert
    * saisir ctrl-d pour quitter le tunnel
    * inutile de tapper des commandes: ce shell est un cat amélioré

%


> de la doc la dessus sur internet et je trouve pas du tout la syntaxe que
> tu utilise. Je trouve des trucs avec un ">" au début de chaque ligne. Je
> m’y perd dans tout ca, comment on fait pour savoir quelle est la bonne
> version et ou est la doc pour cette version ???

je suis pas sur d'avoir compris le sens de ta question. tu veux dire
"comment trouver la doc du shell"? man dash

> > * les messages pour les humains sont a écrire sur stderr (2)
> >    et non sur stdout (1)
> Ah, je savais pas.

oui c'est une erreur de plus en plus courrante mais imagine
un script qui écrit un tsv sur &1 (stdout).

si tu écris tes messages au meme endroit

	echo "traitement en cours"

et que bob tape

	tonscript > final.tsv

il va se retrouver avec un "traitement en cours" en plein milieu du tsv.

si tu fais:

	>&2 echo "traitement en cours"

bob va voir

	tonscript > final.tsv
	traitement en cours

et ton tsv sera tout propre.  c'est la regle 2 de McIlroy [doug]

unix: https://groupes.renater.fr/sympa/subscribe/unix
doug: https://en.wikipedia.org/wiki/Unix_philosophy

> > > read commande
> > > commande="$(echo $commande|cut -d' ' -f1)"
> > > echo -e "bash: $commande : commande introuvable"
> > > exit 0
> > > ----------------
> > 
> > pourquoi capturer à chaque ligne ???

> Je comprend pas "capturer a chaque ligne". Je n’ai utilisé "read" qu’une
> seule fois. Comme tu vois mon niveau en script bash est "grand débutant".

je suis allé un peu vite: ca n'est pas une boucle while :)
en fait il exite au premier read.

> > <<% cat
> > 
> >     le tunnel avec $(whoiam)@$(hostname) est ouvert
> >     * saisir ctrl-d pour quitter le tunnel
> >     * inutile de tapper des commandes: ce shell est un cat amélioré
> > 
> > %
> > cat
> 
> Merci pour ces améliorations. Je pige pas pourquoi tu remet cat a la fin ?

pour la même raison que du fais read: maintenir la connexion en vie.
sauf que dans ton cas l'utilsateur tappe enter alors que ma version
nécessite un ctrl-d. je me dis que enter ca peut être tappé un peu
impulsivement et du coup la connexion se coupe. ctrl-d il faut vraiment
le faire exprès.

> > les mots de passe ça fait chier bob en général.
> Oh oui, ca c’est très vrai.

ah! tu vois? on connais le même ;)

> > par contre ce que tu
> > peux faire c'est avoir un mécanisme simple d'autorisation au debut de
> > ton script. un truc du genre
> > 
> > [ -e ~maintenance/welcome ] || {
> > 	>&2 echo pas de maintenance hui
> > 	exit 1
> > }

> Alors la, je pige que dalle. Merci quand meme pour la suggestion, si un
> jour j’ai assez progressé pour la comprendre je l’utiliserai.

[ -e ~maintenance/welcome ] # le fichier existe
||                          # ou alors
{
	# j'affiche un message d'erreur
	>&2 echo pas de maintenance hui
	# et je retourne une valeur fausse
	exit 1
}

si tu mets ca en début de script tu peux faire:

touch ~maintenance/welcome pour accepter les connexions
rm    ~maintenance/welcome pour refuser  les connexions

> Mais du coup je pige pas ton usage de tmux.
> 
> Pour partager une session ce que j’ai trouvé c’est :
> - l’autre utilisateur, depuis son compte, lance :
> tmux new-session -s toto

meme pas besoin de nommer la session (si bob me demande de l'aide,
je doute qu'il utilise tmux).

* moi je fais juste `tmux` pour créer une nouvelle session
* bob peut faire `tmux att` et comme ca on "partage l'écran"

> ca se fait tout seul dans un script quand il lance le mécanisme de
> controle a distance

bah moi je prefere ne pas mettre trop d'intelligence dans le script de
maintenance: ca doit rester simple et souple.

> - Je me connecte en ssh.
> - J’utilise sudo su bob pour devenir lui.
> - Je lance :
> tmux attach-session -t toto

perso je me connecte directement en bob. j'ai pas de compte spécifique.

> la aussi je me suis fait un script pour pas avoir a taper un truc aussi
> compliqué.

ben tmux et tmux att sont des commandes aux longueurs acceptables pour
moi, perso.

> Visiblement ce que tu fais est beaucoup plus simple. Est-ce que tu a pas
> tout mis ? Ou bien est-ce que j’ai vraiment très mal cherché quand j’ai
> cherché comment partager un terminal ?

non: je me sers juste de l'implicite que permet le comportement par
defaut en me disant que si jamais bob se met a utiliser tmux, je ferais
plus long a ce moment là.

ta version est donc plus robuste. moi j'ai été récompensé par ma flemme
puisque de fait, mes bobs ne sont pas des tmuxiens.

a+

-- 
Marc Chantreux
Pôle CESAR (Calcul et services avancés à la recherche)
Université de Strasbourg
14 rue René Descartes,
BP 80010, 67084 STRASBOURG CEDEX
03.68.85.60.79

Attachment: signature.asc
Description: PGP signature


Reply to: