07 Oct 2019, 00:00

100% CPU pris par lsass quand Chrome lancé

Dans le cas où, au lancement de Chrome, le processus lsass.exe s’emballe jusqu’à prendre 100% d’un coeur, ça peut être dû à une installation d’extension qui n’aboutit jamais.

Essayer de supprimer 2 fois le dossier %appdata%\Microsoft\Protect\GUID.

07 Oct 2019, 00:00

Notes sur systemd

Gestion des services

Les services sont stockés sous forme de fichier .services présents dans /lib/systemd/system/ et /etc/systemd/system/.
Lorsqu’ils sont activés, des liens vers ces fichiers sont présents dans des dossiers du type /lib/systemd/system/my-service.wants ou /lib/systemd/system/runlevel.wants.

Pour désactiver le démarrage automatique d’un service :
sudo systemctl disable mon-service.service
Pour le réactiver :
sudo systemctl enable mon-service.service
Vérifier s’il va démarrer automatiquement au prochain boot :
systemctl is-enabled mon-service.service
Voir s’il est en cours de fonctionnement :
systemctl status mon-service.service

06 Oct 2019, 00:00

Désactiver le formatage automatique des cellules en tant que nombre sous LibreOffice Calc

Source

Ouvrir un classeur vierge. Taper F11, pour Ouvrir les Styles et formatages.
Modifier “Par défaut” (modifie les caractéristiques de toutes les celleules, pour ce document uniquement)“, et définir le style par défaut pour les nombre en tant que “Texte”.

Fichier -> Modèles -> Enregistrer comme modèle
Ranger dans une catégorie, lui donner un nom (par ex. “FormatageAutoEnTexte”), cocher “par défaut” en bas, et valider.

Ainsi, dans tous les nouveaux documents, ce réglage sera appliqué, et les 0 en début de chaîne ne sauteront plus.

28 Sep 2019, 00:00

Gestion des GPO et ajout de fichiers ADMX

gpedit.msc sert uniquement à modifier les stratégies de groupes locales. La commande est disponible sur les Windows standards (Pro en tout cas).
gpmc.mmc sert à modifier, sur un controlleur de domaine, les GPO qui seront déployées chez les clients via Active Directory. Si cette commande n’est pas disponible sur un serveur, c’est probablement que le rôle de gestion Active Directory n’a pas été installé.

Par défaut, toutes les GPO ne sont pas disponibles dans l’outil gpmc.msc. Notamment, la catégorie “Modèles d’aministration”. Or, si on lance gpedit.msc, on voit que beaucoup de stratégies sont disponibles sous cette catégorie.

Pour ajouter des stratégies à l’outil gpmc.msc, on utilise des fichiers ADMX (ou, historiquement, ADM). Ils sont généralement déployés via les mises à jour Windows, mais ne sont disponibles que pour le système local. On les trouve dans le dossier %windir%\PolicyDefinitions, sous la forme de fichiers ADMX associés à des fichiers de localisation ADML dans des répertoires de langue (par exemple fr-FR).
On peut prendre tous ces fichiers, et les copier dans le dossier %windir%\SYSVOL\sysvol\mon.domaine.fr\Policies\PolicyDefinitions

27 Sep 2019, 00:00

FQDN d'un controlleur de domaine dans une mauvaise zone de sécurité d'Explorer

Description du problème chez Microsoft Tuto pour l’activation par GPO

Dans certains cas, lorsque l’on est dans un domaine, et que l’on cherche à accéder à un serveur via son nom complet(FQDN, du type server.domain.example.com), alors le poste considérera que ce domaine appartient à la zone de confiance “internet”, et donc bloquera l’ouverture de certains documents, scripts, exécutables etc.
Pour corriger ce problème, on peut aller dans les options internet du poste en question, et passer les sites *.domain.example.com en zone Intranet.

