ajout copy on code blocks
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
d6a206acda
commit
c24a564510
@ -1,30 +1,30 @@
|
||||
# Sauvegarder des données
|
||||
|
||||
1. Lister les partitions:
|
||||
```
|
||||
``` { .copy }
|
||||
lsblk
|
||||
```
|
||||
2. Identifier la partition contenant les fichiers à sauvegarder
|
||||
3. Monter la partition
|
||||
```
|
||||
``` { .copy }
|
||||
mkdir /mnt/nom_du_dossier
|
||||
mount /dev/sdXy /mnt/nom_du_dossier
|
||||
```
|
||||
4. Cibler le dossier à sauvegarder
|
||||
```
|
||||
``` { .copy }
|
||||
ls /mnt/nom_du_dossier
|
||||
```
|
||||
5. Créer le dossier de réception sur le serveur de backup:
|
||||
```
|
||||
``` { .copy }
|
||||
ssh -p 5555 bellinuxien@192.168.1.75
|
||||
mkdir /home/bellinuxien/BACKUPS/nom-de-dossier
|
||||
exit
|
||||
```
|
||||
6. Copier le dossier utilisateur vers le dossier sur le serveur de backup:
|
||||
```bash
|
||||
``` { .copy }
|
||||
rsync -ah -e "ssh -p 5555" /mnt/nom_du_dossier bellinuxien@192.168.1.75:/home/bellinuxien/BACKUPS/nom_du_dossier/ --info=progress2 && sync
|
||||
```
|
||||
7. Rapatrier les fichiers du serveur de backup vers une machine:
|
||||
```bash
|
||||
``` { .copy }
|
||||
rsync -ah -e "ssh -p 5555" bellinuxien@192.168.1.75:/home/bellinuxien/BACKUPS/nom_du_dossier/ /mnt/nom_du_dossier --info=progress2 && sync
|
||||
```
|
||||
|
||||
@ -11,66 +11,66 @@ declare -a MA_LIST
|
||||
### Modification de la liste
|
||||
|
||||
1. Ajout d'éléments
|
||||
```
|
||||
``` { .copy }
|
||||
MA_LIST=(1er_element 2nd_element)
|
||||
MA_LIST+=("3eme élément avec des espaces")
|
||||
MA_LIST[3]="4eme élémént"
|
||||
```
|
||||
2. Changement de valeur d'un élément
|
||||
```
|
||||
``` { .copy }
|
||||
MA_LIST[0]="la nouvelle valeur qu'on met pour le 1er élément"
|
||||
MA_LIST[1]="la valeur pour le 2eme élément"
|
||||
```
|
||||
3. Traitement sur l'ensemble des éléments
|
||||
- en utilisant la liste des index `${!MA_LIST[@]}`:
|
||||
```
|
||||
``` { .copy }
|
||||
for i in "${!MA_LIST[@]}" ; do
|
||||
echo "index = $i - value = ${MA_LIST[i]}"
|
||||
done
|
||||
```
|
||||
- en utilisant la liste des valeurs `${MA_LIST[@]}`
|
||||
```
|
||||
``` { .copy }
|
||||
for i in "${MA_LIST[@]}" ; do
|
||||
echo "value = ${i}"
|
||||
done
|
||||
```
|
||||
- nombre d'éléments:
|
||||
```
|
||||
``` { .copy }
|
||||
echo "nombre d'éléments : ${MA_LIST[]}
|
||||
```
|
||||
|
||||
## Les tableaux (`associative arrays`)
|
||||
|
||||
### Création d'un tableau
|
||||
```
|
||||
``` { .copy }
|
||||
declare -A MY_ARRAY
|
||||
```
|
||||
|
||||
1. Ajout d'éléments
|
||||
```
|
||||
``` { .copy }
|
||||
MY_ARRAY=([clé1]=1er_element [clé2]=2nd_element)
|
||||
MY_ARRAY+=([clé3]="3eme élément avec des espaces")
|
||||
MY_ARRAY[dernière_clé]="4eme élément"
|
||||
```
|
||||
2. Changement de valeur d'un élément
|
||||
```
|
||||
``` { .copy }
|
||||
MY_ARRAY[clé1]="la nouvelle valeur qu'on met pour l'élément associé à `clé1`"
|
||||
```
|
||||
3. Traitement sur l'ensemble des éléments
|
||||
- en utilisant la liste des clés `${!MY_ARRAY[@]}`:
|
||||
```
|
||||
``` { .copy }
|
||||
for i in "${!MY_ARRAY[@]}" ; do
|
||||
echo "key = $i - value = ${MY_ARRAY[i]}"
|
||||
done
|
||||
```
|
||||
- en utilisant la liste des valeurs `${MY_ARRAY[@]}`
|
||||
```
|
||||
``` { .copy }
|
||||
for i in "${MY_ARRAY[@]}" ; do
|
||||
echo "value = ${i}"
|
||||
done
|
||||
```
|
||||
- nombre d'éléments:
|
||||
```
|
||||
``` { .copy }
|
||||
echo "nombre d'éléments : ${MY_ARRAY[]}
|
||||
```
|
||||
|
||||
|
||||
@ -11,12 +11,12 @@ De même, la commande peut permettre de travailler sur un système devenu inacce
|
||||
## Utilisation
|
||||
|
||||
:bulb: Repérer le disque du système d'exploitation que l'on souhaite "chrooter"
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
lsblk
|
||||
```
|
||||
|
||||
- Monter les partitions nécessaires
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
sudo mount /dev/sda2 /mnt # exemple pour un disque sda2
|
||||
|
||||
sudo mount --bind /dev /mnt/dev
|
||||
@ -26,19 +26,19 @@ sudo mount --bind /run /mnt/run
|
||||
```
|
||||
|
||||
- Connexion:
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
sudo chroot /mnt
|
||||
```
|
||||
|
||||
:warning: A partir de cette commande, toutes les autres commandes saisies s'éffectuent sur le système cible
|
||||
|
||||
- Réparer le GRUB:
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
grub-install /dev/sda
|
||||
```
|
||||
|
||||
- Réparer le système d'exploitation:
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
apt --fix-broken install
|
||||
dpkg --configure -a
|
||||
apt install -f
|
||||
@ -46,12 +46,12 @@ apt install --reinstall apt
|
||||
```
|
||||
|
||||
- Pour se déconnecter:
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
exit
|
||||
```
|
||||
|
||||
- Démonter le système de fichier:
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
sudo umount -a /mnt
|
||||
```
|
||||
|
||||
|
||||
@ -6,12 +6,12 @@ On utilise un **Here Tag**, qui est souvent `EOF`mais que vous pouvez nommer com
|
||||
|
||||
#### Multi-lignes SANS Heredoc (avec `\n`)
|
||||
|
||||
```
|
||||
``` { .bash .copy }
|
||||
text=$'premièreligne\ndeuxièmeligne'
|
||||
```
|
||||
|
||||
#### Utilisation dans une variable
|
||||
```
|
||||
``` { .bash .copy }
|
||||
visiteur@domani:~$ MA_VARIABLE=$(cat <<EOF
|
||||
premiere ligne
|
||||
deuxième ligne
|
||||
@ -23,7 +23,7 @@ deuxième ligne
|
||||
```
|
||||
|
||||
#### Utilisation pour écrire dans un fichier
|
||||
```
|
||||
``` { .bash .copy }
|
||||
visiteur@domani:~$ cat <<EOF1 > file.txt
|
||||
premiere ligne
|
||||
deuxième ligne
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
## Repérer les partitions disponibles
|
||||
|
||||
Quelques commandes sont utiles pour connaître l'état des disques, des partitions et des points de montage
|
||||
```
|
||||
``` { .bash .copy }
|
||||
sudo fdisk -l
|
||||
sudo df -H
|
||||
```
|
||||
@ -19,38 +19,39 @@ On utilise la commande udiskctl qui nous permet de monter un disque externe ou u
|
||||
|
||||
### Installation
|
||||
|
||||
```
|
||||
``` { .bash .copy }
|
||||
sudo apt install udisks2
|
||||
```
|
||||
|
||||
### Usage
|
||||
|
||||
#### Monter une partition
|
||||
```
|
||||
``` { .bash .copy }
|
||||
udiskct --mount -b /dev/sdb1
|
||||
```
|
||||
|
||||
#### Démonter une partition
|
||||
```
|
||||
``` { .bash .copy }
|
||||
udiskctl unmount -b /dev/sdb1
|
||||
```
|
||||
|
||||
#### Éjecter proprement une clé usb
|
||||
```
|
||||
``` { .bash .copy }
|
||||
udiskctl power-off -b /dev/sdb
|
||||
```
|
||||
|
||||
## Avec mount
|
||||
|
||||
Avec la commande mount, il est nécessaire de bien définir les options de montage
|
||||
Avec la commande mount, il est nécessaire de bien définir les options de montage:
|
||||
|
||||
```
|
||||
``` { .bash .copy }
|
||||
sudo mkdir -p /mnt/cle
|
||||
sudo mount /dev/sdb1 /mnt/cle
|
||||
```
|
||||
|
||||
Pour démonter une clé
|
||||
```
|
||||
Pour démonter une clé:
|
||||
|
||||
``` { .bash .copy }
|
||||
sudo umount /mnt/cle
|
||||
```
|
||||
|
||||
|
||||
@ -1,15 +1,15 @@
|
||||
# nmcli
|
||||
|
||||
Scanner le reseau
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
nmcli d wifi
|
||||
```
|
||||
Se connecter au reseau pour la première fois
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
nmcli d wifi connect <SSID> -a
|
||||
```
|
||||
Se connection à un reseau existant
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
nmcli con <SSID>
|
||||
```
|
||||
Changer les serveurs DNS
|
||||
@ -25,6 +25,6 @@ Méthode degeulasse
|
||||
|
||||
Méthode clean
|
||||
/!\ À faire pour chaque point d'accès /!\
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
nmcli con mod <SSID> ipv4.dns "80.67.169.12 80.67.169.40" ipv4.ignore-auto-dns yes
|
||||
```
|
||||
|
||||
@ -24,13 +24,13 @@
|
||||
|
||||
Insérez deux disques durs dans votre ordinateur Linux, puis ouvrez une fenêtre de terminal. Exécutez la commande suivante pour vérifier le nom du dispositif.
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
sudo fdisk -l
|
||||
```
|
||||
|
||||

