Astuces Git

Découper les changements dans un commit

git add -p

-p, –patch Interactively choose hunks of patch between the index and the work tree and add them to the index. This gives the user a chance to review the difference before adding modified contents to the index.

This effectively runs add –interactive, but bypasses the initial command menu and directly jumps to the patch subcommand. See “Interactive mode” for details.

Retourner à la branche précédente

git checkout -

Lister les fichiers ignorés

git check-ignore *

Gpg Reminder

Dumper une clé GPG publique

gpg --armor --export <key_id>
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQENBFvpfyEBCAC9i31yN0kPUeOGeGCVfxZESTQTb8+AhjWbDeptXs1uUJEmiC2x
[...]
=TWnJ
-----END PGP PUBLIC KEY BLOCK-----

Make password

Fabriquer un mot de passe pour /etc/shadow

python3 -c 'import crypt; print(crypt.crypt("My$uperStr0ngP4ssw0rd!", crypt.mksalt(crypt.METHOD_SHA512)))'

Debuguer et tester Saltstack

Tester le rendu jinja

 salt \* slsutil.renderer /srv/pillar/common.sls 'jinja'

Mettre à jour les fichiers (gitfs)

salt-run fileserver.update

Mettre à jour les pillars

salt \* saltutil.refresh_pillar

Mettre à jour les git_pillars

salt-run git_pillar.update

Debug d’un state spécifique

Pour lancer mystate.sls avec un targeting sur des grains spécifiques tout en précisant des pillars :

salt -C 'G@role:webserver and G@env:itg' state.sls mystate pillar='{"pillar1": "foo", "pillar2": "bar"}'

Dé-locker les gitfs

salt-run cache.clear_git_lock gitfs type=update

Dé-locker les git_pillars

salt-run cache.clear_git_lock git_pillar type=update

Lister les fichiers du fileserver

salt-run fileserver.dir_list

Lister les répertoires du fileserver

salt-run fileserver.file_list

Netcat et /dev/tcp

Ecrire dans un socket avec Netcat

On peut facilement écrire dans un socket avec Netcat (ou nc). Par exemple :

echo 'hello' | nc localhost 8000
# Définir un timeout de 2 secondes
echo 'hello' | nc -w2 localhost 8000
# Attendre une seconde avant de fermer le socket
echo 'hello' | nc -q1 localhost 8000

Il n’est pas toujours possible de bénéficier de l’outil Netcat (ou nc), l’outil n’étant pas installé par défaut sur toutes les distributions.

Le pseudo device /dev/tcp

Netcat peut facilement être remplacé par l’utilisation du pseudo device /dev/tcp

On peut simplement écrire dans ce “fichier” qui va ouvrir un socket selon les paramètres indiqués :

echo 'hello' > /dev/tcp/127.0.0.1/8000

Petite astuce supplémentaire, pour recevoir une éventuelle réponse :

exec 3<>/dev/tcp/127.0.0.1/8000 ; echo labs 1>&3 ; echo $(cat <&3)

exec permet de remplacer le shell avec un autre programme et de définir une redirection pour le programme courant.

On ouvre le socket en “read/write” et on redirige l’entrée et la sortie vers 3.

On écrit dans le socket puis on récupère la sortie.