Mais on peut aussi déployer ceci sur tous les postes du domaine, via GPO, ce qui évite d’avoir à le faire à la main sur chaque poste. Pour ceci, sur un controlleur de domaine :
- S’assurer que les ficheirs ADMX ont été installés - gpmc.msc - Configuration utilisateur -> Stratégies -> Modèles d'administration -> Composants Windows -> Internet Explorer -> Panneau de configuration Internet -> Onglet Sécurité et activer le paramètre Liste des attributions de site aux zones Lorsqu’on rentre dans les propriétés du paramètre, on peut afficher les zones, et associer *.domaine.example.com à la valeur 1.
(1 : zone intranet ; 2 : sites de confiance ; 3 : internet ; 4 : sites ensibles)

23 Sep 2019, 00:00

Obtenir tous les numéros de série des disques

Avec 12 disques (a -> l)

for i in {a..l}; do echo sd$i; udevadm info --query=all --name=/dev/sd$i | grep ID_SERIAL_SHORT; done

29 Aug 2019, 00:00

Reconfiguration GRUB2 sur système EFI, avec partition slash chiffrée via LUKS et partition boot séparée

Se fait via un live-cd démarré en EFI, de la même architecture que le système à dépanner (pour que le chroot fonctionne)

  • sdX1 : ESP (EFI System Partition)
  • sdX2 : partition slash chiffré par LUKS
  • sdX3 : partition boot

    # On déchiffre et monte slash
    cryptsetup open /dev/sdX2 slash
    mount /dev/mapper/slash /mnt
    
    # On monte l'ESP et la partition /boot
    mount /dev/sdX3 /mnt/boot
    mount /dev/sdX1 /mnt/boot/efi
    
    # On monte les fichiers systèmes temporaires
    mount -o bind /sys /mnt/sys
    mount -o bind /sys/firmware/efi/efivars /mnt/sys/firmware/efi/efivars
    mount -o bind /dev /mnt/dev
    mount -o bind /proc /mnt/proc
    mount -o bind /run /mnt/run
    
    
    chroot /mnt
    grub-install /dev/sdX
    update-grub
    # On recrée l'initramfs, afin qu'il demande le mot de passe LUKS
    update-initramfs -k all -u
    

29 Jul 2019, 00:00

Docker

Une source intéressante
Images, conteneurs et volumes
Dockerfile build

Installation sous Debian

  • On installe avec

    sudo apt install docker.io
    

    à partir de buster ; sinon, utiliser le site docker.io.

  • Puis on peut faire

    sudo adduser user docker
    

    pour ne pas avoir à taper sudo à chaque commande.

Gestion des images

  • Chercher une image Debian officielle, en se basant sur le score de l’image

    docker search --filter=stars=1000 debian
    
  • Récupérer cette image en local (stocké dans /var/lib/docker/, en grosse partie sous forme de diff dans overlay2/ )

    docker pull debian:tag
    # si :tag est omis, docker cherchera :latest
    
  • Lister les images locales

    docker image ls -a
    
    # ou
    docker images
    
  • Créer une image depuis un Dockerfile

    # In folder containing the Dockerfile
    docker build -t "my-image123:test" .
    
  • Pour supprimer une image

    docker rmi my-image123:test
    # on peut aussi utiliser l'id de l'image
    

docker build & Dockerfile

Lien qui en parle aussi
Sert à génerer des images modifiées à partir d’images existantes.
Utilise un fichier Dockerfile (nom non négociable).
Celui-ci est formaté avec une instruction FROM qui définit l’image de base utilisée. Ce peut être un nom type debian ou un ID type 00bf7fdd8baf

On peut utiliser RUN pour lancer des instructions shell pour modifier notre image (par exemple installer des paquets).

On peut gérer le programme lancé au démarrage d’un conteneur instancié sur cette image (par défaut bash chez Debian), ainsi que la commande executée par ce programme, via les instructions ENTRYPOINT et CMD. Plus de détails ici.

Un exemple de Dockerfile qui lance un serveur apache basique :

FROM debian

RUN apt-get update \
&& apt-get install -y apache2 nano

EXPOSE 8080 80

CMD apachectl -D FOREGROUND

On peut ensuite construire l’image désirée via docker build :

docker build -t nom:tag /path/to/folder/with/Dockerfile
# --rm=false : permet de ne pas supprimer les conteneurs intermédiaires (cache), même après un build successful

Gestion des conteneurs