|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
linux fdisk partition
|
||||
```
|
||||
|
||||
@ -38,7 +38,7 @@ Vous pouvez voir que le mien est /dev/sdb et /dev/sdc.
|
||||
|
||||
- Ensuite, exécutez les deux commandes suivantes pour créer une nouvelle table de partition MBR sur les deux disques durs. (Remarque : cela effacera toutes les partitions et les données existantes de ces deux disques durs. Assurez-vous de sauvegarder vos données.)
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
sudo parted /dev/sdb mklabel msdos
|
||||
sudo parted /dev/sdc mklabel msdos
|
||||
```
|
||||
@ -47,7 +47,7 @@ Vous pouvez créer une table de partition GPT en remplaçant "msdos" par "gpt",
|
||||
|
||||
Ensuite, utilisez la commande fdisk pour créer une nouvelle partition sur chaque disque et formatez-les en tant que système de fichiers Linux autodétecté en RAID. Commencez par le faire sur /dev/sdb.
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
sudo fdisk /dev/sdb
|
||||
```
|
||||
|
||||
@ -73,25 +73,25 @@ Suivez les mêmes instructions pour créer une partition Linux autodétectée en
|
||||
[MDADM](https://fr.wikipedia.org/wiki/Mdadm) est utilisé pour gérer les dispositifs MD (multiples dispositifs), également connus sous le nom de RAID logiciel Linux.
|
||||
??? note "Pour installer mdadm selon votre distribution de Linux"
|
||||
=== "Debian/Ubuntu"
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
sudo apt install mdadm
|
||||
```
|
||||
=== "CentOS/Redhat"
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
sudo yum install mdadm
|
||||
```
|
||||
=== "SUSE"
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
sudo zypper install mdadm
|
||||
```
|
||||
=== "Arch Linux"
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
sudo pacman -S mdadm
|
||||
```
|
||||
|
||||
Examinons les deux dispositifs:
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
sudo mdadm --examine /dev/sdb /dev/sdc
|
||||
```
|
||||
|
||||
@ -99,7 +99,7 @@ sudo mdadm --examine /dev/sdb /dev/sdc
|
||||
|
||||
Vous pouvez voir que les deux sont de type "fd" (Linux autodétecté en RAID). À ce stade, il n'y a pas de configuration RAID sur /dev/sdb1 et /dev/sdc1, ce qui peut être déduit avec cette commande:
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
sudo mdadm --examine /dev/sdb1 /dev/sdc1
|
||||
```
|
||||
|
||||
@ -109,7 +109,7 @@ sudo mdadm --examine /dev/sdb1 /dev/sdc1
|
||||
|
||||
#### Exécutez la commande suivante pour créer un RAID 1. Le lecteur logique sera nommé /dev/md0.
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
sudo mdadm --create /dev/md0 --level=mirror --raid-devices=2 /dev/sdb1 /dev/sdc1
|
||||
```
|
||||
|
||||
@ -119,7 +119,7 @@ sudo mdadm --create /dev/md0 --level=mirror --raid-devices=2 /dev/sdb1 /dev/sdc1
|
||||
|
||||
Maintenant, nous pouvons le vérifier avec :
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
cat /proc/mdstat
|
||||
```
|
||||
|
||||
@ -127,7 +127,7 @@ cat /proc/mdstat
|
||||
|
||||
Vous pouvez voir que md0 est actif et qu'il s'agit d'une configuration RAID 1. Pour obtenir des informations plus détaillées sur /dev/md0, vous pouvez utiliser les commandes ci-dessous :
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
sudo mdadm --detail /dev/md0
|
||||
```
|
||||
|
||||
@ -135,7 +135,7 @@ sudo mdadm --detail /dev/md0
|
||||
|
||||
Pour obtenir des informations détaillées sur chaque dispositif RAID, exécutez cette commande :
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
sudo mdadm --examine /dev/sdb1 /dev/sdc1
|
||||
```
|
||||
|
||||
@ -145,20 +145,20 @@ sudo mdadm --examine /dev/sdb1 /dev/sdc1
|
||||
|
||||
#### Formatez-le en système de fichiers ext4.
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
sudo mkfs.ext4 /dev/md0
|
||||
```
|
||||
|
||||
#### Créer un point de montage /mnt/raid1 et montez le lecteur RAID 1
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
sudo mkdir /mnt/raid1
|
||||
sudo mount /dev/md0 /mnt/raid1
|
||||
```
|
||||
|
||||
Vous pouvez utiliser cette commande pour vérifier la quantité d'espace disque dont vous disposez.
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
df -h /mnt/raid1
|
||||
```
|
||||
|
||||
@ -168,29 +168,29 @@ df -h /mnt/raid1
|
||||
|
||||
#### Sauvegarder notre configuration RAID1 avec la commande suivante:
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
sudo mdadm --detail --scan --verbose | sudo tee -a /etc/mdadm/mdadm.conf
|
||||
```
|
||||
|
||||
Output:
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
ARRAY /dev/md/0 level=raid1 num-devices=2 metadata=1.2 spares=1 name=xenial:0 UUID=c7a2743d:f1e0d872:b2ad29cd:e2bee48c
|
||||
- devices=/dev/sdb1,/dev/sdc1
|
||||
```
|
||||
|
||||
!!! tip "Sur certaines distributions Linux telles que CentOS, le fichier de configuration pour mdadm se trouve dans /etc/mdadm/mdadm.conf. Vous devrez exécuter la commande suivante pour générer une nouvelle image initramfs après avoir exécuté la commande ci-dessus."
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
sudo update-initramfs -u
|
||||
```
|
||||
|
||||
!!! note "Pour monter automatiquement le lecteur logique RAID 1 au démarrage, ajouter une entrée dans le fichier /etc/fstab"
|
||||
=== "base"
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
/dev/md0 /mnt/raid1 ext4 defaults 0 0
|
||||
```
|
||||
=== "avançé (pour voir le volume RAID dans le gestionnaire de fichiers)"
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
/dev/md0 /mnt/raid1 ext4- defaults,x-gvfs-show 0 0
|
||||
```
|
||||
|
||||
@ -198,7 +198,7 @@ sudo update-initramfs -u
|
||||
|
||||
Si vous ne souhaitez plus utiliser le RAID, exécutez la commande suivante pour le supprimer.
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
sudo umount /mnt/raid1
|
||||
sudo mdadm --remove /dev/md0
|
||||
```
|
||||
@ -206,7 +206,7 @@ sudo mdadm --remove /dev/md0
|
||||
Ensuite, éditez le fichier mdadm.conf et commentez la définition RAID :
|
||||
|
||||
!!! note "Editez le fichier /etc/fstab et commentez la ligne qui active le montage automatique du dispositif RAID"
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
#ARRAY /dev/md0 level=raid1 num-devices=2 metadata=1.2 spares=1 name=bionic:0 UUID=76c80bd0:6b1fe526:90807435:99030af9
|
||||
# devices=/dev/sda1,/dev/sdb1
|
||||
```
|
||||
|
||||
@ -11,7 +11,7 @@ On utilise ensuite la valeur saisie stockée dans une variable.
|
||||
Utilisez [`HereDoc`](heredoc.md) pour afficher du contenu sur plusieurs lignes!
|
||||
|
||||
#### Usage minimal
|
||||
```
|
||||
``` { .bash .copy }
|
||||
visiteur@domani:~$ read
|
||||
mot
|
||||
visiteur@domani:~$ echo $REPLY
|
||||
@ -19,7 +19,7 @@ mot
|
||||
```
|
||||
|
||||
#### Définissez la variable qui contient le résultat, au lieu du défaut `$REPLY`
|
||||
```
|
||||
``` { .bash .copy }
|
||||
visiteur@domani:~$ read MAREPONSE
|
||||
truc
|
||||
visiteur@domani:~$ echo $MAREPONSE
|
||||
@ -27,7 +27,7 @@ truc
|
||||
```
|
||||
|
||||
#### Utilisez ++space++, ou n'importe quel caractère pour délimiter la fin de la réponse
|
||||
```
|
||||
``` { .bash .copy }
|
||||
visiteur@domani:~$ read '-d '
|
||||
truc visiteur@domani:~$
|
||||
|
||||
@ -36,20 +36,20 @@ trucAvisiteur@domani:~$
|
||||
```
|
||||
|
||||
#### Utiliser `read -s` pour garder secrète la saisie de l'utilisateur
|
||||
```
|
||||
``` { .bash .copy }
|
||||
visiteur@domani:~$ read -s
|
||||
visiteur@domani:~$ echo $REPLY
|
||||
secret
|
||||
```
|
||||
|
||||
#### Utilisez `read -p` pour afficher un message avant la saisie (pas de retour à la ligne)
|
||||
```
|
||||
``` { .bash .copy }
|
||||
visiteur@domani:~$ read -p "Continuez ? (y/n) : "
|
||||
Continuez ? (y/n) : y
|
||||
```
|
||||
|
||||
#### Répéter l'invite de saisie tant que la valeur n'est pas correcte
|
||||
```
|
||||
``` { .bash .copy }
|
||||
until [[ $VALUE ]] ; do
|
||||
read -p "Enter value for $var : " VALUE;
|
||||
done ;
|
||||
@ -57,7 +57,7 @@ Continuez ? (y/n) : y
|
||||
|
||||
#### Avec une itération dans une liste
|
||||
|
||||
```
|
||||
``` { .bash .copy }
|
||||
for var in ${VAR_LIST[@]}; do
|
||||
VALUE=""
|
||||
until [[ $VALUE ]] ; do
|
||||
|
||||
@ -1,24 +1,29 @@
|
||||
# Screen
|
||||
|
||||
1.Installation
|
||||
|
||||
``` { .bash .copy }
|
||||
sudo apt install screen
|
||||
```
|
||||
|
||||
2.Pour démarrer une nouvelle session:
|
||||
|
||||
``` { .bash .copy }
|
||||
screen -S nom-de-la-session
|
||||
```
|
||||
|
||||
3.Pour laisser la session en arrière plan
|
||||
|
||||
``` { .bash .copy }
|
||||
++ctrl+a+d++
|
||||
```
|
||||
|
||||
4.Pour lister les sessions existantes:
|
||||
|
||||
``` { .bash .copy }
|
||||
screen -ls
|
||||
```
|
||||
|
||||
5.Pour se reconnecter :
|
||||
|
||||
``` { .bash .copy }
|
||||
screen -r nom-de-la-session
|
||||
```
|
||||
|
||||
**See [https://linuxize.com/post/how-to-use-linux-screen/](https://linuxize.com/post/how-to-use-linux-screen/)**
|
||||
|
||||
|
||||
@ -2,53 +2,75 @@
|
||||
|
||||
## Remove a key from known hosts:
|
||||
|
||||
``` { .bash .copy }
|
||||
ssh-keygen -f "/home/user/.ssh/known_hosts" -R "key_name"
|
||||
```
|
||||
|
||||
## Create a key:
|
||||
|
||||
``` { .bash .copy }
|
||||
ssh-keygen -o -a 100 -t ed25519 -C user@email #create an ED25519 key
|
||||
ssh-keygen -b 4096 -t rsa -C user@email #create a RSA key
|
||||
ssh-add newkey #add newkey to your SSH agent
|
||||
ssh-add *
|
||||
ssh-add .
|
||||
```
|
||||
|
||||
## List existing keys:
|
||||
|
||||
``` { .bash .copy }
|
||||
ssh-add -l
|
||||
|
||||
```
|
||||
## Display a key:
|
||||
|
||||
``` { .bash .copy }
|
||||
cat /home/user/.ssh/key_name
|
||||
```
|
||||
|
||||
## Display a key fingerprint (with random art image):
|
||||
|
||||
``` { .bash .copy }
|
||||
ssh-keygen -lvf key_name
|
||||
```
|
||||
|
||||
## Enable SSH agent:
|
||||
|
||||
``` { .bash .copy }
|
||||
eval $(ssh-agent -s)
|
||||
```
|
||||
|
||||
## Copy a key to a distant server:
|
||||
|
||||
``` { .bash .copy }
|
||||
ssh-copy-id user@server #Copy all keys that are registered in SSH agent
|
||||
ssh-copy-id -i newkey.pub user@server\n #Copy newkey.pub
|
||||
```
|
||||
|
||||
## Remove a key:
|
||||
|
||||
Removing a key from a server can be done by editing your `/home/user/.ssh/authorized_keys` file.
|
||||
??? note "Removing a key from a server"
|
||||
It can be done by editing your `/home/user/.ssh/authorized_keys` file.
|
||||
``` { .bash .copy }
|
||||
nano /home/$(whoami)/.ssh/authorized_keys
|
||||
```
|
||||
Type ++ctrl+k++ to delete the line
|
||||
|
||||
## Connect and copy from a different port number:
|
||||
|
||||
``` { .bash .copy }
|
||||
ssh -p port user@server
|
||||
scp -P port file user@server:way/
|
||||
rsync -e ssh -avz /source server:/target
|
||||
rsync -ave ssh server:/source /target
|
||||
ssh-copy-id -i newkey.pub -p port user@server
|
||||
```
|
||||
|
||||
## Connect a distant server in your file browser under Linux using SFTP:
|
||||
|
||||
Type the adress:
|
||||
|
||||
``` { .bash .copy }
|
||||
ssh://user@server:port
|
||||
```
|
||||
|
||||
*See also:* [Enabling a SSH key on a Synology NAS running DSM 6](https://gitlab.com/sakura-lain/ssh-synology-nas-dsm-6/)
|
||||
*Voir aussi:* [Enabling a SSH key on a Synology NAS running DSM 6](https://gitlab.com/sakura-lain/ssh-synology-nas-dsm-6/)
|
||||
|
||||
@ -6,20 +6,22 @@
|
||||
|
||||
#### Pour passer à un utilisateur admin :
|
||||
|
||||
```
|
||||
``` { .bash .copy }
|
||||
su bellinuxien
|
||||
```
|
||||
#### installer flatpak pour avoir la dernière version de Minetest
|
||||
|
||||
``` { .bash .copy }
|
||||
sudo apt update
|
||||
sudo apt install flatpak geany
|
||||
```
|
||||
|
||||
#### On quitte l'admin avec CTRL+D
|
||||
#### On quitte l'admin avec ++ctrl+d++
|
||||
|
||||
|
||||
### Partie 2: en tant qu'utilisateur
|
||||
|
||||
```
|
||||
``` { .bash .copy }
|
||||
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
||||
flatpak install flathub net.minetest.Minetest
|
||||
export MT=.var/app/net.minetest.Minetest/.minetest
|
||||
@ -28,7 +30,7 @@ export MT=.var/app/net.minetest.Minetest/.minetest
|
||||
|
||||
#### Installer le jeu du Garage Numérique
|
||||
```
|
||||
cd $MT
|
||||
``` { .bash .copy }cd $MT
|
||||
mkdir games
|
||||
cd games
|
||||
git clone https://gitlab.com/garagenum/minetest-lug9000
|
||||
@ -41,7 +43,8 @@ git clone https://gitlab.com/garagenum/minetest-lug9000
|
||||
|
||||
#### Cloner le projet sur son ordinateur
|
||||
Revenir dans le terminal et écrire:
|
||||
```
|
||||
|
||||
``` { .bash .copy }
|
||||
cd $MT
|
||||
mkdir mods && cd mods
|
||||
git clone https://gitlab.com/mon-pseudo/monprojet.git
|
||||
@ -49,7 +52,8 @@ cd monprojet
|
||||
```
|
||||
|
||||
#### Créer le fichier init.lua
|
||||
```
|
||||
|
||||
``` { .bash .copy }
|
||||
geany init.lua&
|
||||
```
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ Installer à partir des dépots officiels avec [apt](https://debian-facile.org/u
|
||||
|
||||
## Installer .Net
|
||||
|
||||
```
|
||||
``` { .bash .copy }
|
||||
wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
|
||||
sudo dpkg -i packages-microsoft-prod.deb
|
||||
sudo apt-get update; \
|
||||
@ -29,7 +29,7 @@ sudo apt-get update; \
|
||||
|
||||
## Installer Mono
|
||||
|
||||
```
|
||||
``` { .bash .copy }
|
||||
sudo apt install apt-transport-https dirmngr gnupg ca-certificates
|
||||
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
|
||||
echo "deb https://download.mono-project.com/repo/debian stable-buster main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
#### Cliquer sur `Créer un dépôt`.
|
||||
|
||||
#### Une fois le dépôt créé, le cloner sur votre machine locale :
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
git clone git@git.legaragenumerique.fr:gitea_username/nom_du_projet.git
|
||||
```
|
||||
|
||||
@ -54,7 +54,7 @@ git clone git@git.legaragenumerique.fr:gitea_username/nom_du_projet.git
|
||||
```
|
||||
|
||||
#### créer la branch deploy et la pousser:
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
git checkout -b deploy
|
||||
git push -u origin deploy
|
||||
```
|
||||
@ -64,7 +64,7 @@ git push -u origin deploy
|
||||
## Mettre à jour son site
|
||||
|
||||
- Une fois les modifications éffectuée sur vos fichiers, simplement pousser sur le serveur:
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
git add *
|
||||
git commit -m "maj fichier example.html"
|
||||
git push
|
||||
@ -75,17 +75,17 @@ git push
|
||||
## Retirer son site
|
||||
|
||||
#### changer de branche (ne plus être sur la branche deploy):
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
git checkout main
|
||||
```
|
||||
|
||||
#### supprimer la branch `deploy` locale:
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
git branch -d deploy
|
||||
```
|
||||
|
||||
#### supprimer la branch `deploy` distante:
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
git push --delete origin deploy
|
||||
```
|
||||
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
|
||||
As of debian user we can install with apt
|
||||
|
||||
```
|
||||
``` { .bash .copy }
|
||||
# install prerequisites
|
||||
sudo apt update -qq >/dev/null
|
||||
sudo apt install -qq -y apt-transport-https
|
||||
@ -52,7 +52,7 @@ Configure a public/private key pair for ssh root access.
|
||||
Run following commands as root:
|
||||
1. As root, run `ssh-keygen`
|
||||
2. Copy the key to authorized keys for dokku:
|
||||
```
|
||||
``` { .bash .copy }
|
||||
cat ~/.ssh/id_rsa.pub |sshcommand acl-add dokku superuser
|
||||
```
|
||||
3. In setup webpage at `http://<dokku.local>`, paste content from `/root/.ssh/id_rsa.pub` (only the part with `ssh-rsa`).
|
||||
@ -61,7 +61,7 @@ Run following commands as root:
|
||||
|
||||
## Create app
|
||||
|
||||
```
|
||||
``` { .bash .copy }
|
||||
git clone https://github.com/heroku/python-getting-started
|
||||
dokku apps:create python-getting-started
|
||||
dokku postgres:create djangodatabase
|
||||
|
||||
@ -4,7 +4,7 @@ Ce guide permet d''utiliser l'API de Gitlab / Gitlab avec Bash pour récupérer
|
||||
|
||||
## Récupérer la dernière version d'un projet Github
|
||||
|
||||
```
|
||||
``` { .bash .copy }
|
||||
curl -s https://api.github.com/repos/[author]/[repository]/releases/latest |\
|
||||
grep "browser_download_url.*deb" |\
|
||||
cut -d : -f 2,3 |\
|
||||
@ -14,4 +14,4 @@ wget -qi -
|
||||
|
||||
## Récupérer la dernière version d'un projet Gitlab
|
||||
|
||||
```
|
||||
> A faire
|
||||
|
||||
@ -8,7 +8,7 @@ Il permet de stocker son code source en ligne pour y accéder de n'importe où e
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
sudo apt install git -y
|
||||
```
|
||||
|
||||
@ -16,62 +16,62 @@ sudo apt install git -y
|
||||
|
||||
- Cloner un dépôt distant sur sa machine locale:
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
git clone https://gitlab.com/mon-dépôt-distant.git
|
||||
```
|
||||
|
||||
- Initialiser un dossier de projet pour le "pousser" en ligne:
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
cd mon-projet/
|
||||
git init
|
||||
```
|
||||
|
||||
- Ajouter des fichiers au suivi (pour les synchroniser vers un dépôt distant):
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
git add fichier1 fichier2
|
||||
```
|
||||
|
||||
- Créer un enregistrement (une version) du code avec un commentaire:
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
git commit -m "commentaire (exemple: modification du fichier1, ajout fonction test)"
|
||||
```
|
||||
|
||||
- Pousser les changements vers le dépôt distant (Gitlab ou Github par exemple):
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
git push
|
||||
```
|
||||
|
||||
- Changer de branche dans le projet:
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
git checkout nom-de-la-branche
|
||||
```
|
||||
|
||||
- Créer une nouvelle branche à partir de la branche actuelle:
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
git branch nom-nouvelle-branche
|
||||
```
|
||||
|
||||
- Pousser une branche nouvellement créée en local vers le dépôt distant:
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
git push origin nom-nouvelle-branche
|
||||
```
|
||||
|
||||
- Effacer une branch locale:
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
git branch -d branche-a-effacer
|
||||
```
|
||||
|
||||
- Effacer une branche du dépôt distant:
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
git push origin --delete branche-a-effacer
|
||||
```
|
||||
|
||||
@ -81,31 +81,31 @@ git push origin --delete branche-a-effacer
|
||||
|
||||
- Cloner un dépôt distant sur sa machine locale:
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
git clone https://gitlab.com/mon-dépôt-distant.git
|
||||
```
|
||||
|
||||
- Entrer dans le dossier du dépôt et modifier un fichier:
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
cd mon-dépôt-distant/ # modification sur un fichier
|
||||
```
|
||||
|
||||
- Ajouter le fichier modifié au suivi:
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
git add fichier-modifié
|
||||
```
|
||||
|
||||
- Créer un enregistrement de la modification
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
git commit -m "modif fichier-modifié"
|
||||
```
|
||||
|
||||
- Pousser les changements sur le dépôt en ligne:
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
git push
|
||||
```
|
||||
|
||||
@ -113,14 +113,14 @@ git push
|
||||
|
||||
- On entre dans le dossier et on l'initialise en tant que dépôt git:
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
cd mon-dépôt-local/
|
||||
git init
|
||||
```
|
||||
|
||||
- Ajouter tout les fichiers du dossier au suivi:
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
git add *
|
||||
# ou
|
||||
git add .
|
||||
@ -128,19 +128,19 @@ git add .
|
||||
|
||||
- Ajouter l'adresse du dépôt distant qui va recevoir le dépôt local:
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
git remote add origin https://gitlab.com/mon-user/mon-nouveau-dépôt.git
|
||||
```
|
||||
|
||||
- Créer un enregistrement avec un commentaire:
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
git commit -m "premier push"
|
||||
```
|
||||
|
||||
- Pousser le nouveau dépôt vers le dépôt distant en ligne:
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
git push origin main # ou le nom de la branche
|
||||
```
|
||||
|
||||
@ -148,7 +148,7 @@ git push origin main # ou le nom de la branche
|
||||
|
||||
- Récupérer localement les changements du dépôt distant:
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
git pull
|
||||
```
|
||||
|
||||
@ -156,31 +156,31 @@ git pull
|
||||
|
||||
- Savoir sur quelle branche on se trouve et les branches disponibles localement:
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
git branch
|
||||
```
|
||||
|
||||
- Créer une nouvelle branche et basculer vers la nouvelle branche:
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
git checkout -b nom-nouvelle-branche
|
||||
```
|
||||
|
||||
- Connaitre l'état du dépôt local:
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
git status
|
||||
```
|
||||
|
||||
- Revenir à l'état après le git clone en éffaçant les chagements éffectués:
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
git reset --hard HEAD
|
||||
```
|
||||
|
||||
- Visualiser les différences entre les fichiers originaux et les fichiers modifiés:
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
git diff
|
||||
```
|
||||
|
||||
@ -190,7 +190,7 @@ Pour éviter de faire des "git branch" pour savoir dans quelle branche on se tro
|
||||
|
||||
??? note "~/.bashrc"
|
||||
=== "Ajouter à la fin"
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
git_branch() {
|
||||
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
|
||||
}
|
||||
|
||||
@ -6,19 +6,19 @@
|
||||
|
||||
- Installer Ollama:
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
curl -fsSL https://ollama.com/install.sh | sh
|
||||
```
|
||||
|
||||
- Télécharger le modèle:
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
ollama pull llama3:latest
|
||||
```
|
||||
|
||||
- Lancer le modèle:
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
ollama run llama3:latest
|
||||
```
|
||||
|
||||
@ -35,7 +35,7 @@ ollama run llama3:latest
|
||||
## Configuration
|
||||
|
||||
??? note "Editer le fichier config.json:"
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
{
|
||||
"models": [
|
||||
{
|
||||
@ -56,19 +56,19 @@ ollama run llama3:latest
|
||||
|
||||
- Stopper le service:
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
sudo systemctl stop ollama
|
||||
```
|
||||
|
||||
- Démarrer le service:
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
sudo systemctl start ollama
|
||||
```
|
||||
|
||||
- Supprimer un modèle:
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
ollama rm <MODEL>
|
||||
```
|
||||
|
||||
@ -78,6 +78,6 @@ ollama rm <MODEL>
|
||||
|
||||
- Télécharger un modèle:
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
ollama pull <MODEL>
|
||||
```
|
||||
|
||||
@ -4,11 +4,11 @@
|
||||
|
||||
Par défaut, fprintd et libpam-fprintd sont les paquets faisant fonctionner les lecteurs d'empreintes sur Debian.
|
||||
Le support est très limité, mais il faut déjà commencer par là
|
||||
```console
|
||||
``` { .bash .copy }
|
||||
sudo apt-get install fprintd libpam-fprintd
|
||||
```
|
||||
Pour enregistrer l'empreinte :
|
||||
```console
|
||||
``` { .bash .copy }
|
||||
fprintd-enroll
|
||||
```
|
||||
Si on a de la chance, on a le message
|
||||
@ -22,11 +22,11 @@ Impossible to enroll: GDBus.Error:net.reactivated.Fprint.Error.NoSuchDevice: No
|
||||
|
||||
## Installation de python-validity
|
||||
Python-validity est un projet pour élargir le support des lecteurs d'empreintes sur Linux. Pour l'installer sur Debian on passe par le PPA d'Ubuntu
|
||||
```console
|
||||
``` { .bash .copy }
|
||||
sudo add-apt-repository ppa:uunicorn/open-fprintd
|
||||
```
|
||||
Il va falloir modifier les dépôts, car ceux par défauts sont ceux de la toute dernière version d'Ubuntu
|
||||
```console
|
||||
``` { .bash .copy }
|
||||
# /etc/apt/sources.list.d/uunicorn-ubuntu-open-fprintd-mantic.list
|
||||
deb http://ppa.launchpad.net/uunicorn/open-fprintd/ubuntu focal main
|
||||
```
|
||||
@ -37,14 +37,14 @@ Pour en savoir plus sur les noms de code d'Ubuntu
|
||||
(le nom de code est le premier mot, ex: Focal Fossa : focal)
|
||||
|
||||
:warning: Keyserver fonctionnelle sur Debian 12.5
|
||||
```console
|
||||
``` { .bash .copy }
|
||||
sudo apt update
|
||||
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8D4C774BA6D18F90
|
||||
apt update
|
||||
sudo apt-get install open-fprintd fprintd-clients python3-validity
|
||||
```
|
||||
Une fois installé on réessaye
|
||||
```console
|
||||
``` { .bash .copy }
|
||||
fprintd-enroll
|
||||
```
|
||||
Il faudra appuyer son doigt contre le capteur et le relever, jusqu'au message
|
||||
@ -55,7 +55,7 @@ Si jamais l'erreur "No devices available" persiste, il n'y a quasiment aucune so
|
||||
|
||||
## Authentification pour sudo
|
||||
Par défaut, seulement la session est déblocable avec l'empreinte, pour utiliser sudo
|
||||
```console
|
||||
``` { .bash .copy }
|
||||
pam-auth-update
|
||||
```
|
||||
Il faudra cocher "Fingerprint authentification" et valider
|
||||
|
||||
@ -15,7 +15,7 @@ To understand how to use this starter kit, follow the tutorial at [https://docs.
|
||||
### Installation de Tiled (éditeur de map)
|
||||
|
||||
- Ouvrir un terminal et copier les commandes suivantes:
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
git clone https://github.com/GregLebreton/adventure-map.git
|
||||
cd adventure-map
|
||||
./install.sh
|
||||
@ -29,13 +29,13 @@ tiled
|
||||
|
||||
### Installation de npm (server local)
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
sudo apt install npm -y
|
||||
```
|
||||
|
||||
### Utilisation
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
npm install
|
||||
npm run start
|
||||
```
|
||||
|
||||
@ -8,7 +8,7 @@ A l'origine, nwipe est un fork de la commande dwipe utilisée à l'origine par D
|
||||
|
||||
## INSTALLATION
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
sudo apt install nwipe
|
||||
```
|
||||
|
||||
@ -17,7 +17,7 @@ sudo apt install nwipe
|
||||
## AFFICHER LES INFORMATIONS DISQUES
|
||||
|
||||
Avant d'utiliser nwipe, il est important d'identifier quel disque nous allons effacer, pour ce faire entrez la commande ci-dessous:
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
lsblk
|
||||
```
|
||||
Cette commande permet d'obtenir la liste et les caractéristiques des disques et de leurs partitions. (La commande ne nécessite pas les droits administrateurs pour être exécutée).
|
||||
@ -25,7 +25,7 @@ Cette commande permet d'obtenir la liste et les caractéristiques des disques et
|
||||
<!-- [LSBLK](sblk2.jpg) -->
|
||||
|
||||
:warning: veillez bien à démonter les partitions si c'est le cas comme dans l'exemple ci-dessous.
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
sudo umount /home/user/DISK
|
||||
```
|
||||
|
||||
@ -34,7 +34,7 @@ sudo umount /home/user/DISK
|
||||
## UTILISATION
|
||||
|
||||
Pour ouvir Nwipe, utilisez la commande ci-dessous dans le terminal
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
sudo nwipe
|
||||
```
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
|
||||
## Cloner le projet
|
||||
|
||||
```
|
||||
``` { .bash .copy }
|
||||
makayabou@domani:~$ git clone https://gitlab.com/garagenum/tools/linux/debian-customizer.git
|
||||
Clonage dans 'debian-customizer'...
|
||||
remote: Enumerating objects: 717, done.
|
||||
@ -15,7 +15,7 @@ Résolution des deltas: 100% (858/858), fait.
|
||||
|
||||
## Exécuter le script
|
||||
|
||||
```
|
||||
``` { .bash .copy }
|
||||
cd debian-customizer/
|
||||
sudo bash install-pxe-server.sh
|
||||
```
|
||||
|
||||
@ -2,36 +2,41 @@
|
||||
|
||||
|
||||
## Setting up a password for root user just after install:
|
||||
|
||||
``` { .bash .copy }
|
||||
sudo mysql -u root
|
||||
```
|
||||
|
||||
## Resetting root password:
|
||||
|
||||
``` { .bash .copy }
|
||||
sudo mysql_secure_installation
|
||||
```
|
||||
|
||||
## Creating a user and granting privileges:
|
||||
|
||||
``` { .sql .copy }
|
||||
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
|
||||
GRANT ALL ON database_name.* TO 'user'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
|
||||
FLUSH PRIVILEGES;
|
||||
|
||||
```
|
||||
Granting privileges on all databases:
|
||||
|
||||
``` { .sql .copy }
|
||||
GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost';
|
||||
|
||||
```
|
||||
Changing a user's password:
|
||||
|
||||
``` { .sql .copy }
|
||||
SET PASSWORD FOR 'user'@'localhost' = PASSWORD('password');
|
||||
|
||||
ALTER USER 'user'@'localhost' IDENTIFIED BY 'password';
|
||||
```
|
||||
|
||||
Listing all users :
|
||||
|
||||
``` { .sql .copy }
|
||||
SELECT User, Host, Password FROM mysql.user;
|
||||
```
|
||||
|
||||
Changing a user's associated host (example from host % to host loclahost):
|
||||
|
||||
``` { .sql .copy }
|
||||
UPDATE mysql.user SET Host='localhost' WHERE Host='%' AND User='user'
|
||||
```
|
||||
|
||||
See also, on users management:
|
||||
|
||||
@ -49,18 +54,21 @@ See also, on users management:
|
||||
- [Changing MySQL user password](https://linuxacademy.com/blog/linux/changing-mysql-user-password/)
|
||||
|
||||
## Connecting to MySQL:
|
||||
|
||||
``` { .bash .copy }
|
||||
sudo mysql
|
||||
```
|
||||
|
||||
## Creating a database:
|
||||
|
||||
``` { .sql .copy }
|
||||
CREATE DATABASE lpic CHARACTER SET 'utf8'; #Beware of encoding
|
||||
```
|
||||
|
||||
## Saving databases (basic level, assuming your user is root):
|
||||
|
||||
``` { .bash .copy }
|
||||
mysqldump -u root -p password database > database.sql #insecure
|
||||
MYSQL_PWD="password" mysqldump -u root database > database.sql #secure
|
||||
MYSQL_PWD="password" mysqldump -u root --all-databases > database.sql
|
||||
```
|
||||
|
||||
See also, for more advanced features):
|
||||
|
||||
@ -68,28 +76,33 @@ See also, for more advanced features):
|
||||
- [Guide de sauvegarde et restauration MySQL](https://www.memoinfo.fr/tutoriels-linux/guide-sauvegarde-restauration-mysql/)
|
||||
|
||||
## Deleting databases:
|
||||
|
||||
``` { .sql .copy }
|
||||
DROP DATABASE [IF EXISTS] database_name;
|
||||
```
|
||||
|
||||
## Checking a database encoding (default is UTF8):
|
||||
|
||||
``` { .sql .copy }
|
||||
SELECT default_character_set_name FROM information_schema.SCHEMATA S WHERE schema_name = "database_name";
|
||||
```
|
||||
|
||||
See: [How to convert a MySQL database to UTF-8 encoding](https://www.a2hosting.es/kb/developer-corner/mysql/convert-mysql-database-utf-8)
|
||||
|
||||
## Checking the MySQL version:
|
||||
|
||||
``` { .sql .copy }
|
||||
SELECT @@version;
|
||||
```
|
||||
|
||||
## Leaving the MySQL prompt:
|
||||
|
||||
``` { .sql .copy }
|
||||
quit
|
||||
```
|
||||
|
||||
## Stopping/starting/restarting the service:
|
||||
|
||||
``` { .bash .copy }
|
||||
sudo systemctl stop mysql
|
||||
sudo service mysql stop
|
||||
sudo /etc/init.d/mysqld stop
|
||||
```
|
||||
|
||||
## Courses and tutorials in French:
|
||||
|
||||
|
||||
@ -10,7 +10,7 @@ Ainsi nous pourrons utiliser le serveur de notre choix pour notre web-applicatio
|
||||
|
||||
On installe Nginx à partir des dépôts Debian, de façon à avoir une version stable, avec l'apport des correctifs de sécurité, et qui ne sera jamais cassé par une modification du système.
|
||||
|
||||
```
|
||||
``` { .bash .copy }
|
||||
sudo apt update
|
||||
sudo apt upgrade
|
||||
sudo apt install nginx
|
||||
@ -24,19 +24,19 @@ Dans votre navigateur, en tapant dabs la barre d'adresse `http://IP_DU_SERVEUR`,
|
||||
|
||||
### Installation des dépendances
|
||||
|
||||
```
|
||||
``` { .bash .copy }
|
||||
sudo apt update
|
||||
sudo apt -y install apt-transport-https ca-certificates curl gnupg2 software-properties-common
|
||||
```
|
||||
### Installation de la clé du dépôt Docker
|
||||
|
||||
```
|
||||
``` { .bash .copy }
|
||||
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
|
||||
```
|
||||
|
||||
### Ajout du dépôt docker dans le **sources.list**
|
||||
|
||||
```
|
||||
``` { .bash .copy }
|
||||
sudo add-apt-repository \
|
||||
"deb [arch=amd64] https://download.docker.com/linux/debian \
|
||||
$(lsb_release -cs) \
|
||||
@ -45,13 +45,13 @@ sudo add-apt-repository \
|
||||
|
||||
### Mise à jour de la liste des paquets et installation de docker
|
||||
|
||||
```
|
||||
``` { .bash .copy }
|
||||
sudo apt update && sudo apt install docker-ce docker-ce-cli containerd.io
|
||||
```
|
||||
|
||||
### Ajout de l'utilisateur dans le groupe **docker** pour utiliser docker sans sudo
|
||||
|
||||
```
|
||||
``` { .bash .copy }
|
||||
sudo usermod -aG docker $USER
|
||||
newgrp docker
|
||||
```
|
||||
@ -60,7 +60,7 @@ newgrp docker
|
||||
## Installation de Docker-Compose
|
||||
|
||||
### Téléchargement de Docker-Compose
|
||||
```
|
||||
``` { .bash .copy }
|
||||
curl -s https://api.github.com/repos/docker/compose/releases/latest \
|
||||
| grep browser_download_url \
|
||||
| grep docker-compose-linux-x86_64 \
|
||||
@ -70,14 +70,14 @@ curl -s https://api.github.com/repos/docker/compose/releases/latest \
|
||||
|
||||
### Mise en place de l'exécutable
|
||||
|
||||
```
|
||||
``` { .bash .copy }
|
||||
chmod +x docker-compose-linux-x86_64 && sudo mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
|
||||
sudo systemctl restart docker
|
||||
```
|
||||
|
||||
### Auto-complétion pour Bash
|
||||
|
||||
```
|
||||
``` { .bash .copy }
|
||||
sudo mkdir -p /etc/bash_completion.d
|
||||
sudo curl -L https://raw.githubusercontent.com/docker/compose/master/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose
|
||||
source /etc/bash_completion.d/docker-compose
|
||||
@ -89,7 +89,7 @@ source /etc/bash_completion.d/docker-compose
|
||||
|
||||
### Création d'un dossier pour le projet
|
||||
|
||||
```
|
||||
``` { .bash .copy }
|
||||
mkdir nextcloud && cd nextcloud
|
||||
```
|
||||
|
||||
@ -100,7 +100,7 @@ Nous avons besoin de créer les fichiers suivants pour qu'ils soient utilisés p
|
||||
#### config.php
|
||||
|
||||
??? note "config.php"
|
||||
```
|
||||
``` { .php .copy }
|
||||
<?php
|
||||
$CONFIG = array (
|
||||
'htaccess.RewriteBase' => '/',
|
||||
@ -184,7 +184,7 @@ Nous avons besoin de créer les fichiers suivants pour qu'ils soient utilisés p
|
||||
#### Internal.php
|
||||
|
||||
??? note "Internal.php"
|
||||
```
|
||||
``` { .php .copy }
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
@ -411,7 +411,7 @@ Nous avons besoin de créer les fichiers suivants pour qu'ils soient utilisés p
|
||||
#### mimetypemapping.json
|
||||
|
||||
??? note "mimetypemapping.json"
|
||||
```
|
||||
``` { .json .copy }
|
||||
{
|
||||
"drawio": ["application/x-drawio"],
|
||||
"pad": ["application/x-ownpad"],
|
||||
@ -623,7 +623,7 @@ Nous avons besoin de créer les fichiers suivants pour qu'ils soient utilisés p
|
||||
```
|
||||
#### Création des dossiers pour les volumes permanents
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
sudo mkdir /data/nextcloud/{data,config,apps,mysql} -p
|
||||
sudo chown -R www-data:root /data/nextcloud
|
||||
sudo chown -R 999:root /data/nextcloud/mysql
|
||||
@ -634,14 +634,14 @@ sudo chown -R 999:root /data/nextcloud/mysql
|
||||
#### redis.conf
|
||||
|
||||
??? note "redis.conf"
|
||||
```
|
||||
``` { .copy }
|
||||
requirepass aeazddokpokqsd7676
|
||||
```
|
||||
|
||||
#### redis.config.php
|
||||
|
||||
??? note "redis.config.php"
|
||||
```php
|
||||
``` { .php .copy }
|
||||
<?php
|
||||
if (getenv('REDIS_HOST')) {
|
||||
$CONFIG = array (
|
||||
@ -668,7 +668,7 @@ sudo chown -R 999:root /data/nextcloud/mysql
|
||||
Nous allons compiler une image d'etherpad en suivant les instructions de **Dockerfile**:
|
||||
|
||||
??? info "Dockerfile"
|
||||
```Dockerfile
|
||||
``` { .Dockerfile .copy }
|
||||
# Etherpad Lite Dockerfile
|
||||
#
|
||||
# https://github.com/ether/etherpad-lite
|
||||
@ -727,7 +727,7 @@ Nous allons compiler une image d'etherpad en suivant les instructions de **Docke
|
||||
|
||||
### Copie du projet etherpad sur github
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
git clone https://github.com/ether/etherpad-lite.git
|
||||
```
|
||||
|
||||
@ -736,9 +736,7 @@ git clone https://github.com/ether/etherpad-lite.git
|
||||
Ce fichier de configuration va déployer une image docker de nextcloud avec collabora et etherpad, avec la base de données mariadb, redis et coturn.
|
||||
|
||||
??? info "docker-compose.yml"
|
||||
```yaml
|
||||
version: '3.7'
|
||||
|
||||
``` { .yaml .copy }
|
||||
services:
|
||||
|
||||
nextcloud:
|
||||
@ -879,14 +877,14 @@ Ce fichier de configuration va déployer une image docker de nextcloud avec coll
|
||||
```
|
||||
|
||||
Il ne reste plus qu'à démarrer les conteneurs:
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
docker-compose up --build -d
|
||||
```
|
||||
|
||||
## Installation de SSL pour Nginx avec Let's Encrypt
|
||||
|
||||
Let's encrypt est un service qui permet de générer gratuitement un certificat SSL pour le domaine de notre choix.
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
sudo apt install python3-acme python3-certbot python3-mock python3-openssl python3-pkg-resources python3-pyparsing python3-zope.interface
|
||||
sudo apt install python3-certbot-nginx
|
||||
sudo certbot certonly -d nextcloud.mondomaine.fr
|
||||
@ -901,7 +899,7 @@ sudo certbot certonly -d pad.mondomaine.fr
|
||||
On peut maintenant créer le fichier de configuration nginx dans /etc/nginx/sites-available/nextcloud.mondomaine.fr.conf:
|
||||
|
||||
??? info "nextcloud.mondomaine.fr.conf"
|
||||
```
|
||||
``` { .copy }
|
||||
upstream nextcloud{
|
||||
server 127.0.0.1:8889;
|
||||
}
|
||||
@ -982,7 +980,7 @@ On peut maintenant créer le fichier de configuration nginx dans /etc/nginx/sit
|
||||
|
||||
Pour activer ce fichier de configuration, on créé un lien symbolique vers le dossier sites-enabled:
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
sudo ln -s /etc/nginx/sites-available/wordpress.mondomaine.fr.conf /etc/nginx/sites-enabled/
|
||||
```
|
||||
|
||||
@ -991,7 +989,7 @@ sudo ln -s /etc/nginx/sites-available/wordpress.mondomaine.fr.conf /etc/nginx/si
|
||||
On peut maintenant créer le fichier de configuration nginx dans /etc/nginx/sites-available/pad.mondomaine.fr.conf:
|
||||
|
||||
??? info "pad.mondomaine.fr.conf"
|
||||
```
|
||||
``` { .copy }
|
||||
upstream pad {
|
||||
server 127.0.0.1:9001;
|
||||
}
|
||||
@ -1031,12 +1029,11 @@ On peut maintenant créer le fichier de configuration nginx dans /etc/nginx/sit
|
||||
server_name pad.mondomaine.fr;
|
||||
return 404; # managed by Certbot
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
Pour activer ce fichier de configuration, on créé un lien symbolique vers le dossier sites-enabled:
|
||||
|
||||
```
|
||||
``` { .bash .copy }
|
||||
sudo ln -s /etc/nginx/sites-available/pad.mondomaine.fr.conf /etc/nginx/sites-enabled/
|
||||
```
|
||||
|
||||
@ -1047,7 +1044,7 @@ sudo ln -s /etc/nginx/sites-available/pad.mondomaine.fr.conf /etc/nginx/sites-en
|
||||
On peut maintenant créer le fichier de configuration nginx dans /etc/nginx/sites-available/collabora.mondomaine.fr.conf:
|
||||
|
||||
??? info "collabora.mondomaine.fr.conf"
|
||||
```
|
||||
``` { .copy }
|
||||
upstream collabora{
|
||||
server 127.0.0.1:9980;
|
||||
}
|
||||
@ -1106,14 +1103,14 @@ On peut maintenant créer le fichier de configuration nginx dans /etc/nginx/sit
|
||||
```
|
||||
Pour activer ce fichier de configuration, on créé un lien symbolique vers le dossier sites-enabled:
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
sudo ln -s /etc/nginx/sites-available/collabora.mondomaine.fr.conf /etc/nginx/sites-enabled/
|
||||
```
|
||||
|
||||
|
||||
On recharge la configuration de Nginx:
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
sudo systemctl reload nginx.service
|
||||
```
|
||||
|
||||
@ -1132,55 +1129,100 @@ Il est nécessaire de récupérer la API KEY générée par etherpad:
|
||||
|
||||
On la saisit ensuite dans Nextcloud: `Settings > Administration > Additional settings`
|
||||
|
||||
## Mise à jour de l'image Docker Nextcloud
|
||||
## Mise à jour Nextcloud (Docker)
|
||||
|
||||
#### Vérifier la version en production
|
||||
|
||||
> Avant chaque update checker dans les paramètres de base si des indices de table bdd manques ou autre.
|
||||
:warning: Avant chaque update checker dans les paramètres de base si des indices de table bdd manques ou autre. (voir: 6. Indices de table manquants)
|
||||
|
||||
> L'update s'éffectue par palier de versions (20 vers 21 puis 21 vers 22, etc...)
|
||||
|
||||
#### étapes
|
||||
|
||||
- stopper la stack:
|
||||
##### stopper la stack
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
docker-compose down
|
||||
```
|
||||
|
||||
- editer le tag de l'image Nextcloud dans le docker-compose.yaml:
|
||||
##### modifier l'image docker de Nextcloud
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
nano docker-compose.yml
|
||||
```
|
||||
|
||||
- Modifier la version d'image vers la version immédiatement supérieure dans le docker-compose.yml
|
||||
> Exemple: 20 -> 21
|
||||
|
||||
- relançer la stack:
|
||||
|
||||
```bash
|
||||
docker-compose up -d
|
||||
!!! tip "Modifier la version d'image vers la version immédiatement supérieure dans le docker-compose.yml"
|
||||
```
|
||||
20 -> 21, 21 -> 22
|
||||
```
|
||||
|
||||
> Finir l'update via l'interface web
|
||||
##### Relancer la stack
|
||||
|
||||
Une fois la mise à jour des applications éffectuée, se connecter et vérifier avec un compte administrateur dans Paramètres -> Vue d'ensemble si certaines tables de la base de donnée ont besoin d'être modifié via une commande explicitement décrite:
|
||||
``` { .bash .copy }
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
Exemple:
|
||||
##### Mettre le container nextcloud web en mode maintenance
|
||||
|
||||
```bash
|
||||
docker exec --user www-data -it nextcloud /var/www/html/occ db:add-missing-indices
|
||||
Mettre Nextcloud en mode maintenance:
|
||||
``` { .bash .copy }
|
||||
docker exec -u www-data <nextcloud-container> php occ maintenance:mode --on
|
||||
```
|
||||
|
||||
Lancer l'update: :coffee:
|
||||
``` { .bash .copy }
|
||||
docker exec -u www-data <nextcloud-container> php occ upgrade
|
||||
```
|
||||
|
||||
Désactiver le mode maintenance:
|
||||
``` { .bash .copy }
|
||||
docker exec -u www-data <nextcloud-container> php occ maintenance:mode --off
|
||||
```
|
||||
|
||||
##### Vérifier les logs
|
||||
|
||||
Après une mise à jour, vérifier les logs docker pour d'éventuelles erreurs sur des champs de base de donnée ou indices manquants:
|
||||
|
||||
``` { .bash .copy }
|
||||
docker logs <nextcloud-database-container>
|
||||
```
|
||||
|
||||
##### Indices de table manquants
|
||||
!!! note "Ajouter les indices de table manquants"
|
||||
``` { .bash .copy }
|
||||
docker exec --user www-data -it <nextcloud-database-container> /var/www/html/occ db:add-missing-indices
|
||||
```
|
||||
|
||||
!!! note "Modifier le type de champs d'un indice d'une table" (optionnel)"
|
||||
Se connecter dans le conteneur:
|
||||
``` { .bash .copy }
|
||||
docker exec -it <nextcloud-database-container> bash
|
||||
```
|
||||
|
||||
se connecter en tant que user nextcloud:
|
||||
``` { .bash .copy }
|
||||
mariadb -u <nextcloud-user> -p
|
||||
# saisir le password du user nextcloud
|
||||
```
|
||||
|
||||
##### cron job
|
||||
|
||||
``` { .bash .copy }
|
||||
crontab -e
|
||||
```
|
||||
|
||||
!!! note "crontab"
|
||||
``` { .bash .copy }
|
||||
*/5 * * * * docker exec -u www-data <NOM_DU_CONTAINER> php -f cron.php
|
||||
```
|
||||
|
||||
##### Commande générique pour ajouter des colonnes manquantes à certaines tables de la BDD
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
docker exec --user www-data -it <NOM_DU_CONTAINER> /var/www/html/occ <COMMANDE-DB>
|
||||
```
|
||||
|
||||
??? "Crontab (pour nettoyer Nextcloud régulierement)"
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
crontab -e
|
||||
*/5 * * * * docker exec -u www-data <NOM_DU_CONTAINER> php -f cron.php
|
||||
```
|
||||
|
||||
@ -9,13 +9,13 @@
|
||||
|
||||
### ARRET DE LA STACK
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
docker-compose down
|
||||
```
|
||||
|
||||
### modifier l'image docker de Nextcloud
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
nano docker-compose.yml
|
||||
```
|
||||
|
||||
@ -26,24 +26,24 @@ nano docker-compose.yml
|
||||
|
||||
### Relancer la stack
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
### Mettre le container nextcloud web en mode maintenance
|
||||
|
||||
Mettre Nextcloud en mode maintenance
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
docker exec -u www-data <nextcloud-container> php occ maintenance:mode --on
|
||||
```
|
||||
|
||||
Lancer l'update :coffee:
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
docker exec -u www-data <nextcloud-container> php occ upgrade
|
||||
```
|
||||
|
||||
Désactiver le mode maintenance
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
docker exec -u www-data <nextcloud-container> php occ maintenance:mode --off
|
||||
```
|
||||
|
||||
@ -51,13 +51,13 @@ docker exec -u www-data <nextcloud-container> php occ maintenance:mode --off
|
||||
|
||||
Après une mise à jour, vérifier les logs docker pour d'éventuelles erreurs sur des champs de base de donnée ou indices manquants:
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
docker logs <nextcloud-database-container>
|
||||
```
|
||||
|
||||
#### Indice de table manquants (opt)
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
# Commande pour ajouter des colonnes manquantes à certaines tables de la BDD
|
||||
docker exec --user www-data -it <nextcloud-database-container> /var/www/html/occ db:add-missing-indices
|
||||
```
|
||||
@ -65,12 +65,12 @@ docker exec --user www-data -it <nextcloud-database-container> /var/www/html/occ
|
||||
#### Modifier le type de champs d'un indice d'une table (opt)
|
||||
|
||||
Se connecter dans le conteneur:
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
docker exec -it <nextcloud-database-container> bash
|
||||
```
|
||||
|
||||
se connecter en tant que user nextcloud:
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
mariadb -u <nextcloud-user> -p
|
||||
# saisir le password du user nextcloud
|
||||
```
|
||||
|
||||
@ -2,26 +2,27 @@
|
||||
|
||||
## List databases
|
||||
|
||||
```
|
||||
``` { .bash .copy }
|
||||
postgres=# \l
|
||||
```
|
||||
|
||||
## Switch database
|
||||
```
|
||||
``` { .sql .copy }
|
||||
postgres=# \c db_name
|
||||
```
|
||||
|
||||
List tables
|
||||
```
|
||||
``` { .sql .copy }
|
||||
db_name=# \dt
|
||||
```
|
||||
|
||||
Show table content
|
||||
```
|
||||
``` { .sql .copy }
|
||||
db_name=# \d table_name
|
||||
```
|
||||
|
||||
Modify table
|
||||
```
|
||||
``` { .sql .copy }
|
||||
UPDATE table_name
|
||||
SET column1 = 'value1',
|
||||
column2 = 'value2',
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
|
||||
### Installation
|
||||
|
||||
```
|
||||
``` { .bash .copy }
|
||||
sudo apt update
|
||||
sudo apt install openssh-server
|
||||
```
|
||||
@ -12,7 +12,7 @@ sudo apt install openssh-server
|
||||
### Configuration du serveur ssh
|
||||
|
||||
!!! note "/etc/ssh/sshd_config"
|
||||
```
|
||||
``` { .copy }
|
||||
# Define a diferent port from default port=22
|
||||
Port 43000
|
||||
#
|
||||
@ -59,16 +59,17 @@ sudo apt install openssh-server
|
||||
```
|
||||
|
||||
### Démarrage du serveur ssh
|
||||
|
||||
``` { .bash .copy }
|
||||
sudo systemctl restart sshd.service
|
||||
|
||||
```
|
||||
---------------------
|
||||
|
||||
## Installation de Samba
|
||||
|
||||
### Installation
|
||||
|
||||
``` { .bash .copy }
|
||||
sudo apt install samba smbclient
|
||||
```
|
||||
|
||||
### Configuration du serveur
|
||||
|
||||
@ -102,7 +103,7 @@ sudo apt install openssh-server
|
||||
|
||||
#### Création d'un mot de passe sur le serveur
|
||||
|
||||
```
|
||||
``` { .bash .copy }
|
||||
sudo smbpassword -a $USER
|
||||
```
|
||||
|
||||
@ -110,7 +111,7 @@ sudo smbpassword -a $USER
|
||||
|
||||
Il est nécessaire de configurer le WORKGROUP pour les clients, afin qu'ils soient autorisés à se connecter au serveur Samba:
|
||||
|
||||
```
|
||||
``` { .bash .copy }
|
||||
sudo sed -i 's/WORKGROUP/KTHA-CIE/' /etc/samba/smb.conf
|
||||
```
|
||||
|
||||
@ -127,18 +128,18 @@ sudo sed -i 's/WORKGROUP/KTHA-CIE/' /etc/samba/smb.conf
|
||||
#### Step 1. Créer la clé d'authentification
|
||||
|
||||
On créé une variable pour le nom de la clé
|
||||
```
|
||||
``` { .bash .copy }
|
||||
KEY_PATH=~/.ssh/owner-of-key_rsa
|
||||
```
|
||||
|
||||
On génère la clé dans le dossier par défaut pour ne pas avoir à indiquer le chemin de la clé avec **-i*** lors d'une connexion avec `ssh`
|
||||
```
|
||||
``` { .bash .copy }
|
||||
ssh-keygen -b 4096 -t rsa -N '' -f $KEY_PATH
|
||||
```
|
||||
|
||||
#### Step 2. Envoyer la clé publique au serveur
|
||||
|
||||
```
|
||||
``` { .bash .copy }
|
||||
ssh-copy-id -i $KEY_PATH $USER@$SERVER_IP
|
||||
```
|
||||
|
||||
@ -147,19 +148,18 @@ ssh-copy-id -i $KEY_PATH $USER@$SERVER_IP
|
||||
Script à exécuter:
|
||||
|
||||
!!! note "/etc/cron.daily/backup"
|
||||
```
|
||||
``` { .copy }
|
||||
#!/bin/bash
|
||||
rsync -ahv --update --delete --info=backup2,copy2,del2,name1,stats2 --log-file="/home/$USER/backup_log/backup.log.$(date +%Y-%m-%d)" /home/$USER/Documents/ -e 'ssh -p 43000 -i $KEY_PATH $USER@176.151.59.186:/home/$USER/Documents'
|
||||
```
|
||||
|
||||
N'oubliez pas de rendre le script exécutable:
|
||||
```
|
||||
``` { .bash .copy }
|
||||
sudo chmod +x /etc/cron.daily/backup
|
||||
```
|
||||
|
||||
Définition de la tâche cron:
|
||||
|
||||
```
|
||||
``` { .bash .copy }
|
||||
sudo tee -a /etc/cron.d/backup > /dev/null <<EOT
|
||||
SHELL=/bin/bash
|
||||
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
||||
|
||||
@ -6,7 +6,7 @@ Comment installer Wireshark et capturer le traffic réseau d'un serveur distant
|
||||
|
||||
### Installation
|
||||
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
sudo apt install wireshark tcpdump -y
|
||||
```
|
||||
> Note: A installer sur le serveur ainsi que sur la machine cliente "streamant" le flux réseau.
|
||||
@ -14,19 +14,19 @@ sudo apt install wireshark tcpdump -y
|
||||
### Configuration
|
||||
|
||||
- Ajouter l'utilisateur au groupe wireshark
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
sudo usermod -aG wireshark $USER
|
||||
```
|
||||
|
||||
- Récupérer l'interface réseau du serveur distant:
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
ssh -p 2222 remote-user@123.45.67.89
|
||||
# L'interface connectée au réseau est celle qui donne l'adresse IP publique
|
||||
ip a
|
||||
```
|
||||
|
||||
> Note: Il est préférable d'avoir éffectué l'échange de clefs SSH via la commande:
|
||||
```bash
|
||||
``` { .bash .copy }
|
||||
ssh-copy-id remote-user@server-ip
|
||||
```
|
||||
|
||||
|
||||
@ -10,7 +10,7 @@ Ainsi nous pourrons utiliser le serveur de notre choix pour notre web-applicatio
|
||||
|
||||
On installe Nginx à partir des dépôts Debian, de façon à avoir une version stable, avec l'apport des correctifs de sécurité, et qui ne sera jamais cassé par une modification du système.
|
||||
|
||||
```
|
||||
``` { .bash .copy }
|
||||
sudo apt update
|
||||
sudo apt upgrade
|
||||
sudo apt install nginx
|
||||
@ -24,19 +24,19 @@ Dans votre navigateur, en tapant dabs la barre d'adresse `http://IP_DU_SERVEUR`,
|
||||
|
||||
### Installation des dépendances
|
||||
|
||||
```
|
||||
``` { .bash .copy }
|
||||
sudo apt update
|
||||
sudo apt -y install apt-transport-https ca-certificates curl gnupg2 software-properties-common
|
||||
```
|
||||
### Installation de la clé du dépôt Docker
|
||||
|
||||
```
|
||||
``` { .bash .copy }
|
||||
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
|
||||
```
|
||||
|
||||
### Ajout du dépôt docker dans le **sources.list**
|
||||
|
||||
```
|
||||
``` { .bash .copy }
|
||||
sudo add-apt-repository \
|
||||
"deb [arch=amd64] https://download.docker.com/linux/debian \
|
||||
$(lsb_release -cs) \
|
||||
@ -45,13 +45,13 @@ sudo add-apt-repository \
|
||||
|
||||
### Mise à jour de la liste des paquets et installation de docker
|
||||
|
||||
```
|
||||
``` { .bash .copy }
|
||||
sudo apt update && sudo apt install docker-ce docker-ce-cli containerd.io
|
||||
```
|
||||
|
||||
### Ajout de l'utilisateur dans le groupe **docker** pour utiliser docker sans sudo
|
||||
|
||||
```
|
||||
``` { .bash .copy }
|
||||
sudo usermod -aG docker $USER
|
||||
newgrp docker
|
||||
```
|
||||
@ -60,7 +60,7 @@ newgrp docker
|
||||
## Installation de Docker-Compose
|
||||
|
||||
### Téléchargement de Docker-Compose
|
||||
```
|
||||
``` { .bash .copy }
|
||||
curl -s https://api.github.com/repos/docker/compose/releases/latest \
|
||||
| grep browser_download_url \
|
||||
| grep docker-compose-linux-x86_64 \
|
||||
@ -70,14 +70,14 @@ curl -s https://api.github.com/repos/docker/compose/releases/latest \
|
||||
|
||||
### Mise en place de l'exécutable
|
||||
|
||||
```
|
||||
``` { .bash .copy }
|
||||
chmod +x docker-compose-linux-x86_64 && sudo mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
|
||||
sudo systemctl restart docker
|
||||
```
|
||||
|
||||
### Auto-complétion pour Bash
|
||||
|
||||
```
|
||||
``` { .bash .copy }
|
||||
sudo mkdir -p /etc/bash_completion.d
|
||||
sudo curl -L https://raw.githubusercontent.com/docker/compose/master/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose
|
||||
source /etc/bash_completion.d/docker-compose
|
||||
@ -89,7 +89,7 @@ source /etc/bash_completion.d/docker-compose
|
||||
|
||||
Créer un dossier pour accueillir le projet, et le fichier **docker-compose.yml**:
|
||||
|
||||
```
|
||||
``` { .bash .copy }
|
||||
mkdir wordpress && cd wordpress
|
||||
touch docker-compose.yml
|
||||
```
|
||||
@ -97,9 +97,7 @@ touch docker-compose.yml
|
||||
Ce fichier de configuration va déployer une image docker de wordpress et de la base de données mysql.
|
||||
|
||||
!!! info "docker-compose.yml"
|
||||
```
|
||||
version: '3.3'
|
||||
|
||||
``` { .yaml .copy }
|
||||
services:
|
||||
db:
|
||||
image: mysql:5.7
|
||||
@ -132,7 +130,7 @@ Ce fichier de configuration va déployer une image docker de wordpress et de la
|
||||
## Installation de SSL pour Nginx avec Let's Encrypt
|
||||
|
||||
Let's encrypt est un service qui permet de générer gratuitement un certificat SSL pour le domaine de notre choix.
|
||||
```
|
||||
``` { .bash .copy }
|
||||
sudo apt install python3-acme python3-certbot python3-mock python3-openssl python3-pkg-resources python3-pyparsing python3-zope.interface
|
||||
sudo apt install python3-certbot-nginx
|
||||
sudo certbot -d wordpress.mondomaine.fr
|
||||
@ -144,7 +142,7 @@ sudo certbot -d wordpress.mondomaine.fr
|
||||
On peut maintenant créer le fichier de configuration nginx dans /etc/nginx/sites-available/wordpress.mondomaine.fr.conf:
|
||||
|
||||
!!! info "wordpress.mondomaine.fr"
|
||||
```
|
||||
``` { .copy }
|
||||
upstream wpdocker {
|
||||
server 127.0.0.1:8000;
|
||||
}
|
||||
@ -191,13 +189,13 @@ On peut maintenant créer le fichier de configuration nginx dans /etc/nginx/sit
|
||||
```
|
||||
Pour activer ce fichier de configuration, on créé un lien symbolique vers le dossier sites-enabled:
|
||||
|
||||
```
|
||||
``` { .bash .copy }
|
||||
sudo ln -s /etc/nginx/sites-available/wordpress.mondomaine.fr.conf /etc/nginx/sites-enabled/
|
||||
```
|
||||
|
||||
On recharge la configuration de Nginx:
|
||||
|
||||
```
|
||||
``` { .bash .copy }
|
||||
sudo systemctl reload nginx.service
|
||||
```
|
||||
|
||||
|
||||
@ -9,6 +9,7 @@ theme:
|
||||
- navigation.instant
|
||||
- navigation.expand
|
||||
- navigation.tabs
|
||||
- content.code.copy
|
||||
plugins:
|
||||
#- markdownmermaid
|
||||
- search:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user