- Matériels
- ArchLinux Base
- XFCE
- Sauvegardes
- Erreurs
- NFS (DESACTIVE)
- Container, VM et VPS
- Maintenance
- Démarrer-Eteindre une machine sur le réseau
- Annexe
Matériels
Carte mère ASUS H110M-A/M.2
CPU
- Intel® Socket 1151 for 7th/6th Generation Core™ i7/Core™ i5/Core™ i3/Pentium®/Celeron® Processors
- Supports Intel® 14 nm CPU
- Supports Intel® Turbo Boost Technology 2.0
- The Intel® Turbo Boost Technology 2.0 support depends on the CPU types.
- Refer to www.asus.com for CPU support list
- Chipset
- Intel® H110
Réseau
- Contrôleur Gigabit Intel 1219v compatible avec LANGuard
Memory
- 2 x DIMM, Max. 32GB, DDR4 2400/2133 MHz Non-ECC, Un-buffered Memory
- Supports Intel® Extreme Memory Profile (XMP)
- Hyper DIMM support is subject to the physical characteristics of individual CPUs.
- Refer to www.asus.com for the Memory QVL (Qualified Vendors Lists).
- Due to Intel® chipset limitation, DDR4 2400MHz memory frequency is only supported by 7th Generation Intel® processors. Higher memory modules will run at the maximum transfer rate of DDR4 2400MHz.
- Due to Intel® chipset limitation, DDR4 2133MHz and higher memory modules on 6th Generation Intel® processors will run at the maximum transfer rate of DDR4 2133MHz.
Graphic
- Integrated Graphics Processor- Intel® HD Graphics support
- Multi-VGA output support : HDMI/DVI-D/RGB ports
- Supports HDMI with max. resolution 4096 x 2160 @ 24 Hz / 2560 x 1600 @ 60 Hz
- Supports DVI-D with max. resolution 1920 x 1200 @ 60 Hz
- Supports RGB with max. resolution 1920 x 1200 @ 60 Hz
- Maximum shared memory of 1024 MB
- Supports up to 2 displays simultaneously
Expansion Slots
- 1 x PCIe 3.0/2.0 x16 (x16 mode)
- 2 x PCIe 2.0 x1
Storage
- Intel® H110 chipset :
- 1 x M.2 Socket 3, with M key, type 2242/2260/2280 storage devices support (both SATA & PCIE mode)*2
- 4 x SATA 6Gb/s port(s),
- Intel® Rapid Storage Technology supports*1
- LAN
- Intel® I219V
Audio
- Realtek® ALC887 8-Channel High Definition Audio CODEC *2
- Supports : Jack-detection, Front Panel Jack-retasking
Audio Feature :
- LED-illuminated design - Brighten up your build with the gorgeous illuminated audio trace path.
- Audio Shielding: Ensures precision analog/digital separation and greatly reduced multi-lateral interference
- Dedicated audio PCB layers: Separate layers for left and right channels to guard the quality of the sensitive audio signals
- Premium Japanese audio capacitors: Provide warm, natural and immersive sound with exceptional clarity and fidelity
USB Ports
- Intel® H110 chipset :
- 4 x USB 3.1 Gen 1 port(s) (2 at back panel, blue, 2 at mid-board)
- Intel® H110 chipset :
- 6 x USB 2.0/1.1 port(s) (4 at back panel, black, 2 at mid-board)
Special Features
- ASUS 5X Protection II :
- ASUS LANGuard - 2.5X higher surge tolerance
- ASUS DIGI+ VRM - 5 Phase digital power design
- ASUS DRAM Overcurrent Protection - Prevents damage from short circuits
- ASUS Stainless-Steel Back I/O - 3X corrosion-resistance for greater durability
- ASUS ESD Guards - Electrostatic discharge protection
- ASUS EPU :
- EPU
- ASUS Exclusive Features :
- AI Suite 3
- Ai Charger
- Low EMI Solution
- USB 3.0 Boost
- Mobo Connect
- PC Cleaner
- ASUS Quiet Thermal Solution :
- Stylish Fanless Design Heat-sink solution
- ASUS Fan Xpert
- ASUS EZ DIY :
- ASUS CrashFree BIOS 3
- ASUS EZ Flash 3
- ASUS UEFI BIOS EZ Mode
- Push Notice
- ASUS Q-Design :
- ASUS Q-Slot
- ASUS Q-DIMM
Back I/O Ports
- 1 x PS/2 keyboard (purple)
- 1 x PS/2 mouse (green)
- 1 x DVI-D
- 1 x D-Sub
- 1 x HDMI
- 1 x LAN (RJ45) port(s)
- 2 x USB 3.1 Gen 1 (blue)
- 4 x USB 2.0
- 3 x Audio jack(s)
Internal I/O Ports
- 1 x USB 3.1 Gen 1 connector(s) support(s) additional 2 USB 3.1 Gen 1 port(s)
- 1 x USB 2.0 connector(s) support(s) additional 2 USB 2.0 port(s)
- 1 x M.2 Socket 3
- 1 x COM port(s) connector(s)
- 4 x SATA 6Gb/s connector(s)
- 1 x CPU Fan connector(s) (1 x 4 -pin)
- 1 x Chassis Fan connector(s) (1 x 4 -pin)
- 1 x S/PDIF out header(s)
- 1 x 24-pin EATX Power connector(s)
- 1 x 4-pin ATX 12V Power connector(s)
- 1 x Front panel audio connector(s) (AAFP)
- 1 x Clear CMOS jumper(s)
- 1 x System panel connector
Accessories
- User’s manual
- I/O Shield
- 2 x SATA 3Gb/s cable(s)
- 1 x M.2 Screw Package
- 1 x Supporting DVD
Manageability
- WfM 2.0, DMI 3.0, WOL by PME, PXE
Form Factor
- mATX Form Factor
- 8.9 inch x 7.3 inch ( 22.6 cm x 18.5 cm )
BIOS
- 128 Mb Flash ROM, UEFI AMI BIOS, PnP, DMI 3.0, WfM2.0, SM BIOS 3.0, ACPI 5.0, Multi-language BIOS, ASUS EZ Flash 3, ASUS CrashFree BIOS 3, My Favorites, Quick Note, Last Modified Log, F12 PrintScreen function, and ASUS DRAM SPD (Serial Presence Detect) memory information
Mise à jour du bios
- Update BIOS ASUS H110M-A/M.2
- BIOS H110M-A-M-2 (download)
- Version 3408 2017/07/21 Mise à jour BIOS effectuée le 13/10/2017
- Version 4202 2019/03/15 Mise à jour BIOS effectuée le
Après mise à jour du BIOS , il faut activer Intel Virtualization Technology
- Accès au BIOS (F2)
- Advanced Mode (F7)
- Onglet Advanced
- Faire défiler le champ Cpu configuration jusqu’au paramètre Intel Virtualization Technology
- Activer Intel Virtualization Technology Enabled
- Onglet Exit
- Save changes & reset
Processeur Refroidisseur Mémoire Alimentation
Intel Core i5-7500 4 cores (3.4 GHz)
CPU UPGRADE ASUS H110M-A/M.2 processor support and specifications (list des CPU compatibles avec la carte mère)
Processeur Intel Core i5-7500 CPU mis en place le 20/02/2020
General specs
Microarchitecture: Kaby Lake
Core Name: Kaby Lake-S
Manufacturing Process: 0.014 micron
Socket Type: Socket 1151
The Number of Cores: 4
The Number of Threads: 4
Multiprocessing: Not supported
Frequency: 3.4 GHz
Maximum Turbo Frequency: 3.8 GHz
L1 Cache: 128 KB (code)
128 KB (data)
L2 Cache: 1 MB
L3 Cache: 6 MB
Thermal Design Power: 65 Watt
Integrated GPU: Intel HD 630
Supported memory: DDR3L-1333 / DDR3L-1600 / DDR4-2133 / DDR4-2400
Instructions and Technologies
Execute Disable Bit? Yes
64-bit Support? Yes
Hyper-Threading technology? No
Turbo Boost? Yes
Virtualization? Yes
Enhanced SpeedStep? Yes
Instruction Set Extensions: AES
AVX
AVX2
F16C
FMA3
MMX
SSE
SSE2
SSE3
SSE4
Supplemental SSE3
Cooler Master Hyper TX3i
Ventilateur pour processeur (pour socket Intel 775 / 1150 / 1151 / 1155 / 1156)
Kingston ValueRAM 16 Go DDR4 2133 MHz CL15 DR X8
RAM DDR4 PC4-17000 - KVR21N15D8/16 (garantie 10 ans par Kingston)
Zalman ZM500-GV 80PLUS Bronze
Alimentation 500W ATX 12V v2.3 80PLUS Bronze
Sabrent SSD Interne Rocket Q M.2 2280 NVMe PCIe Haute Performance de 1TB (SB-RKTQ-1TB)
Sabrent Rocket Q
Western Digital Red 4 To SATA 3”5 6Gb/s
WDC WD40EFRX-68W
Spécifiquement conçus pour les systèmes NAS de 1 à 8 baies, les disques durs Western Digital Red sont faits pour tourner 24h/24 et 7j/7, et destinés aux particuliers et aux petites structures de travail. Ces disques durs au format 3.5” sont construits autour de 64 à 256 Mo de cache sur un bus SATA III. Leur compatibilité est assurée avec la plupart des serveurs NAS de grandes marques .
Crucial SSD 120Go
nvme1tb300SSD1
Crucial SSD CT512MX1 512Go
Crucial_CT512MX1
ArchLinux Base
Boot sur clé USB en UEFI contenant image ISO archlinux (format aaaa.mm.jj-dual.iso)
loadkeys fr # en est en qwerty , il faut saisir 'loqdkeys'
NOTE : Il est possible de se connecter en ssh pour la suite de l’installation:
- Modifier le mot de passe root :
passwd
- Relever l’adresse IP :
ip addr
- Lancer sshd :
systemctl start sshd
- Depuis le poste distant :
ssh root@adresseIP
On se connecte
ssh root@192.168.0.43
Partitionnement du disque
Partitionnement du disque NVME 1To GPT + LVM
gdisk /dev/nvme0n1
On passe en mode expert : x
On efface tout : z
Après partitionnement
gdisk -l /dev/nvme0n1
GPT fdisk (gdisk) version 1.0.5
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Disk /dev/nvme0n1: 234441648 sectors, 111.8 GiB
Model: nvme1tb300SSD1
Sector size (logical/physical): 512/4096 bytes
Disk identifier (GUID): 2E7D3E67-A473-499C-9193-414E47C07873
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 234441614
Partitions will be aligned on 2048-sector boundaries
Total free space is 2925 sectors (1.4 MiB)
Number Start (sector) End (sector) Size Code Name
1 2048 1050623 512.0 MiB EF00 efi
2 1050624 1638399 287.0 MiB 8300 boot
3 1638400 234440703 111.0 GiB 8300 lvm-partition
Les partitions logiques lvm
rootnvme nvme1tb -wi-a----- 60.00g
homenvme nvme1tb -wi-a----- 100.00g
On utilise le volume physique nvme1tb pour le home
Système de fichiers
Type de fichier ext4 pour les autres partitions
mkfs.fat -F32 /dev/nvme0n1p1
mkfs.ext4 /dev/nvme0n1p2
mkfs.ext4 /dev/nvme1tb/rootnvme
mkfs.ext4 /dev/nvme1tb/homenvme
Installer les bases
Points de montage
mount /dev/nvme1tb/rootnvme /mnt
mkdir /mnt/home
mount /dev/nvme1tb/homenvme /mnt/home
mkdir -p /mnt/boot/efi
mount /dev/nvme0n1p2 /mnt/boot
mount /dev/nvme0n1p1 /mnt/boot/efi
create: 2021-03-08
modifier le fichier /etc/pacman.d/mirrorlist pour ne garder qu’un seul miroir (facultatif)
passer la commande suivante avant la première ligne pacstrap :
export LANG=C
installation
pacstrap /mnt base base-devel linux linux-firmware nano dhcpcd lvm2
générer le fichier /etc/fstab qui liste les partitions présentes avec les UUID des partitions
genfstab -U -p /mnt >> /mnt/etc/fstab
Passage en chroot
arch-chroot /mnt
Fuseau horaire Europe/Paris
timedatectl set-timezone Europe/Paris
Activer la synchronisation ntp
timedatectl set-ntp true
timedatectl
Local time: jeu. 2020-12-17 11:09:44 CET
Universal time: jeu. 2020-12-17 10:09:44 UTC
RTC time: jeu. 2020-12-17 10:09:44
Time zone: Europe/Paris (CET, +0100)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
Clavier en mode texte, créer le fichier /etc/vconsole.conf.
echo "KEYMAP=fr" > /etc/vconsole.conf
localisation française, le fichier /etc/locale.conf doit contenir la bonne valeur pour LANG
nano /etc/locale.conf
Ajouter
LANG=fr_FR.UTF-8
LC_COLLATE=C
Il faut supprimer le # au début de la ligne fr_FR.UTF-8 UTF-8 dans le fichier /etc/locale.gen
nano /etc/locale.gen
puis exécuter:
locale-gen
spécifier la locale pour la session courante
export LANG=fr_FR.UTF-8
on a une machine en mono-démarrage sur Archlinux, et on peut demander à ce que l’heure appliquée soit UTC
hwclock --systohc --utc
create: 2021-03-08 modifier le fichier /etc/mkinitcpio.conf
nano /etc/mkinitcpio.conf
ajouter lvm2
entre block
et filesystems
dans les HOOKS
puis exécuter mkinitcpio qui est un script shell utilisé pour créer un environnement qui se chargé en premier en mémoire :
mkinitcpio -p linux # linux-lts si vous voulez le noyau lts
nom de la machine /etc/hostname
echo "archyan" > /etc/hostname
Créer fichier hosts
nano /etc/hosts
127.0.0.1 localhost
::1 localhost
127.0.1.1 archyan
mot de passe root
passwd root
Assurez-vous que vous utilisez toujours de la racine arch. Installez les paquets nécessaires :
pacman -S grub efibootmgr # os-prober
- GRUB: acronyme signifiant en anglais Grand Unified Bootloader, c’est un programme d’amorçage de micro-ordinateur qui s’exécute donc à la mise sous tension de l’ordinateur, après les séquences de contrôle du BIOS et avant le système d’exploitation proprement dit car son rôle est justement d’en organiser le chargement. Lorsque l’ordinateur comporte plusieurs systèmes (multi-boot), il permet à l’utilisateur de choisir quel système démarrer.
- Os-prober (facultatif): détecte les autre OS installés sur la machine et les propose directement au démarrage, sans avoir à les renseigner manuellement
- Efibootmgr: EFI Boot Manager est un utilitaire utilisable en ligne de commande permettant de gérer le chargeur de démarrage EFI. Il permet aussi de modifier l’ordre de démarrage des OS disponibles, etc.
Créez le répertoire si inexistant où la partition EFI sera montée :
mkdir -p /boot/efi
Maintenant, vérifiez ou montez la partition ESP
mount /dev/nvme0n1p1 /boot/efi
Installez grub comme ceci :
grub-install --target=x86_64-efi --bootloader-id=arch-grub --efi-directory=/boot/efi --recheck
Une commande supplémentaire mais facultative qui permet de s’assurer que l’on arrivera bien à redémarrer en UEFI:
mkdir -p /boot/efi/EFI/boot
cp /boot/efi/EFI/arch_grub/grubx64.efi /boot/efi/EFI/boot/bootx64.efi
Un dernier pas :
grub-mkconfig -o /boot/grub/grub.cfg
Activer le réseau par dhcpcd
systemctl enable dhcpcd
Réseau
2 choix, netctl ou NetworkManager
Netctl
Passer de dhcpcd à Netctl
Arrêter et désactiver dhcpcd
systemctl stop dhcpcd && systemctl disable dhcpcd
Mettre un adressage IP fixe et une route avec netctl
pacman -S netctl
résolution des dépendances…
:: Il y a 2 fournisseurs disponibles pour resolvconf :
:: Dépôt core
1) openresolv 2) systemd-resolvconf
Entrer un nombre (par défaut, 1 est sélectionné):
Réseau Lan statique
Copier le profil ip lan statique
cp /etc/netctl/examples/ethernet-static /etc/netctl/lan-yann
Configurer le profil
nano /etc/netctl/lan-yann
Description='A basic static ethernet connection'
Interface=enp0s31f6
Connection=ethernet
IP=static
Address=('192.168.0.42/24')
Gateway='192.168.0.254'
DNS=('192.168.0.254')
Vous pouvez dès à présent lancer netctl et utiliser votre profil
netctl start lan-yann
Activation profil
netctl enable lan-yann
NetworkManager
Important : Pour éviter des problèmes de conflit, pensez à bien désactiver tout autre service réseau en action (dhcpcd.service, netctl.service, wicd.service) avant d’utiliser NetworkManager sur une interface réseau donnée.
Installation
pacman -S networkmanager
Rajouter le service NetworkManager.service :
systemctl enable NetworkManager
Sortie chroot et redémarrage
On peut maintenant quitter tout, démonter proprement les partitions et redémarrer.
exit
umount -R /mnt
reboot # Redémarrage
# oter la clé USB
Première connexion
Connexion en root
Créer un utilisateur
Créer un utilisateur ‘yann’ avec la commande suivante
useradd -m -g users -G power,storage,wheel -s /bin/bash yann
passwd yann
Créer le groupe yann
groupadd -g 1000 yann
Ajouter l’utilisateur au groupe users et yann
usermod -G users,yann yann
Vérification
id yann
uid=1000(yann) gid=985(users) groupes=985(users),1000(yann)
Modifier sudoers pour accès sudo sans mot de passe à l’utilisateur
echo "yann ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
Openssh
Installation et lancement
pacman -S openssh
Paramétrage pour un accès via “root” : echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
Validation
systemctl enable sshd
Lancement SSH
systemctl start sshd
On peut se connecter en root avec un poste sur le réseau
ssh root@192.168.0.43
Installer yay
sudo pacman -S --needed git base-devel
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
Modification fstab , création des liens
Ajout au fichier /etc/fstab
# /dev/nvme1tb/medianvme
UUID=c0449742-9e72-42fb-b9b7-231d9cc29953 /srv/media ext4 rw,relatime 0 2
# /dev/mapper/ssd--512-virtuel
UUID=84bc1aa9-23ac-4530-b861-bc33171b7b42 /virtuel ext4 defaults 0 2
# /dev/mapper/vg--nas--one-sav
UUID=c5b9eefc-1daa-4a0d-8a72-6169b3c8c91f /sauvegardes ext4 defaults 0 2
# /dev/vg-nas-one/iso - Volume logique 200G du disque 4To
UUID=58f4b6c7-3811-41d5-9964-f47ac32375f6 /iso ext4 defaults 0 2
Liens sur les autres unités
sudo mkdir -p /srv/media
sudo ln -s /srv/media $HOME/media
sudo ln -s /virtuel $HOME/virtuel
sudo ln -s /iso $HOME/iso
sudo ln -s /sauvegardes $HOME/sav
On monte les unités
sudo mount -a
Images (fond d’écran + logos, connexion et grub)
sudo cp /srv/media/dplus/images/yannick/plouzane-nb.jpg /usr/share/backgrounds/xfce/ # écran 2
sudo cp /srv/media/dplus/images/yannick/Linux-Arch-1920x1080.jpg /usr/share/backgrounds/xfce/ # écran 1
sudo cp /srv/media/dplus/images/yannick/yannick-green.png /usr/share/pixmaps/
les images de fond d’écran /usr/share/backgrounds/xfce
sudo cp /srv/media/media/dplus/images/Fonds/Linux-Arch-1920x1080.jpg /usr/share/backgrounds/xfce/
sudo cp /srv/media/media/dplus/images/yannick/yannick-green.png /usr/share/pixmaps/
Ecran et logo pour lightdm de la page de connexion
sudo cp /srv/media/media/dplus/images/Fonds/archlinux-lightdm.png /usr/share/backgrounds/
sudo cp /srv/media/media/dplus/images/yannick/yannick53x64.png /usr/share/pixmaps/
XFCE
Installer Xorg et Xfce4
Installation de Xorg.
sudo pacman -S xorg
Installation xfce
sudo pacman -S xfce4 xfce4-goodies
Valider tout par défaut
XDG Répertoires d’utilisateurs
xdg-user-dirs est un outil pour aider à gérer les répertoires d’utilisateurs “bien connus” comme le dossier de bureau et le dossier de musique. Il gère également la localisation (c’est-à-dire la traduction) des noms de fichiers.
Installez xdg-user-dirs
yay -S xdg-user-dirs
Les fichiers de configuration locaux ~/.config/user-dirs.dirs
et globaux /etc/xdg/user-dirs.defaults
utilisent le format de variable d’environnement suivant pour pointer vers les répertoires des utilisateurs : XDG_DIRNAME_DIR="$HOME/directory_name"
.config/user-dirs.dirs
# This file is written by xdg-user-dirs-update
# If you want to change or add directories, just edit the line you're
# interested in. All local changes will be retained on the next run.
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
# absolute path. No other format is supported.
#
XDG_DESKTOP_DIR="$HOME/Bureau"
XDG_DOWNLOAD_DIR="$HOME/Téléchargements"
XDG_TEMPLATES_DIR="$HOME/Modèles"
XDG_PUBLICSHARE_DIR="$HOME/Public"
XDG_DOCUMENTS_DIR="$HOME/Documents"
XDG_MUSIC_DIR="$HOME/Musique"
XDG_PICTURES_DIR="$HOME/Images"
XDG_VIDEOS_DIR="$HOME/Vidéos"
Gestionnaire connexion - lightdm
Installation lightdm et du gestionnaire graphique
sudo pacman -S lightdm-gtk-greeter-settings # Installation de lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings
Pour avoir le bon agencement clavier dès la saisie du premier caractère du mot de passe, il faut entrer la commande suivant avant de lancer pour la première fois lightdm :
sudo localectl set-x11-keymap fr
Pour lancer Xfce, il faut entrer dans un premier temps :
sudo systemctl start lightdm # A saisir sur l'ordinateur ,pas sur la console SSH
Sélectionner l’utilisateur et saisir son mot de passe, et si tout se passe bien, on peut valider :
sudo systemctl enable lightdm
Dans le cas d’une configuration multi écran, il faut sélectionnner un écran sur lequel s’affichera la fenêtre de “login”
Ouvrir le fichier /etc/lightdm/lightdm-gtk-greeter.conf
et ajouter active-monitor=0
sous [greeter]
[greeter]
active-monitor=0
Outils et applications
On commence par tout ce qui est graphique : gimp, cups (gestion de l’imprimante) et hplip (si vous avez une imprimante scanner Hewlett Packard). Le paquet python-pyqt5 est indispensable pour l’interface graphique de HPLIP. Webkigtk2 étant indispensable pour la lecture de l’aide en ligne de Gimp. outil rsync, Retext éditeur markdown, firefox fr, thunderbird, libreoffice, gdisk
pacman -S cups system-config-printer gimp hplip rsync firefox-i18n-fr git libreoffice-fresh-fr thunderbird-i18n-fr wget jq figlet bind-tools
Gérer des périphériques utilisant MTP (tablettes sous android par exemple), il vous faut rajouter les deux paquets gvfs-mtp et mtpfs (facultatif) : sudo pacman -S gvfs-{afc,goa,google,gphoto2,mtp,nfs,smb}
Installer suite Xfce avec vlc (vidéo), pulseaudio, etc…
sudo pacman -S gvfs mtpfs vlc xarchiver galculator evince ffmpegthumbnailer xscreensaver pavucontrol pulseaudio pulseaudio-alsa
sudo pacman -S gedit keepassxc terminator filezilla nmap minicom zenity tmux
yay -S menulibre-git
ATTENTION : NE PAS INSTALLER le paquet xfce4-screensaver , pour vérifier si présent
pacman -Q xfce4-screensaver
etsudo pacman -R xfce4-screensaver
pour l’éliminer
Configuration xfce
Thème
https://wiki.archlinux.org/title/GTK
Arc - Un thème plat avec un look moderne et des éléments transparents. Comprend : Arc, Arc-Dark, Arc-Darker.
https://github.com/jnsh/arc-theme || avec transparence : arc-gtk-theme, sans transparence : arc-solid-gtk-theme
sudo pacman -S arc-gtk-theme arc-icon-theme
Paramètres → Apparence
- Style : Arc-Darker
- Icônes : Arc
- Polices : Cantarell Regular 10
Paramètres → Gestionnaire de fenêtres
- Style : Arc-Darker
Tableau de bord
Modification du tableau de bord , clic-droit → Tableau de bord → Préférences de tableau de bord
Tableau de bord 1
- Onglet Eléments
- Ajouter des éléments (+) –> Menu whisker (icône yannick-green.png) ,Mise à jour météo ,Greffon PulseAudio ,Afficher le bureau, Captures d’écran
- Supprimer Menu des applications
- Horloge Affichage date et heure, format personnalisé : %e %b %Y %R
- Changeur d’espace de travail ,Paramètres des espaces de travail à 2 , décocher Changer d’espace…
- Boutons d’action idem dans apparence , actions
Déconnexion
- Onglet Affichage
- Verrouiller tableau de bord
- Masquer automatiquement le tableau de bord Jamais
- Taille d’une ligne (pixels) 25
Choix Icônes et thème “numix”
Tableau de bord 2
Pour le déplacer le Tableau de bord 2 vers écran Essential 1.___72 , décocher Verrouiller tableau de bord
- Onglet Affichage
- Verrouiller tableau de bord
- Masquer automatiquement le tableau de bord Toujours
- Taille d’une ligne (pixels) 40
- Onglet Eléments tableau de bord 2
- Emulateur de Terminal : /usr/bin/terminator , icône terminator
Alimentation, écran, apparence, fenêtres, applications favorites et bureau
Xfce4 Desktop Environment Customization
Menu → Paramètres → Gestionnaire d’alimentation
Menu → Paramètres → Affichage , Double écran , Sharp à droite de Techwood
Menu → Paramètres → Apparence
Menu Paramètres → Gestionnaire de fenêtres
Après validation tableau de bord, clic droit sur icône capture écran puis Propriétés -> Zone à capturer : Sélectionner une zone
Menu → Paramètres → Applications favorites
- Utilitaires -> Emulateur de terminal : /usr/bin/terminator “%s”
Menu Paramètres –> Bureau
- Fonds d’écran image /usr/share/backgrounds/xfce
- Onglet Icônes
- Tout décocher dans Icônes par défaut
Veille écran - xscreensaver
Installer par défaut sur archlinux (xscreensaver)
Création d’un script pour Activer/Désactiver le programme de mise en veille xscreensaver
Prérequis : zenity
Le script ~/scripts/veille.sh
#!/bin/bash
# veille.sh
# Détecter si xscreensaver est actif
if [ "$(pidof -s xscreensaver)" ]; then
arret=false
zenity --question --title "veille" --ok-label="Oui" --cancel-label="Non" --text "Economiseur Ecran ACTIF\n\n DESACTIVER ?"
if [ $? = 0 ]
then
echo "ARRET daemon xscreensaver ..."
xscreensaver-command -exit
sleep 3
fi
else
arret=true
zenity --question --title "veille" --ok-label="Oui" --cancel-label="Non" --text "Economiseur Ecran NON ACTIF\n\n ACTIVER ?"
if [ $? = 0 ]
then
echo "DEPART daemon xscreensaver ..."
xscreensaver -nosplash &
sleep 3
fi
fi
Création lanceur XFCE en utilisant Editeur de menus (si “menulibre” installé ou manuellement :
mkdir -p ~/.local/share/applications/ #création dossier **applications** si inexistant
nano ~/.local/share/applications/menulibre-veille-ecran.desktop
Contenu :
[Desktop Entry]
Version=1.0
Type=Application
Name=Activer/Désactiver veille écran
Comment=Veille active ou pas par simple clic
Icon=preferences-desktop-screensaver
Exec=sh /home/yann/scripts/veille.sh
Path=/home/yann/scripts
NoDisplay=false
Categories=Utility;X-XFCE;X-Xfce-Toplevel;
StartupNotify=false
Terminal=false
Les icônes sont situés sous /usr/share/icons , il suffit de mettre le nom de l’icône choisi sans extension ni chemin pour le paramètre Icon
Ecran connexion (lightDM)
Ecran et logo pour lightdm de la page de connexion
Accès aux paramètres lightDM en mode graphique (mot de passe root)
- Menu –> Paramètres –> LightDM GTK+ Paramètres d’Apparence
Ecran de boot (grub)
Ecran de la page de démarrage grub
sudo cp ~/media/dplus/images/Fonds/wp2618243.jpg /usr/share/backgrounds/xfce/
sudo nano /etc/default/grub
GRUB_BACKGROUND="/usr/share/backgrounds/xfce/wp2618243.jpg"
Reconfigurer grub pour la prise en charge de l’image
sudo grub-mkconfig -o /boot/grub/grub.cfg
Applets Réseau
Netctl
Il existe une applet écrit en rust https://opensourcelibs.com/lib/netctl-tray
yay -S netctl-tray
You have to be in groups wheel and network for it to work properly.
To add an user to them, use:
# usermod -a -G wheel,network <user>
NetworkManager
Pour un environnement GTK, vous pouvez installer l’applet
pacman -S network-manager-applet
Afin de sauvegarder les détails d’authentification
pacman -S gnome-keyring
Son Pulseaudio + gstreamer
Lancement
pulseaudio --start
sudo usermod -aG audio $USER
Ouvrir pavucontrol
Audio interne DigitalStéréo (HDMI)
Port : HDMI/DisplayPort (plugged in)
Commuter la sortie audio entre HDMI et analogique par un clic, chercher l’expression “sortie audio hdmi” dans le champ recherche du site
gstreamer
sudo pacman -S gstreamer gst-libav gst-plugins-bad gst-plugins-base gst-plugins-good gst-plugins-ugly
Applications
Client Nextcloud
Installation client nextcloud
yay -S nextcloud-client libgnome-keyring gnome-keyring
Démarrer le client nextcloud , après avoir renseigné l’url ,login et mot de passe pour la connexion
AllTray - Thunderbird
Installer l’utilitaire AllTray compatible avec Gnome, KDE, et Xfce (Voir cet excellent tutorial) pour minimiser n’importe quelle application dans le systray
sudo pacman -S alltray
Ajout Thunderbird dans le systray
Paramètres → Session et démarrage , onglet Démarrage automatique d’application
Ajout ,clic sur le +
Retext
Retext , éditeur markdown
sudo pacman -S retext qt5-webkit
keepassxc
Créer le dossier mkdir -p $HOME/{.keepassx}
, Home/.keepassx –> ~/.keepassx
Ouvrir menu xfce et lancer KeePassXC
Base ~/.keepassx/yannick_xc.kdbx
Clé ~/.ssh/yannick_keepassxc.key
Calibre
Calibre facilite la gestion de votre bibliothèque de livres électroniques. Ce programme intuitif et complet vous permet de visionner vos ebooks, de les trier selon différents critères, de les convertir (individuellement ou par lot), d’éditer leurs méta-données et de récupérer des informations à partir d’Internet.
sudo pacman -S calibre
Premier lancement ,bibliothèques sous ~/media/BiblioCalibre et ~/media/CalibreTechnique
Flameshot
Copie écran (flameshot)
Flameshot c’est un peu THE TOOL pour faire des captures d’écrans
sudo pacman -S flameshot
Paramétrage “tableau de bord”
Emulation android - scrcpy
Applications…
yay -S scrcpy-git
sudo pacman -S android-tools
scrcpy https://github.com/Genymobile/scrcpy/
Bureau /home/yann/.local/share/applications/menulibre-scrcpy-(android).desktop
[Desktop Entry]
Version=1.1
Type=Application
Name=ScrCpy (Android)
Comment=Votre smartphone sur le bureau
Icon=smartphone-connected
Exec=/usr/bin/scrcpy
Path=/home/yann
Actions=
Categories=Utility;X-XFCE;X-Xfce-Toplevel;
Radio, menulibre(xfce) et firefox-nightly-fr
Installation
radiotray menulibre # tutanota-desktop-bin
firefox-nightly-fr
wget https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central-l10n/firefox-85.0a1.fr.linux-x86_64.tar.bz2
sudo tar -xvf firefox-85.0a1.fr.linux-x86_64.tar.bz2
sudo mv firefox /opt/firefox-nightly
rm firefox-85.0a1.fr.linux-x86_64.tar.bz2
Desktop /home/yann/.local/share/applications/firefox-nightly.desktop
[Desktop Entry]
Version=1.0
Name=Firefox Nightly
GenericName=Web Browser
GenericName[fr]=Navigateur web
Comment=Browse the Web
Comment[fr]=Naviguer sur le Web
Exec=/opt/firefox-nightly/firefox %u
Icon=firefox-nightly
Terminal=false
Type=Application
MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;
StartupNotify=true
StartupWMClass=Nightly
Categories=Network;WebBrowser;
Keywords=web;browser;internet;
Actions=new-window;new-private-window;
[Desktop Action new-window]
Name=New Window
Name[fr]=Nouvelle fenêtre
Exec=/opt/firefox-nightly/firefox --new-window %u
[Desktop Action new-private-window]
Name=New Private Window
Name[fr]=Nouvelle fenêtre de navigation privée
Exec=/opt/firefox-nightly/firefox --private-window %u
Wing Personal Python IDE
Wing Personal Python IDE
Wing Personal - Version 8.1.3 - Released 2022-02-01
1- Télécharger la version linux wget https://wingware.com/get&prod=wing-personal&target=pub/wing-personal/8.1.3.0/wing-personal-8.1.3.0-linux-x64.tar.bz2
2- décompresser tar -zxvf wing-personal-8.1.3.0-linux-x64.tar.bz2
3- En mode su , cd wing-personal-8.1.3.0-linux-x64.tar.bz2
, ./wing-install.py --winghome /opt/wing-personal --bin-dir /usr/local/bin
Xournal
Xournal https://github.com/xournalpp/xournalpp : yay -S xournal
Xournal++ est un logiciel de prise de notes manuscrites, surtout destiné à prendre des notes sur des documents PDF et à les annoter
QR Code (code-barres) définition, encodage et décodage (NON INSTALLE)
La première chose à faire va être d’installer deux petites applications, à savoir QRencode pour la partie création, et ZBar pour la partie scan/lecture
Sur Archlinux
sudo pacman -S qrencode zbar
KiCad (NON INSTALLE)
KiCad (NON INSTALLE) est une suite logicielle libre de conception pour l’électronique pour le dessin de schémas électroniques et la conception de circuits imprimés. KiCad est publié sous licence GNU GPL: sudo pacman -S kicad
qbittorent (NON INSTALLE)
qbittorent (NON INSTALLE) sudo pacman -S qbittorrent
Paramétrage
Alias fichier .bashrc
nano ~/.bashrc
#
# ~/.bashrc
#
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
alias ls='ls --color=auto'
PS1='[\u@\h \W]\$ '
alias findh="cat $HOME/scripts/findhelp.txt"
alias youtube='yt-dlp -f "bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best" --output "~/Vidéos/%(title)s.%(ext)s" --ignore-errors'
alias audio='yt-dlp --extract-audio --audio-format m4a --audio-quality 0 --output "~/Musique/%(title)s.%(ext)s"'
alias audiomp3='yt-dlp --extract-audio --audio-format mp3 --audio-quality 0 --output "~/Musique/%(title)s.%(ext)s"'
alias cryfs-autostart="$HOME/scripts/cryfs-autostart"
alias dnsleak="$HOME/scripts/dnsleaktest.sh"
alias toc="$HOME/scripts/toc.sh"
alias nmapl="sudo nmap -T4 -sP 192.168.0.0/24"
alias odt2html="$HOME/scripts/_odt2html+index"
alias off2htm="$HOME/scripts/office2html.sh"
alias otp="$HOME/scripts/generer-code-2fa-vers-presse-papier-toutes-les-30s.sh"
alias posturl="$HOME/scripts/posturl"
alias rename="$HOME/scripts/remplacer-les-espaces-accents-dans-une-expression.sh"
alias sshm="$HOME/scripts/ssh-manager.sh"
alias sshsyn="$HOME/scripts/synchro-ssh-xoyize.xyz.sh"
alias sslxc="$HOME/scripts/sslxc"
alias ssvbox="$HOME/scripts/ssvbox"
alias tmuxssh="$HOME/scripts/tmux-ssd.sh"
alias tmuxlxc="xterm -rv -geometry 100x30+100+350 -T yannstatic -e '/home/yann/scripts/tmux-lxc.sh'"
alias vnc="$HOME/scripts/sshvnc.sh"
alias traduc="/usr/local/bin/trans"
alias wgkey="$HOME/scripts/generer_jeu_cle_wireguard.sh"
alias tmuxvdb="xterm -geometry 100x30+100+350 -T yannstatic -e '/home/yann/scripts/tmux-vdb.sh'"
alias service="systemctl --type=service"
#alias static="sshm vdb exe 'sudo systemctl restart yannstatic.service'"
alias static="sshm lxcdeb exe 'cd ~/yannstatic; /home/lxcdeb/.rbenv/shims/jekyll build'"
alias statich="/usr/bin/brave --incognito https://static.cinay.eu/aide-jekyll-text-theme.html"
Liens scripts (/usr/local/bin)
# NE PAS CREER LES LIENS !!!!!!!!!!!!!!!!
# ----------------------------------------
#Créer des liens sur /usr/local/bin pour les scripts
$HOME/scripts/compress /usr/local/bin/pdfdim
$HOME/scripts/all-synchro.sh /usr/local/bin/allsync
$HOME/scripts/borglist /usr/local/bin/borglist
/opt/Postman/Postman /usr/local/bin/postman
sudo ln -s $HOME/scripts/tmux-ssd.sh /usr/local/bin/tmuxssh
sudo ln -s $HOME/scripts/generer-code-2fa-vers-presse-papier-toutes-les-30s.sh /usr/local/bin/otp
#sudo ln -s $HOME/scripts/virtuel /usr/local/bin/virtuel
#droits en exécution
#chmod +x $HOME/scripts/{ssh-manager.sh,savlog.sh,tmux-ssd.sh,virtuel}
Liens “statique”
les liens pour la rédaction des posts
sudo ln -s $HOME/media/statique/images /images
sudo ln -s $HOME/media/statique/files /files
Partages SSHFS (vps)
sshfs ,FUSE client based on the SSH File Transfer Protocol
sudo pacman -S sshfs
Création des partages utilisés par sshfs
mkdir -p ~/vps/{cx21,cx11,xoyaz.xyz,autre,lxc,xoyize.xyz}
minicom
Paramétrage de l’application terminale
sudo minicom -s
Seul les paramètres à modifier sont cités
Configuration du port série
A - Port série : /dev/ttyUSB0
F - Contrôle de flux matériel : Non
Echap
Enregistrer config. sous dfl
Sortir de Minicom
Nano comme éditeur par défaut
Attribution immédiate
export EDITOR=/usr/bin/nano
Attribution permanente
echo "export EDITOR=/usr/bin/nano" >> ~/.bashrc
Imprimante et scanner
Prérequis , paquets cups, system-config-printer, et hplip installés (Pilotes HP pour DeskJet, OfficeJet, Photosmart, Business Inkjet et quelques modèles de LaserJet aussi bien qu’un certain nombre d’imprimantes Brother)…
On démarre le service cups
sudo systemctl start cups.service # lancement cups
sudo systemctl enable cups.service # activation cups
Vérifier le fonctionnement du service : http://localhost:631/
Installation du scanner
Coté logiciel il vous faudra sane et son interface graphique xsane, ainsi qu’éventuellement xsane-gimp le plugin pour gimp.
yay -S xsane xsane-gimp
Paramétrage imprimante HP (su)
Lancer “HP Device Manager” : hp-setup
Vérifier si le scaner est reconnu : sudo scanimage -L
device `hpaio:/net/OfficeJet_7510_series?ip=192.168.0.39' is a Hewlett-Packard OfficeJet_7510_series all-in-one
Test
scanimage --device hpaio:/net/OfficeJet_7510_series?ip=192.168.0.39 --format=png > test.png
Journalctl
Ajout utilisateur courant au groupe systemd-journal et adm
sudo gpasswd -a $USER systemd-journal
sudo gpasswd -a $USER adm
Lignes non tronquées ,ajouter au fichier ~/.bashrc
echo "export SYSTEMD_LESS=FRXMK journalctl" >> /home/$USER/.bashrc
Prise en compte après déconnexion/reconnexion
Rendre persistant journalctl
Par défaut journalctl
affiche les logs du dernier boot. En cas de freeze de votre serveur, il peut être intéressant de comprendre ce qui s’est passé juste avant le plantage…Du coup nous allons rendre journalctl persistant.
sudo nano /etc/systemd/journald.conf
Oter le commentaire (#) à la ligne Storage=auto et remplacer auto par persistent
Réinitialiser le journal
sudo mkdir /var/log/journal
sudo systemd-tmpfiles --create --prefix /var/log/journal
sudo systemctl restart systemd-journald
Maintenant vous pouvez voir les différents boots
sudo journalctl --list-boots
0 518f818d328145f692098062be9056cb Thu 2019-08-29 11:07:55 CEST—Thu 2019-08-29 12:03:50 CEST
Openjdk - jre
Runtime java
sudo pacman -S jre-openjdk
Wireguard
Installation
sudo pacman -S wireguard-tools openresolv
Dossier /etc /wireguard
Configuration serveur wireguard wg.ouestline.xyz (cx11)
Lancement configuration
sudo -s
cd /etc/wireguard
Pour démarrer un tunnel avec un fichier de configuration
wg-quick
# wg-quick up <nom de l'interface>
wg-quick up wg0 # lancement
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -6 address add fd18:2941:ae9:7d96::3/128 dev wg0
[#] ip -4 address add 10.14.94.3/32 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] resolvconf -a wg0 -m 0 -x
[#] wg set wg0 fwmark 51820
[#] ip -6 route add ::/0 dev wg0 table 51820
[#] ip -6 rule add not fwmark 51820 table 51820
[#] ip -6 rule add table main suppress_prefixlength 0
[#] ip6tables-restore -n
[#] ip -4 route add 0.0.0.0/0 dev wg0 table 51820
[#] ip -4 rule add not fwmark 51820 table 51820
[#] ip -4 rule add table main suppress_prefixlength 0
[#] sysctl -q net.ipv4.conf.all.src_valid_mark=1
[#] iptables-restore -n
wg-quick down wg0 # arrêt
service systemd
#wg-quick@interfacename.service
systemctl start wg-quick@wg0.service
systemctl status wg-quick@wg0.service
● wg-quick@wg0.service - WireGuard via wg-quick(8) for wg0
Loaded: loaded (/usr/lib/systemd/system/wg-quick@.service; disabled; vendor preset: disabled)
Active: active (exited) since Tue 2020-11-24 20:54:09 CET; 8s ago
Docs: man:wg-quick(8)
man:wg(8)
https://www.wireguard.com/
https://www.wireguard.com/quickstart/
https://git.zx2c4.com/wireguard-tools/about/src/man/wg-quick.8
https://git.zx2c4.com/wireguard-tools/about/src/man/wg.8
Process: 36391 ExecStart=/usr/bin/wg-quick up wg0 (code=exited, status=0/SUCCESS)
Main PID: 36391 (code=exited, status=0/SUCCESS)
nov. 24 20:54:09 archyan wg-quick[36391]: [#] ip -6 route add ::/0 dev wg0 table 51820
nov. 24 20:54:09 archyan wg-quick[36391]: [#] ip -6 rule add not fwmark 51820 table 51820
nov. 24 20:54:09 archyan wg-quick[36391]: [#] ip -6 rule add table main suppress_prefixlength 0
nov. 24 20:54:09 archyan wg-quick[36483]: [#] ip6tables-restore -n
nov. 24 20:54:09 archyan wg-quick[36391]: [#] ip -4 route add 0.0.0.0/0 dev wg0 table 51820
nov. 24 20:54:09 archyan wg-quick[36391]: [#] ip -4 rule add not fwmark 51820 table 51820
nov. 24 20:54:09 archyan wg-quick[36391]: [#] ip -4 rule add table main suppress_prefixlength 0
nov. 24 20:54:09 archyan wg-quick[36391]: [#] sysctl -q net.ipv4.conf.all.src_valid_mark=1
nov. 24 20:54:09 archyan wg-quick[36493]: [#] iptables-restore -n
nov. 24 20:54:09 archyan systemd[1]: Finished WireGuard via wg-quick(8) for wg0.
Vérification
ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s31f6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 38:d5:47:7c:a0:6c brd ff:ff:ff:ff:ff:ff
inet 192.168.0.43/24 brd 192.168.0.255 scope global dynamic noprefixroute enp0s31f6
valid_lft 27798sec preferred_lft 22398sec
inet6 2a01:e34:eebf:df0:b968:86b6:a0a9:79f7/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 86183sec preferred_lft 86183sec
inet6 fe80::8ece:7e8c:f571:b48b/64 scope link
valid_lft forever preferred_lft forever
4: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
link/none
inet 10.14.94.3/32 scope global wg0
valid_lft forever preferred_lft forever
inet6 fd18:2941:ae9:7d96::3/128 scope global
valid_lft forever preferred_lft forever
GtkWg
Dossier : sudo mkdir -p /usr/local/share/gtkwg
Droits sudo chown $USER.users -R /usr/local/share/gtkwg/
Librairie : yay -S libappindicator-gtk3
Les configurations mullvad /usr/local/share/gtkwg/mullvad_config_linux_all/
Ajout configuration wireguard serveur cx11 (wg.ouestline.xyz)
sudo cp wg0-archlinux-pc1.conf /usr/local/share/gtkwg/mullvad_config_linux_all/mullvad-frcx11.conf
Le fichier desktop dans ~/.local/share/applications/menulibre-gtkwg.desktop
[Desktop Entry]
Version=1.0
Type=Application
Name=Wireguard
Comment=IconTray/Configuration
Icon=/usr/local/share/gtkwg/wireguard_icon.png
Exec=/usr/bin/sh /usr/local/share/gtkwg/GtkWgTray.sh
Path=/usr/local/share/gtkwg/
NoDisplay=false
Categories=Utility;
StartupNotify=false
Terminal=false
xfce: “Menu -> Paramètres -> Session et démarrage”, Démarrage automatique d’applications
Sauvegardes
Locales systemd et timer
Sauvegardes locales avec systemd utilisateur service et timer
----------------------------------------------------------------------------------
sav-yann-media.sh
# Sauvegardes internes
/srv/media/ -> /sauvegardes/media/
/home/yann/ -> /sauvegardes/yann/
# Sauvegardes <--> yanfi.space
commun
/srv/media/diceware/* -> admin@yanfi.space:/srv/datayan/www/diceware/
/srv/media/osm-new/* -> admin@yanfi.space:/srv/datayan/www/osm-new/
/srv/media/CalibreTechnique/* -> admin@yanfi.space:/srv/datayan/CalibreTechnique/
/srv/media/BiblioCalibre/* -> admin@yanfi.space:/srv/datayan/BiblioCalibre/
musicdist (Synchro musique distante sur yanfi avec le dossier local music)
admin@yanfi.space:/srv/datayan/musique/* -> /srv/media/music/
----------------------------------------------------------------------------------
sav-media-vers-yunohost.sh (yanfi.space)
/srv/media/diceware/* -> admin@yanfi.space:/srv/datayan/www/diceware/
/srv/media/osm-new/* -> admin@yanfi.space:/srv/datayan/www/osm-new/
/srv/media/CalibreTechnique/* -> admin@yanfi.space:/srv/datayan/CalibreTechnique/
/srv/media/BiblioCalibre/* -> admin@yanfi.space:/srv/datayan/BiblioCalibre/
----------------------------------------------------------------------------------
sav-media-vers-lenovo.sh
/srv/media -> leno@192.168.0.145:/srv/media
Borg sauvegarde home PC1
Installation
yay -S borgbackup
Utilisation boite de stockage Hetzner bx20
export BORG_RSH='ssh -i /home/yann/.ssh/bx20-yann-ed25519'
export BORG_PASSPHRASE="BoetteFardeauServalOssifieCystitePassive"
Initialisation du dépôt /backup/borg/archyan
borg init --encryption=repokey ssh://u277865@u277865.your-storagebox.de:23/./backup/borg/archyan
Création d’un fichier exclusions qui contient toutes les exclusions de dossiers et fichiers , une exclusion par ligne
mkdir /home/yann/.borg
nano /home/yann/.borg/exclusions
/home/yann/.cache
/home/yann/Partage
/home/yann/iso
/home/yann/lenovo
/home/yann/media
/home/yann/Téléchargements
/home/yann/Vidéos
/home/yann/temp
/home/yann/vps
/home/yann/sav
/home/yann/virtuel
Initialisation dépôt “yannick-pc” de sauvegarde chiffré
export BORG_RSH='ssh -i /home/yann/.ssh/bx20-yann-ed25519'
export BORG_PASSPHRASE="BalafonRapinIntubeProcureCostaux"
borg init --encryption=repokey ssh://u277865@u277865.your-storagebox.de:23/./backup/borg/archyan
Résultat de la commande
By default repositories initialized with this version will produce security
errors if written to with an older version (up to and including Borg 1.0.8).
If you want to use these older versions, you can disable the check by running:
borg upgrade --disable-tam ssh://u277865@u277865.your-storagebox.de:23/./backup/borg/archyan
See https://borgbackup.readthedocs.io/en/stable/changes.html#pre-1-0-9-manifest-spoofing-vulnerability for details about the security implications.
IMPORTANT: you will need both KEY AND PASSPHRASE to access this repo!
If you used a repokey mode, the key is stored in the repo, but you should back it up separately.
Use "borg key export" to export the key, optionally in printable format.
Write down the passphrase. Store both at safe place(s).
Par exemple, utilisez la commande suivante pour sauvegarder les dossiers ‘src’ et ‘build’ de votre répertoire personnel vers le référentiel de votre boîte de stockage. Vous devez donner un nom unique à chaque sauvegarde. Un horodatage est utile pour créer des noms uniques.
borg create ssh://u277865@u277865.your-storagebox.de:23/./backup/borg/archyan::2017_11_11_initial ~/src ~/built
Création du script borg-backup
Borg a la déduplication, le contrôle de cohérence, le cryptage, est configurable par des variables d’environnement, la récupération des fichiers avec FUSE pour le montage des dépôts. En utilisant borg prune, on peut avoir une haute fréquence de sauvegardes avec une gestion du cycle des repo : 6 heures, 7 jours, 4 semaines, et 6 mois.
Le fichier script /root/.borg/borg-backup
nano /home/yann/.borg/borg-backup
#!/bin/bash
set -e
export BORG_RSH='ssh -i /home/yann/.ssh/bx20-yann-ed25519'
export BORG_PASSPHRASE="BalafonRapinIntubeProcureCostaux"
BACKUP_DATE=`date +%Y-%m-%d-%Hh%M`
echo "Exécution borg-backup yannick-pc $BACKUP_DATE"
BORG_REPOSITORY=ssh://u277865@u277865.your-storagebox.de:23/./backup/borg/archyan
BORG_ARCHIVE=${BORG_REPOSITORY}::${BACKUP_DATE}
# Sauvegarde de tout /home à l'exception de quelques répertoires et fichiers exclus
borg create -v --stats --exclude-from /home/yann/.borg/exclusions --exclude-caches \
$BORG_ARCHIVE \
/home/yann
# Prune la repo de sauvegardes supplémentaires
borg prune \
-v --list --stats --keep-daily=7 --keep-weekly=4 --keep-monthly=6 \
$BORG_REPOSITORY
borg list $BORG_ARCHIVE
echo "Fin exécution borg-backup"
exit 0
Droits en exécution
sudo chmod +x /root/.borg/borg-backup
Utiliser Borg avec SystemD service + timer
Pour une automatisation en utilisant systemd :
- vous devez créer un fichier borg-backup.service et le mettre dans le dossier /etc/systemd/system/system/
- Pour une exécution régulière (parce que ce n’est pas un processus “daemon”), un fichier borg-backup.timer , dans le même dossier que borg-backup.service
- Le nom de fichier avant le suffixe “.service” et “.timer” doit correspondre pour que systemd reconnaisse ce qu’il doit faire.
Service : /etc/systemd/system/borg-backup.service
[Unit]
Description=Borg Backup Service
After=network-online.target
[Service]
Type=simple
ExecStart=/bin/bash /root/.borg/borg-backup
StandardError=journal
# TimeoutStartSec= configure le délai d'attente pour attendre le démarrage du service.
TimeoutStartSec=600
[Install]
# niveau d'exécution multi utilisateur
WantedBy=multi-user.target
Adapter User= et Group= dans le fichier borg-backup.service pour un utilisateur qui a les droits sur la sauvegarde. Exécuter le service par défaut mettrait la propriété root:root sur la sauvegarde.
Il est possible de tester le service avec un simple
sudo systemctl daemon-reload # on vient de créer un nouveau service
sudo systemctl start borg-backup.service
l’état de votre système de sauvegarde
systemctl status borg-backup
Le journal
journalctl -u borg-backup
Valider le service borg-backup.service
sudo systemctl enable borg-backup
Timer : /etc/systemd/system/borg-backup.timer
[Unit]
Description=Borg Backup Timer
[Timer]
#
OnBootSec=15min
OnUnitActiveSec=1d
Unit=borg-backup.service
[Install]
WantedBy=timers.target
- Install va créer la dépendance pour que votre “timer” soit bien exécuté et pris en compte par systemd.
- OnActiveSec= définit une minuterie par rapport au moment où la minuterie elle-même est activée.
- OnBootSec= définit une temporisation relative au démarrage de la machine.
- OnStartupSec= définit une minuterie relative à la date du premier démarrage de systemd.
- OnUnitActiveSec= définit une minuterie relative à l’unité dans laquelle la minuterie est utilisée.a été activée pour la dernière fois.
- OnUnitInactiveSec= définit une temporisation relative à lorsque l’unité que la minuterie est en train d’activer a été désactivée pour la dernière fois.
Plusieurs directives peuvent être combinées du même type et de types différents. Pour par exemple, en combinant OnBootSec= et OnUnitActiveSec=, il est possible de définir une minuterie qui s’écoule à intervalles réguliers et active un service spécifique à chaque fois du temps.
Les arguments des directives sont des intervalles de temps configurés en secondes.
Exemple : “OnBootSec=50” signifie 50 s après le démarrage. L’argument peut aussi inclure le temps unités.
Exemple : “OnBootSec=5h 30min” signifie 5 heures et 30 minutes après que boot-up.
Activation et démarrage du timer
Ensuite, pour qu’il soit actif, il faut prévenir systemd
sudo systemctl enable borg-backup.timer
sudo systemctl start borg-backup.timer
Vous pouvez vérifier quand votre prochaine sauvegarde se déclenchera à l’aide des minuteries
systemctl list-timers
NEXT LEFT LAST PASSED UNIT AC>
Wed 2019-12-11 13:15:52 CET 23h left Tue 2019-12-10 13:15:52 CET 8s ago borg-backup.timer bo>
Débloquer un dépôt BORG verrouillé
Exemple , déblocage du dépôt yannick-pc
export BORG_PASSPHRASE="`cat ~root/.borg/passphrase`"
export BORG_RSH='ssh -i /root/.ssh/yannick-pc_ed25519'
BORG_REPOSITORY=ssh://borg@xoyaz.xyz:55036/srv/data/borg-backups/yannick-pc
borg break-lock $BORG_REPOSITORY
Erreurs
terminator No module named ‘validate’
pacman -S devtools git #install devtools used to build in a clean chroot and git needed to obtain source
git clone git://git.archlinux.org/svntogit/community.git --single-branch --branch "packages/python-configobj" #clone package source
chmod 777 -R community/trunk
cd community/trunk
curl -o PKGBUILD.diff http://ix.io/2J4c #download patch
git apply PKGBUILD.diff
extra-x86_64-build #build package in a clean chroot
pacman -U python-configobj-5.0.6-10-any.pkg.tar.zst #install built package
cd ../..
rm -r community/
Firefox - OCSP
HTTPS connection fails with “MOZILLA_PKIX_ERROR_REQUIRED_TLS_FEATURE_MISSING”
Impossible de charger un site, message d’erreur semble signifier qu’il y a un problème avec la réponse OCSP du serveur : *L’“agrafage” OCSP - inclusion de la vérification de la non-révocation du certificat du serveur - est requis mais non fourni.
(1) Dans un nouvel onglet, tapez ou collez about:config
dans la barre d’adresse et appuyez sur Entrée/Retour.
Cliquez sur le bouton en promettant d’être prudent.
(2) Dans la boîte de recherche située au-dessus de la liste, tapez ou collez ocsp pour filtrer
(3) Double-cliquez sur la préférence security.ssl.enable_ocsp_must_staple pour faire passer la valeur de true à false
Essayez ensuite à nouveau le site, en contournant le cache (par exemple, Ctrl+Maj+r lorsque vous rechargez)
NFS (DESACTIVE)
nfs-utils
Partage de disques en réseau avec NFS
Installer nfs-utils avec la commande
sudo pacman -S nfs-utils # archlinux
sudo apt install nfs-common # debian
NFS - Serveur sur PC1
Adresse IP PC1 : 192.168.0.42
Le fichier /etc/exports
# Use `exportfs -arv` to reload.
/srv/media/dplus/android-apk/Galaxy-S8_SM-G950F 192.168.0.0/24(rw,no_subtree_check)
/mnt/partage 192.168.0.0/24(rw,sync,no_subtree_check,no_root_squash)
Maintenant que le serveur NFS est configuré avec le point de montage NFS de base /mnt/partage
, nous devons configurer SetGID dans ce répertoire
sudo chmod 2770 /mnt/partage
Créer un groupe appelé ‘local’ et associer l’utilisateur
sudo groupadd -g 9999 local
sudo usermod -a -G local $USER
sudo chgrp local /mnt/partage
Se déconnecter puis se connecter pour la prise en charge
id
uid=1000(yann) gid=985(users) groupes=985(users),98(power),972(libvirt),988(storage),992(kvm),998(wheel),9999(local)
NFS - Client
Créer un point de montage NFS
sudo mkdir -p /mnt/xoyipart
Le partage NFS (/etc/hosts
contient la définition du serveur : 192.168.0.46 xoyize.xyz
)
sudo showmount -e 192.168.0.46
Export list for xoyize.xyz:
/xoyipart 192.168.0.0/24
Montage automatique à la demande avec timeout via fstab et x-systemd
sudo nano /etc/fstab
#xoyize.xyz:/xoyipart /mnt/xoyipart/ nfs4 x-systemd.automount,x-systemd.idle-timeout=300,async 0 0
192.168.0.46:/xoyipart /mnt/xoyipart/ nfs x-systemd.automount,x-systemd.idle-timeout=300,rsize=32768,wsize=32768 0 0
Montage manuel
sudo mount -a
Le répertoire est «setgidé»
Quand un répertoire est «setgidé », le comportement observé change. On ne parle alors plus de droits d’exécution mais d’appartenance. En effet, tous les fichiers ou sous-répertoires qui seraient créés dans un tel répertoire, appartiendraient automatiquement au groupe auquel appartient le dossier. Si plusieurs utilisateurs peuvent et/ou doivent travailler dans un même répertoire par exemple, on peut positionner le droit SETGID sur ce répertoire afin que tous les utilisateurs puissent accéder à son contenu sans restrictions liées au propriétaire qui a créé le fichier ou le sous-répertoire.
Exécuter groupadd
sur le client et ajouter un (ou plusieurs) utilisateur à ce groupe.
sudo groupadd -g 9999 local
# ajout utilisateur au groupe
sudo usermod -a -G local $USER
Vérification
touch /mnt/xoyipart/test
ls -la /mnt/xoyipart/
total 8
drwxrwsr-x 2 root local 4096 27 déc. 12:16 .
drwxr-xr-x 4 root root 4096 27 déc. 11:45 ..
-rw-rwxr-- 1 yann local 0 27 déc. 11:57 test
Désactiver NFS
Désactivation
sudo systemctl stop nfs-service
sudo systemctl disable nfs-service
Démonter le point /mnt/lenovo
sudo umount /mnt/lenovo
Modifier le fichier /etc/fstab
# partage NFS sur rnmkcy.eu "lenovo thinkcentre M700 Tiny"
#192.168.0.145:/srv/thinkcentre /mnt/lenovo nfs x-systemd.automount,x-systemd.idle-timeout=300,async 0 0
Container, VM et VPS
Pont (Bridge)
Pour un réseau en pont (bridge - adresse IP container dans le même réseau que l’hôte) : Archlinux KVM/QEMU - Virtual Machine Manager - Réseau (network)
Ordinateur hôte PC1 en mode bridge
Désactiver le réseau “lan-yann” : sudo netctl disable lan-yann
La configuration “pont statique”
/etc/netctl/bridge-yann
Description="Static Bridge connection"
Interface=br0
Connection=bridge
BindsToInterfaces=(enp0s31f6)
IP=static
Address=('192.168.0.42/24')
Gateway='192.168.0.254'
DNS=('192.168.0.254')
## Ignore (R)STP and immediately activate the bridge
SkipForwardingDelay=yes
Lancer et activer
netctl start bridge-yann
netctl enable bridge-yann
Vérifier
ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s31f6: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000
link/ether 38:d5:47:7c:a0:6c brd ff:ff:ff:ff:ff:ff
inet6 fe80::3ad5:47ff:fe7c:a06c/64 scope link
valid_lft forever preferred_lft forever
3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 9a:87:46:a3:88:b9 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.42/24 brd 192.168.0.255 scope global br0
valid_lft forever preferred_lft forever
inet6 fdc4:62ff:57c6:0:9887:46ff:fea3:88b9/64 scope global dynamic mngtmpaddr
valid_lft forever preferred_lft forever
inet6 2a01:e0a:2de:2c70:9887:46ff:fea3:88b9/64 scope global dynamic mngtmpaddr
valid_lft 86148sec preferred_lft 86148sec
inet6 fe80::9887:46ff:fea3:88b9/64 scope link
valid_lft forever preferred_lft forever
LXC
- Archlinux container LXC debian 10 (buster) + Jekyll
Container LXC actif au démarrage de PC1, notamment utilisé pour la gestion du serveur statique
mount bind :un montage lié prend une arborescence de répertoires existante et la réplique sous un point différent. Les répertoires et les fichiers du montage lié sont les mêmes que ceux d’origine.
Toute modification d’un côté est immédiatement répercutée de l’autre côté, car les deux vues affichent les mêmes données.
Par exemple, après avoir lancé la commande Linux
mount --bind /some/where /else/where
les répertoires /some/whereet /else/where ont le même contenu.
Les dossiers “bind” dans le fichier /etc/fstab
# LXC dossiers partagés
/srv/media /var/lib/lxc/lxcbuster/rootfs/home/lxcdeb/media none bind 0 0
tmuxlxc
Visualisation en terminal synchro lxc avec xoyaz
Le script : /home/yann/scripts/tmux-lxc.sh
Le .desktop : /home/yann/.local/share/applications/menulibre-tmuxlxc.desktop
[Desktop Entry]
Version=1.1
Type=Application
Name=Static-synchro
Comment=multi fenêtres
Icon=final-term
Exec=xterm -rv -geometry 100x30+100+350 -T yannstatic -e '/home/yann/scripts/tmux-lxc.sh'
Actions=
Categories=Utility;
Path=
Terminal=false
StartupNotify=false
QEMU/KVM
- PC1 ArchLinux - VM Debian 10 vdb (jekyll-statique)
- Autres liens
tmuxssd
Configuration par défaut de tmux $HOME/.tmux.conf
#Configuration de tmux
#Origine : http://denisrosenkranz.com
#Yannick juin 2017
# Copier/Coller par la souris se fait avec la touche "Shift" appuyée
##################################
#Changements des raccourcis claviers
##################################
#On change Control +b par Control +x
#set -g prefix C-x
#unbind C-b
#bind C-x send-prefix
#On utilise control + flèches pour naviguer entre les terminaux
bind-key -n C-right next
bind-key -n C-left prev
#on utilise alt + flèches our naviguer entre les panels
bind-key -n M-left select-pane -L
bind-key -n M-right select-pane -R
bind-key -n M-up select-pane -U
bind-key -n M-down select-pane -D
#On change les raccourcis pour faire du split vertical et horizontal
#On utilise la touche "|" (pipe) pour faire un split vertical
bind | split-window -h
#Et la touche "-" pour faire un split horizontal
bind - split-window -v
##################################
#Changements pratiques
##################################
#On permet l'utilisation de la souris pour changer de terminal et de panel
set -g mouse on
# Sélection zone par clic gauche souris (texte sélectionné sur fond jaune)
# Après relachement du clic , le texte sélectionné est copié dans le presse-papier
# Le fond jaune disparaît
set-option -s set-clipboard off
# For emacs copy mode bindings
# Il faut installer l'utilitaire 'xclip' (sudo pacman -S xclip)
bind-key -T copy-mode MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -selection clipboard -i"
#Les fenêtres commencent par 1 et non par 0
set -g base-index 1
##################################
#Changements visuels
##################################
#On met les panneaux non actif en gris
#set -g pane-border-fg colour244
#set -g pane-border-bg default
#On met le panneau actif en rouge
#set -g pane-active-border-fg colour124
#set -g pane-active-border-bg default
#On met la barre de status en gris
set -g status-fg colour235
set -g status-bg colour250
#set -g status-attr dim
# On surligne les fenêtres actives dans la barre de status en gris foncés
#set-window-option -g window-status-current-fg colour15
#set-window-option -g window-status-current-bg colour0
Visualisation en terminal des VPS avec terminator et tmux
Le script : /home/yann/scripts/tmux-ssd-a.sh
Le .desktop : /home/yann/.local/share/applications/menulibre-tmuxssd-a.desktop
[Desktop Entry]
Version=1.1
Type=Application
Name=A - Serveurs VPS
Comment=multi fenêtres
Icon=final-term
Exec=terminator --geometry=1900x1000+20+100 -e '/home/yann/scripts/tmux-ssd-a.sh'
Actions=
Categories=Utility;
Path=
Terminal=false
StartupNotify=false
Le script : /home/yann/scripts/tmux-ssd-b.sh
Le .desktop : /home/yann/.local/share/applications/menulibre-tmuxssd-b.desktop
[Desktop Entry]
Version=1.1
Type=Application
Name=B - Serveurs VPS
Comment=multi fenêtres
Icon=final-term
Exec=terminator --geometry=1900x900+20+100 -e '/home/yann/scripts/tmux-ssd-b.sh'
Actions=
Categories=Utility;
Path=
Terminal=false
StartupNotify=false
tmuxvdb
Surveillance construction site statique et synchronisation avec le serveur xoyaz sur la machine virtuelle debian
Le bash /home/yann/scripts/tmux-vdb.sh
#!/bin/bash
# COLUMNSxROWS+X+Y -> xterm -geometry 400x200+100+350
# xterm -geometry 100x30+100+350 -T yannstatic -e '/home/yannick/scripts/tmux-lxc.sh'
# On supprime la session "vdbSess" si existante
if [[ `tmux list-sessions | grep 'vdbSess' | wc -l` != 0 ]]
then
# On ferme la session active
tmux kill-session -t vdbSess
fi
# Créer une bannière dans /etc/motd sur chaque serveur
# Nom du domaine en ascii voir lien http://patorjk.com/software/taag/#p=display&h=1&f=Small
echo "fin fi"
# Créer session + terminal
tmux new -d -s vdbSess -n vdbTerm
# Séparation horizontale en 2 du terminal
tmux split-window -v -p 50
# | 0 |
# | |
# |-----------|
# | 1 |
# | |
# Sélection terminal HAUT
tmux selectp -t 0
#
tmux send-keys -t vdbSess 'static' C-m
# Sélection terminal BAS
tmux selectp -t 1
#
tmux send-keys -t vdbSess "synchro" C-m
# Afficher la session
tmux a -t vdbSess
#
# Tuer la session
# tmux kill-session -t vdbSess
Le desktop
[Desktop Entry]
Version=1.1
Type=Application
Name=Static-synchro
Comment=multi fenêtres
Icon=final-term
Exec=xterm -geometry 100x30+100+350 -T yannstatic -e '/home/yann/scripts/tmux-vdb.sh'
Actions=
Categories=Utility;
Path=
Terminal=false
StartupNotify=false
Maintenance
Utilisateur - Id et Groupes
Vérifier id
id $USER
uid=1000(yann) gid=985(users) groupes=985(users),90(network),98(power),998(wheel),995(audio),992(kvm),988(storage),972(libvirt),9999(local),1000(yann)
En cas d’absence d’un ou plusieurs groupes
sudo usermod -a -G users,yann,wheel,network,audio,local,power,storage,kvm,libvirt $USER
Dans cette commande je renouvelle toutes les appartenances aux groupes de l’utilisateur
Erreur lancement “Wing Personal 8”
/usr/local/lib/wing-personal8/bin/__os__/linux-x64/runtime-python3.9/bin/python3.9: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory
Le fichier libcrypt.so.1 est introuvable
[yann@archyan ~]$ ls /usr/lib/libcry*
/usr/lib/libcrypt.so /usr/lib/libcrypto.so /usr/lib/libcryptopp.so.8 /usr/lib/libcryptsetup.so.12
/usr/lib/libcrypt.so.2 /usr/lib/libcrypto.so.1.1 /usr/lib/libcryptopp.so.8.6.0 /usr/lib/libcryptsetup.so.12.7.0
/usr/lib/libcrypt.so.2.0.0 /usr/lib/libcryptopp.so /usr/lib/libcryptsetup.so
[yann@archyan ~]$ ls -la /usr/lib/libcry*
lrwxrwxrwx 1 root root 17 2 févr. 08:12 /usr/lib/libcrypt.so -> libcrypt.so.2.0.0
lrwxrwxrwx 1 root root 17 2 févr. 08:12 /usr/lib/libcrypt.so.2 -> libcrypt.so.2.0.0
-rwxr-xr-x 1 root root 165824 2 févr. 08:12 /usr/lib/libcrypt.so.2.0.0
lrwxrwxrwx 1 root root 16 18 déc. 11:31 /usr/lib/libcrypto.so -> libcrypto.so.1.1
-rwxr-xr-x 1 root root 2999144 18 déc. 11:31 /usr/lib/libcrypto.so.1.1
lrwxrwxrwx 1 root root 20 10 janv. 16:55 /usr/lib/libcryptopp.so -> libcryptopp.so.8.6.0
lrwxrwxrwx 1 root root 20 10 janv. 16:55 /usr/lib/libcryptopp.so.8 -> libcryptopp.so.8.6.0
-rwxr-xr-x 1 root root 5066744 10 janv. 16:55 /usr/lib/libcryptopp.so.8.6.0
lrwxrwxrwx 1 root root 23 3 févr. 12:16 /usr/lib/libcryptsetup.so -> libcryptsetup.so.12.7.0
lrwxrwxrwx 1 root root 23 3 févr. 12:16 /usr/lib/libcryptsetup.so.12 -> libcryptsetup.so.12.7.0
-rwxr-xr-x 1 root root 484192 3 févr. 12:16 /usr/lib/libcryptsetup.so.12.7.0
Création lien sur existant
sudo ln -s /usr/lib/libcrypt.so /usr/lib/libcrypt.so.1
Réseau netctl -> NetworkManager
Basculer de netctl vers NetworkManager
How to create and configure network bridge using nmcli (static & dhcp)
How to add network bridge with nmcli (NetworkManager) on Linux
Netctl
Configuration netctl /etc/netctl/bridge-yann
Description="Static Bridge connection"
Interface=br0
Connection=bridge
BindsToInterfaces=(enp0s31f6)
IP=static
Address=('192.168.0.42/24')
Gateway='192.168.0.254'
DNS=('192.168.0.254')
## Ignore (R)STP and immediately activate the bridge
SkipForwardingDelay=yes
Les réseaux actifs
netctl list
wlan-yann
lan-enp3s0f1
lan-yann
bridge-dhcp
* bridge-yann
lan-enp3s0f0
Désactivation
netctl disable bridge-yann
netctl stop bridge-yann
NetworkManager(nmcli) - créer un pont
Installer l’applet
yay -S network-manager-applet
Activation NetworkManager
systemctl enable NetworkManager
systemctl start NetworkManager
Informations
nmcli con show
nmcli con show --active
NAME UUID TYPE DEVICE
Connexion filaire 1 9e0f38b9-6434-3fbd-ba7f-39654812362a ethernet enp0s31f6
Créer un pont avec STP désactivé (pour éviter que le pont soit annoncé sur le réseau)
nmcli con add ifname br0 type bridge con-name br0 stp no
Faire de l’interface enp0s31f6 un interface du pont :
nmcli con add type bridge-slave ifname enp0s31f6 master br0
Définir la connexion existante comme étant hors service (vous pouvez l’obtenir avec nmcli connection show –active) :
nmcli connection show
NAME UUID TYPE DEVICE
br0 371da233-615f-4cb6-9c07-6fd4ea23a133 bridge br0
Connexion filaire 1 9e0f38b9-6434-3fbd-ba7f-39654812362a ethernet enp0s31f6
bridge-slave-enp0s31f6 a0b2dcb5-4a75-4154-b844-653392cd23f6 ethernet --
Pour activer l’interface bridge, désactiver “Connexion filaire 1” et activer “br0”
nmcli con down "Connexion filaire 1"
Configurer le nouveau pont comme up
nmcli con up br0
Il existe diverses options configurables avec l’interface de pont réseau, que vous pouvez modifier à l’aide de nmcli. Par exemple, le protocole Spanning tree (STP) est activé par défaut. Les valeurs utilisées sont issues de la norme IEEE 802.1D-1998. Pour désactiver le STP pour ce pont, émettez une commande comme suit en tant que racine :
nmcli con modify br0 bridge.stp no
nmcli -f bridge con show br0
bridge.mac-address: --
bridge.stp: non
bridge.priority: 32768
bridge.forward-delay: 15
bridge.hello-time: 2
bridge.max-age: 20
bridge.ageing-time: 300
bridge.group-forward-mask: 0
bridge.multicast-snooping: oui
bridge.vlan-filtering: non
bridge.vlan-default-pvid: 1
bridge.vlans: --
Ajout adresse ip statique
nmcli con modify br0 ipv4.method manual ipv4.address "192.168.0.42/24" ipv4.gateway "192.168.0.254"
Appliquer les changements
nmcli connection up br0
Vérifier la configuration du pont réseau
si l’adresse IP br0 a été attribuée.
ip addr show dev br0
8: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 9a:87:46:a3:88:b9 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.42/24 brd 192.168.0.255 scope global dynamic noprefixroute br0
valid_lft 42062sec preferred_lft 42062sec
inet6 2a01:e0a:2de:2c70:5acb:69d6:8e37:5775/64 scope global dynamic noprefixroute
valid_lft 85888sec preferred_lft 85888sec
inet6 fe80::be39:416e:4ed7:d565/64 scope link noprefixroute
valid_lft forever preferred_lft forever
Ensuite, essayez d’envoyer un ping à la passerelle de l’interface du pont et assurez-vous qu’elle est accessible.
ping -c3 192.168.0.254
PING 192.168.0.254 (192.168.0.254) 56(84) octets de données.
64 octets de 192.168.0.254 : icmp_seq=1 ttl=64 temps=0.368 ms
64 octets de 192.168.0.254 : icmp_seq=2 ttl=64 temps=0.324 ms
64 octets de 192.168.0.254 : icmp_seq=3 ttl=64 temps=0.293 ms
--- statistiques ping 192.168.0.254 ---
3 paquets transmis, 3 reçus, 0% packet loss, time 2037ms
rtt min/avg/max/mdev = 0.293/0.328/0.368/0.030 ms
Étant donné que nmcli apporte des modifications persistantes à la configuration du réseau, vous pouvez également vérifier les fichiers de configuration du réseau créés par nmcli.
/etc/NetworkManager/system-connections/br0.nmconnection
[connection]
id=br0
uuid=371da233-615f-4cb6-9c07-6fd4ea23a133
type=bridge
interface-name=br0
permissions=
timestamp=1635945825
[bridge]
stp=false
[ipv4]
address1=192.168.0.42/24,192.168.0.254
dns-search=
method=manual
[ipv6]
addr-gen-mode=stable-privacy
dns-search=
method=auto
[proxy]
De même, vérifiez le fichier de configuration de l’interface esclave du pont réseau.
/etc/NetworkManager/system-connections/bridge-slave-enp0s31f6.nmconnection
[connection]
id=bridge-slave-enp0s31f6
uuid=a0b2dcb5-4a75-4154-b844-653392cd23f6
type=ethernet
interface-name=enp0s31f6
master=br0
permissions=
slave-type=bridge
[ethernet]
mac-address-blacklist=
[bridge-port]
Vérifiez votre passerelle par défaut
ip route
default via 192.168.0.254 dev br0 proto dhcp metric 425
192.168.0.0/24 dev br0 proto kernel scope link src 192.168.0.42 metric 425
Il faut les connexions “pont” en connection auto
En cas d’erreur réseau
NetworkManager ajout connexion routeur 4G
Dans le cas d’une utilisation d’un routeur 4G connecté sur l’interface réseau enp3s0f0
Le routeur est DHCP sur le réseau 192.168.8.0/24
DNS sur 192.168.8.1
Résumé réseau
On est connecté sur le réseau Box 192.168.0.0/24 et le réseau routeur 4G 192.168.8.0/24
Wireguard mullvad est actif
SSHD configuration
Pour un accès sur l’ordinateur PC1 depuis un autre poste qui est sur le même réseau 192.168.0.0/24
Modifier la ligne (si existante) PermitRootLogin yes
par PermitRootLogin no
puis les lignes suivantes :
pour un accès avec mot de passe
PasswordAuthentication yes # les mots de passe en clair sont autorisés
AllowUsers *@192.168.0.* # accès uniquement sur le réseau local
pour un accès avec clé
PasswordAuthentication no # les mots de passe en clair ne sont pas autorisés
AllowUsers *@192.168.0.* # accès uniquement sur le réseau local
Redémarrer ssh
sudo systemctl restart sshd
Neofetch
pour visualiser les informations du système
yay -S neofetch
Pour avoir les informations saisir neofetch
Les liens dans home
Les liens après montage
[yann@archyan ~]$ ls -l |grep ^l
lrwxrwxrwx 1 yann users 12 20 oct. 2021 Partage -> /mnt/partage
lrwxrwxrwx 1 root root 8 6 mars 2021 iso -> /srv/iso
lrwxrwxrwx 1 root root 11 2 janv. 07:41 lenovo -> /mnt/lenovo
lrwxrwxrwx 1 root root 10 6 mars 2021 media -> /srv/media
lrwxrwxrwx 1 root root 12 6 mai 07:39 sav -> /sauvegardes
lrwxrwxrwx 1 root root 8 6 mai 07:52 virtuel -> /virtuel
Chiffrer dossier Private
Démarrer-Eteindre une machine sur le réseau
On veut démarrer ou éteindre une machine distante sur le réseau via ssh et “wake on lan”
Wake on Lan
How To Wake Up Computers Using Linux Command [ Wake-on-LAN ( WOL ) ] By Sending Magic Packets
wake-on-LAN (WOL) est une norme de réseau Ethernet qui permet d’allumer un serveur par un message réseau. Vous devez envoyer des “paquets magiques” aux adaptateurs Ethernet et aux cartes mères compatibles avec le WOL pour allumer les systèmes concernés. Assurez-vous de connecter la carte réseau (eth0 ou eth1) à la carte mère et d’activer la fonction WOL du BIOS. Voici un guide rapide pour activer la fonction WOL sous RHEL / Fedora / CentOS / Debian / Ubuntu Linux.
Dans le bios du lenovo M700, le paramètre “wake on lan” est sur automatique.
Lorsque le Lenovo M700 eest éteint, on peut le rallumer avec un outil logiciel et l’adresse mac de la machine
Il faut utiliser un logiciel client pour envoyer les “paquets magiques” WoL (Wake-on-LAN) au système cible. Vous trouverez divers outils pour tous les systèmes d’exploitation modernes, notamment MS-Windows 8/10, Apple macOS & OS X, toutes les distros Linux modernes, FreeBSD, OpenBSD, NetBSD et de nombreux smartphones.Il existe également un script Perl pour réveiller les ordinateurs. Nous pouvons l’installer comme suit
sudo apt install wakeonlan # Debian/Ubuntu
yay -S wakeonlan # archlinux
Vous pouvez obtenir l’adresse MAC en combinant la commande ping et la commande arp.
ping -c 4 rnmkcy.eu && arp -n
PING rnmkcy (192.168.0.145) 56(84) octets de données.
64 octets de rnmkcy (192.168.0.145) : icmp_seq=1 ttl=64 temps=0.587 ms
64 octets de rnmkcy (192.168.0.145) : icmp_seq=2 ttl=64 temps=0.520 ms
64 octets de rnmkcy (192.168.0.145) : icmp_seq=3 ttl=64 temps=0.562 ms
64 octets de rnmkcy (192.168.0.145) : icmp_seq=4 ttl=64 temps=0.559 ms
--- statistiques ping rnmkcy ---
4 paquets transmis, 4 reçus, 0% packet loss, time 3031ms
rtt min/avg/max/mdev = 0.520/0.557/0.587/0.023 ms
Address HWtype HWaddress Flags Mask Iface
192.168.0.145 ether 00:23:24:c9:06:86 C br0
Utilisation d’une adresse de diffusion de sous-réseau :
wakeonlan -i 192.168.0.255 00:23:24:c9:06:86
Sending magic packet to 192.168.0.255:9 with payload 00:23:24:c9:06:86
Hardware addresses: <total=1, valid=1, invalid=0>
Magic packets: <sent=1>
Patienter 2 à 3 minutes avant d’accéder à la machine…
PC1 - Script au démarrage
On veut démarrer la machine distante Lenovo 192.168.0.145 via le réseau
Option A - Exécution commande au démarrage quand réseau accessible
Exécuter la commande au démarrage avec systemd après que le réseau soit devenu accessible.
sudo nano /etc/systemd/system/run-at-startup.service
[Unit]
Description=Run script at startup after network becomes reachable
After=network.target
[Service]
Type=simple
RemainAfterExit=yes
ExecStart=/usr/bin/wakeonlan -i 192.168.0.255 00:23:24:c9:06:86
TimeoutStartSec=0
[Install]
WantedBy=default.target
Rafraîchir les fichiers de configuration de systemd et activer le service
sudo systemctl daemon-reload
sudo systemctl enable run-at-startup.service
Vérifier la bonne exécution
journalctl -u run-at-startup.service
févr. 23 19:57:12 archyan systemd[1]: Started Run script at startup after network becomes reachable.
févr. 23 19:57:12 archyan startup_script.sh[462]: Sending magic packet to 192.168.0.255:9 with payload 00:23:24:c9:06:86
févr. 23 19:57:12 archyan startup_script.sh[462]: Hardware addresses: <total=1, valid=1, invalid=0>
févr. 23 19:57:12 archyan startup_script.sh[462]: Magic packets: <sent=1>
Option B - Exécution commande au démarrage après un temps défini
Fichier service systemd pour exécuter un script N minutes après le démarrage
Nous devons créer un fichier de service systemd unit et un fichier timer systemd unit correspondant pour exécuter le script N minutes après le démarrage.
Nous pouvons utiliser OnBootSec=
ou OnStartupSec=
pour exécuter le script avec un délai après le démarrage sous Linux.
OnBootSec=
Définit un délai relatif au moment où la machine a été démarrée. Dans les conteneurs, pour l’instance du gestionnaire de système, cela correspond à OnStartupSec=, ce qui rend les deux équivalents.OnStartupSec=
Définit une minuterie relative au moment où le gestionnaire de services a été démarré pour la première fois. Pour les unités de temporisation du système, cela est très similaire à OnBootSec= car le gestionnaire de services du système est généralement démarré très tôt au démarrage. Il est principalement utile lorsqu’il est configuré dans des unités fonctionnant dans le gestionnaire de services par utilisateur, car le gestionnaire de services utilisateur est généralement démarré à la première connexion seulement, et pas déjà au démarrage.
/etc/systemd/system/run-script-with-delay.service
[Unit]
Description=Run script at startup
[Service]
Type=oneshot
ExecStart=/usr/bin/wakeonlan -i 192.168.0.255 00:23:24:c9:06:86
TimeoutStartSec=0
fichier de temporisation de l’unité systemd pour exécuter un script N minutes après le démarrage
timer
est un fichier de configuration d’unité dont le nom se termine par “.timer” encode des informations sur un timer contrôlé et supervisé par systemd, pour une activation basée sur un timer.
/etc/systemd/system/run-script-with-delay.timer
[Unit]
Description="Run script after 2 minutes of boot"
[Timer]
OnBootSec=2min
[Install]
WantedBy=default.target
L’unité à activer lorsque cette minuterie s’écoule est fournie en utilisant Unit=
sous [Timer]
. Ici, puisque notre service systemd et notre fichier de temporisation portent le même nom, c’est-à-dire run-script-with-delay
, nous n’avons pas défini d’Unit=
dans le fichier d’unité de la temporisation. Si les noms de votre service unitaire et de votre fichier timer sont différents, fournissez le nom du fichier de service mappé avec Unit=
dans le fichier .timer sous [Timer]
Ici pour OnBootSec ou OnStartupSec
- Les arguments des directives sont des intervalles de temps configurés en secondes. Exemple :
OnBootSec=50
signifie 50s après le démarrage. - L’argument peut également inclure des unités de temps. Exemple :
OnBootSec=5h 30min
signifie 5 heures et 30 minutes après le démarrage. - Pour plus de détails sur la syntaxe des intervalles de temps pris en charge par
OnBootSec=
ouOnStartupSec=
, consultez la page de manuel de systemd.timer.
Rafraîchir les fichiers de configuration de systemd
sudo systemctl daemon-reload
Désactivez le fichier de service systemd unit car il ne devrait pas démarrer automatiquement, ce qui est l’idée derrière cet article. Nous voulons que ce service exécute un script après N minutes de démarrage en fonction de la valeur de la minuterie.
sudo systemctl disable run-script-with-delay.service
Activez ensuite le fichier de temporisation de l’unité systemd afin qu’il soit exécuté après le démarrage et déclenche ensuite le fichier de service de l’unité systemd mappé en fonction de la valeur de la temporisation.
sudo systemctl enable run-script-with-delay.timer
Vérifier la configuration du fichier d’unité systemd
Après le redémarrage, lorsque nous vérifions l’état de run-script-with-delay.timer
, observez ici la section en surbrillance où il montre le prochain déclenchement qui est prévu après 2 minutes que nous avons configuré avec OnBootSec
dans le fichier unité timer.
Une fois que l’heure de déclenchement est atteinte, le service va exécuter sa tâche définie qui, ici, est d’exécuter la commande après 5 minutes de démarrage. Comme vous le voyez maintenant, le déclencheur affiche “non applicable” pour l’unité de temporisation.
PC1 - Script à l’arrêt
On veut arrêter la machine distante Lenovo 192.168.0.145 via ssh lors de l’extinction de PC1
Option A - Exécuter une commande systemd juste avant l’arrêt
sudo nano /etc/systemd/system/stop_script.service
[Unit]
Description=Run my custom task at shutdown
DefaultDependencies=no
Before=shutdown.target
[Service]
Type=oneshot
ExecStart=/usr/bin/ssh leno@192.168.0.145 -p 55145 -i /usr/local/bin/lenovo-ed25519 'sudo systemctl poweroff'
TimeoutStartSec=0
[Install]
WantedBy=shutdown.target
Rafraîchir les fichiers de configuration de systemd et activer le service
sudo systemctl daemon-reload
sudo systemctl enable stop_script.service
Vérifier la bonne exécution
journalctl -u stop_script.service
févr. 23 19:49:09 archyan systemd[1]: Starting Run my custom task at shutdown...
févr. 23 19:49:09 archyan systemd[1]: stop_script.service: Deactivated successfully.
févr. 23 19:49:09 archyan systemd[1]: Finished Run my custom task at shutdown.
Option B - Comment lancer un script systemd à l’arrêt seulement (pas au redémarrage)
1 - Créer un script type
Pour exécuter un script à l’arrêt uniquement avec systemd, nous avons besoin d’un script. Voici un script fictif qui nous aidera à reconnaître si notre script est appelé à reboot.target
ou shutdown.target
. Avec systemctl list-jobs
nous connaissons la cible actuellement active et en cours d’exécution. Le script ne devrait donc fonctionner que sur shutdown.target
ou reboot.target
.
/home/admuser/script.sh
#!/bin/bash
# Run script with systemd at shutdown only
case $1 in
start)
systemctl list-jobs | egrep -q 'reboot.target.*start' && echo "starting reboot" >> /home/admuser/file
systemctl list-jobs | egrep -q 'shutdown.target.*start' && echo "starting shutdown" >> /home/admuser/file
;;
stop)
systemctl list-jobs | egrep -q 'reboot.target.*start' || echo "stopping" >> /home/admuser/file
;;
esac
J’ai également écrit une fonction stop qui ne sera de toute façon pas appelée, mais juste pour prouver ce fait, cette fonction est nécessaire. Dans ce cas, seul ExecStart
sera appelé pour exécuter le script avec systemd à l’arrêt seulement et non au redémarrage.
2 - Créer un fichier d’unité pour exécuter le script avec systemd à l’arrêt seulement.
Nous allons créer notre fichier unitaire systemd sous /etc/systemd/system
avec le nom myscript.service
.
Voici notre fichier d’unité systemd que nous utiliserons pour exécuter un script avec systemd à l’arrêt uniquement (pas au redémarrage).
/etc/systemd/system/myscript.service
[Unit]
Description=Run my custom task at shutdown only
DefaultDependencies=no
Conflicts=reboot.target
Before=poweroff.target halt.target shutdown.target
Requires=poweroff.target
[Service]
Type=oneshot
ExecStart=/home/admuser/script.sh start
RemainAfterExit=yes
[Install]
WantedBy=shutdown.target
Voici la page de manuel de systemd.unit et systemd.service.
- Conflicts Si une unité a un paramètre
Conflits=
sur une autre unité, le démarrage de la première arrêtera la seconde et vice versa. - Before= Ils configurent les dépendances d’ordre entre les unités.
- Requires Configure les dépendances d’exigence sur d’autres unités. Si cette unité est activée, les unités listées ici seront également activées.
- Type Configure le type de démarrage du processus pour cette unité de service. Un des types suivants : simple, forking, oneshot, dbus, notify ou idle.
- ExecStart Commandes avec leurs arguments qui sont exécutées lorsque ce service est démarré.
- RemainAfterExit Prend une valeur booléenne qui spécifie si le service doit être considéré comme actif même lorsque tous ses processus ont quitté. La valeur par défaut est no.
Rafraîchir les fichiers de configuration de systemd
systemctl daemon-reload
Activer le script pour qu’il démarre automatiquement au prochain démarrage
systemctl enable myscript
Created symlink /etc/systemd/system/shutdown.target.wants/myscript.service → /etc/systemd/system/myscript.service.
3 - Vérifier la configuration du fichier unité systemd
Vérifions notre fichier unitaire systemd. Nous allons effectuer un arrêt de mon Linux pour vérifier s’il exécute le script avec systemd à l’arrêt seulement et non au redémarrage.
systemctl poweroff
Après le réveil du nœud, nous vérifions le contenu de notre fichier /home/admuser/file où nous avons écrit le contenu de notre script factice.
login as: root
root@127.0.0.1's password:
Last login: Tue Jan 14 22:41:22 2020 from 10.0.2.2
[root@centos-8 ~]# cat /home/admuser/file
starting shutdown
Comme prévu, le script a été appelé à l’arrêt.
Maintenant, nous allons faire un reboot et vérifier la même chose.
Avant de redémarrer, je vais nettoyer le contenu de /home/admuser/file.
Comme prévu, le contenu de /home/admuser/file est vide et le script n’a pas été appelé au redémarrage.
[root@centos-8 ~]# cat /home/admuser/file
[root@centos-8 ~]#
Les différents cas
/usr/bin/systemctl list-jobs | egrep -q 'shutdown.target.*start' && echo "shutting down" >> /home/admuser/test.txt || echo "not shutting down" >> /home/admuser/test.txt
/usr/bin/systemctl list-jobs | egrep -q 'reboot.target.*start' && echo "-> rebooting" >> /home/admuser/test.txt || echo "-> not rebooting" >> /home/admuser/test.txt
/usr/bin/systemctl list-jobs | egrep -q 'halt.target.*start' && echo "-> halting" >> /home/admuser/test.txt || echo "-> not halting" >> /home/admuser/test.txt
/usr/bin/systemctl list-jobs | egrep -q 'poweroff.target.*start' && echo "-> powering down" >> /home/admuser/test.txt || echo "-> not powering down" >> /home/admuser/test.txt
Mise en oeuvre sur PC1
sudo nano /etc/systemd/system/stop_script.service
[Unit]
Description=Run my custom task at shutdown only
DefaultDependencies=no
Conflicts=reboot.target
Before=poweroff.target halt.target shutdown.target
Requires=poweroff.target
[Service]
Type=oneshot
ExecStart=/usr/bin/ssh leno@192.168.0.145 -p 55145 -i /usr/local/bin/lenovo-ed25519 'sudo systemctl poweroff'
RemainAfterExit=yes
[Install]
WantedBy=shutdown.target
Rafraîchir les fichiers de configuration de systemd et activer le service
sudo systemctl daemon-reload
sudo systemctl enable stop_script.service
Annexe
Flatpak (FACULTATIF)
Par Matthias Clasen — https://github.com/flatpak/flatpak/blob/master/flatpak.png, CC BY-SA 4.0, Lien
Flatpak (anciennement xdg-app) est un système de virtualisation d’application pour les distributions GNU/Linux de bureau.
Flatpak (archlinux)
Installation
sudo pacman -S flatpak
Ajout du dépôt officiel, Flathub repository
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
Liste des dépôts
flatpak remotes
Name Options
flathub system
Pour effacer un dépôt : flatpak remote-delete name
Recherche
flatpak update # mise à jour dépôt
flatpak search signal
Name Description Application ID Version Branch Remotes
Signal Desktop Private messenger org.signal.Signal 1.38.2 stable flathub
Installer un runtime ou une application : flatpak install remote name
où remote est le nom du dépôt distant, et name est le nom de l’application ou du runtime à installer.
Installer signal
flatpak install flathub signal
Le fichier ~/.local/share/applications/signal-desktop.desktop
[Desktop Entry]
Type=Application
Name=Signal
Comment=Signal Private Messenger for Linux
Icon=signal-desktop
Exec=/usr/bin/flatpak run signal
Terminal=false
Categories=Network;InstantMessaging;
StartupWMClass=Signal
pamac gestionnaire de paquets (FACULTATIF)
Un frontal Gtk3, un gestionnaire de paquets basé sur libalpm avec un support AUR et Appstream.
yay -S pamac-aur