Un conteneur est instancié à partir d’une image.

  • Créer un conteneur à partir de cette image

    # en version simple
    docker create debian
    # qui va chercher debian:latest
    # on peut aussi faire
    
    # en plus complet
    docker create -ti --name my-app123 --hostname app --net my-net123 -p 8080:80 debian:tag welcome-command
    # les options doivent être avant le nom de l'image de base
    # -t pour --tty, ce qui permettra de lancer le conteneur avec un shell root@truc:/# . Sans ça, il se coupe si rien à faire
    # -i pour --interactive , ce qui laissera la porte ouverte au conteneur pour recevoir des commandes (STDIN ouvert)
    # si aucun nom s'est spécifié, Docker en génerera un poétique
    # si aucun hostname n'est spécifié, il sera géneré aléatoirement
    # --net ou --network permet d'attacher le conteneur à un réseau choisi (doitj être créé auparavant
    # -p pour exposer les ports ; voir section réseau
    # on peut spécifier, après le nom d'image, la commande à exécuter (typiquement bash)
    
  • Démarrer ce conteneur

    docker start my-app123
    

    Le conteneur est lancé, mais ne s’affiche pas dans notre terminal (juste son nom).
    Il faut l’attacher, pour avoir le shell à l’écran et pouvoir interagir.

    docker attach my-app123
    

    Ou encore

    docker exec -it container_name bash
    

    On peut directement attacher le shell lors de la création du conteneur, mais il faut alors spécifier l’option -i pour pouvoir interagir avec le conteneur (taper des commandes).

    docker start -ia my-app123  # --interactive --attach
    # -a , --attach pour voir l'état du conteneur
    # -i pour pouvoir taper des commandes
    

    On peut ensuite détacher le conteneur avec Ctrl-P -> Ctrl-Q.

  • Éteindre ce conteneur

    docker stop my-app123
    
    docker kill my-app123 # pour forcer l'extinction
    
  • Lister les conteneurs

    docker container ls
    # ou en plus court
    docker ps
    # pour lister les conteneurs en cours d'éxécution
    
    docker ps -a
    # pour lister tous les conteneurs, même éteints.
    
    docker ps -s
    # pour lister la taille des conteneurs
    
  • Supprimer un conteneur précis

    docker container rm my-app123
    # on peut aussi utiliser l'id
    
  • Supprimer tous les conteneurs qui ne sont pas en train de tourner

    docker container prune
    # -f si on souhaite ne pas avoir de prompt de confirmation
    

docker run

Combine docker pull, docker create et docker start

docker run name
# télécharge si nécessaire l'image "name:latest", crée un container avec un nom aléatoire, et le lance
# on peut passer à docker run les mêmes arguments que docker create
docker run --name="my-app123" -p 80:80 -e TERM=xterm -d --net my-net123 --ip 172.18.0.23 demo-docker

Réseau

Doc chez docker

Docker crée une interface virtuelle pour chaque réseau créé. Par défaut, c’est la carte docker0 qui crée le réseau bridgé 172.17.0.0/24 avec l’adresse 172.17.0.1.
Il y’a différents types de réseau : bridge (réseau virtuel “simple”, choix par défaut), host (le conteneur se connecte directement via la pile réseau de la carte de l’hôte), overlay (surtout pour le swarm), macvlan.

On peut créer des réseaux (bridgés) définis sur mesure. Ces réseaux se comporteront différemment du réseau par défaut. Notamment, les machines pourront communiquer entre elles via leur adresse IP, mais également via le nom de conteneur. De plus, tous les ports de chaque conteneur seront ouverts vers tous les autres conteneurs sur le même réseau (et, par défaut, aucun port ouvert vers l’extérieur). Un conteneur peut être connecté à plusieurs réseaux.
Chaque conteneur lancés aura aussi une interface virtuelle type veth1234567.

  • lister les réseaux

    docker network ls
    
  • voir le détail d’un réseau

    docker network inspect network-name
    
  • créer un réseau

    docker network create --subnet 172.18.0.0/24 my-net123
    
  • lancer un container sur un network

    docker run --net my-net123 --ip 172.18.0.23
    
  • Connecter un conteneur sur un réseau (peut être fait à la volée pour un réseau déifni, mais le conteneur doit être éteint pour le faire sur le réseau par défaut docker0)

    docker network connect my-net123 my-app123
    
  • Déconnecter un conteneur d’un réseau (peut être fait à la volée pour un réseau déifni, mais le conteneur doit être éteint pour le faire sur le réseau par défaut docker0)

    docker network disconnect my-net123 my-app123
    
  • Supprimer un réseau

    docker network rm my-net123
    
  • retirer les réseaux inutiles

    docker network prune
    

Exposition et publication de ports

Un article intéressant

L’exposition de ports peut se faire dans le Dockerfile, ou bien à la création du conteneur. Toutefois, elle est uniquement là pour documenter les ports utilisés par le conteneur, et n’aura aucun effet pratique. Cela peut se faire via docker create --expose 8080:80/tcp ou bien dans le Dockerfile via EXPOSE 8080 80/tcp.

La publication de ports sert effectivement à “ouvrir” le port du conteneur depuis l’hôte (à la manière des routeurs). Ainsi, le service fourni par le conteneur deviandra accessible via l’IP de l’hôte sur le port choisi. Cette publication ne peut se faire que lors de la création d’un conteneur.

docker create -p 8080:80/tcp debian
# tcp est le défaut, et peut être omis, ou remplacé par udp

va rediriger le port 8080 de l’hôte vers le port 80 du conteneur. Ainsi, seul l’IP de l’hôte a besoin d’être routable.
On peut également utiliser l’option --expose, mais celle-ci ne semble avoir aucun effet si l’option -p n’est pas utilisée.

Exposer un port sur un conteneur déjà lancé

Volumes

Servent à monter un dossier de l’hôte chez le client.
Peut être déclaré dans le Dockerfile (non recommandé ici), ou au moment de la création du conteneur.

Docker-compose

Doit être installé en sus de docker.

sudo apt install docker-compose

Sert automatiser, via fichier de conf docker-compose.yml, la construction d’image sur mesure, ainsi que la création de conteneurs basé sur ces images, et leur paramétrage (port, etc…).

Si on est dans un dossier testcompose, on peut avoir le fichier docker-compose.yml suivant :

version: '3'

services:

  apache-test:
    build:
      context: apache-folder
      dockerfile: Dockerfile
    ports:
      - "8080:80"
    restart: always

Ceci définit un service apache-test, dont le Dockerfile et les fichiers pouvant être nécessaires à se construction se trouvent dans le dossier (context) apache-folder. Le port 80 sera publié via le port 8080 de l’hôte.

On peut construire l’image avec docker-compose build. Elle sera nommée testcompose_apache-test (nomdudossier_nomduservice).
Ceci crée aussi un réseau testcompose_default auquel seront liés tous les services définis dans le docker-compose.yml.

On peut aussi construire l’image, puis démarrer un container basé sur cette image, via docker-compose up.
Ceci va créer un container dont le nom est testcompose_apache-test_1.
On peut passer les conteneurs en arrière-plan avec l’option -d.

Docker secrets

Lire ici !

Troubleshooting

Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address already in use

Signifie que le port sur lequel on essaye de lancer une machine est déjà pris par une autre machine.

15 Jul 2019, 00:00

Nowhere

Bolas
Chargeur solaire
Lampions
Bol tibétain / balles jonglage
Enceinte
Brumisateur

Sacoche - Gourde - Cup - Petite montre
Papier
Stylo
Frontale
Bouchons d’oreille
Carnet
Sérum phy

Sachets plats céréales priméal (5)
Céréales sucrées (choco)
Mélange céréales (“sportif”)
Couverts
Bidons
Sachets réhydratation !!
Gel hydro-alcooolique
Sopalin
L32D
Sacs poubelles

Tente
Matelas
Sac couchage
Couvertures survie
Plaids
Glacière
Ficelle
Outils (pince étau ; masse ; tournevis plat/cruci )

03 Jul 2019, 00:00

Test

Titre 1

Titre 2

Titre 3

Titre 4

Titre 5
Titre 6

Elément en italique
Élément en italique aussi (étoiles)
Élement en gras

Lien html