Ceci est une ancienne révision du document !
apt update && apt install python3 python3-pip vim apt-transport-https ca-certificates curl wget software-properties-common telnet locate tree nmap bind9-dnsutils tcpdump openssh-client ipcalc remmina ncal -y
Decouverte new srv: last, env, alias, ps -aux, top, find / -iname "test.txt", grep word /file.txt,ss -tunlp, systemctl list-timers, systemctl --type=service
Pour macro => script audit.txt puis exit pour finir Pour record sortie cmd => ls -al | tee contenu.txt
Commande LDAPSEARCH (option ldap ou ldaps):
#ldapsearch -LLL -H ldaps://IP_AD -x -W -D "NOM_USER_BINDDN@DOMAIN_AD.LOCAL" -b "DistinguishedName_OU_USER_CIBLE" "(sAMAccountName=samaccountname_user_cible)"
Résultat si ok:
Enter LDAP Password: => mdp_USERBINDDN suite option -W dn: CN=????? objectClass: top objectClass: person objectClass: organizationalPerson objectClass: user . . .
#cat /etc/cron.d/ciril
SHELL=/bin/bash
MAILTO=""
00 00 * * 1 root /bin/dnf update -y; /sbin/shutdown -r 0
00 01 * * * root /bin/systemctl stop cirilworkflow
00 01 * * * oracle /u01/app/oracle/admin/CIRI/scripts/export.sh
00 07 * * * oracle /u01/app/oracle/admin/CIRI/scripts/purge_arch.sh
00 05 * * * oracle /u01/app/oracle/admin/CIRI/scripts/util/optimize.sh
00 06 * * * oracle /u01/app/oracle/admin/CIRI/scripts/menage_oracle.sh
30 05 * * * ciril find /ciril/prod/*/expl/{*,.}/{tmp,erreur}/* -type f -mtime +1 -exec rm -f {} \; ; find /ciril/interface/m14/civilgf/pes -type f -mtime +30 -exec rm -f {} \; ; find /ciril/interface/m14/civilgf/cpp/archive -name "*.xml" -type f -mtime +30 -exec rm -f {} \;
30 06 * * * root /bin/systemctl stop php-fpm ; /bin/systemctl stop httpd-ciril-scgi ; /bin/systemctl stop httpd-ciril-webservices ; /bin/systemctl stop ciriljava ; /bin/systemctl stop cirilstartup ; /bin/systemctl stop cirilworkflow ; /bin/systemctl stop cityweb ; /bin/systemctl stop cityremweb ; sleep 30; find /ciril/log/httpd-ciril* /ciril/log/php-fpm -type f -mtime +10 -exec rm -f {} \; ; find /ciril/log/httpd-ciril*/*log /ciril/log/php-fpm/*log -type f | xargs -I \% mv \% \%.`date +\%F`.`date +\%T` ; find /ciril/log/httpd-ciril* /ciril/log/php-fpm -type f -name "*:[0-9][0-9]" -exec gzip -9f {} \; ; /bin/systemctl start ciriljava ; /bin/systemctl start httpd-ciril-scgi ; /bin/systemctl start httpd-ciril-webservices ; /bin/systemctl start php-fpm ; /bin/systemctl start cirilstartup ; /bin/systemctl start cirilworkflowi ; /bin/systemctl start cityweb ; /bin/systemctl start cityremweb
00 08 * * * ciril /usr/bin/rsync -ar --delete /ciril/prod/civilrh/expl/serveur/carriere/arretes.rtf /ciril/prod/client/civilrh/user/arretes_ciril.rtf
15 04 * * * root /ciril/prod2test/prod2test.sh
30 08 * * * ciril /ciril/cityweb/insee/launch.sh
00 10 * * * ciril /ciril/cityweb/AEC/city-exchange-4.6.PATCH/launch.sh
00 15 * * * ciril /ciril/cityweb/AEC/city-exchange-4.6.PATCH/launch.sh
00 20 * * * ciril /ciril/cityweb/AEC/city-exchange-4.6.PATCH/launch.sh
*/30 * * * ciril /ciril/cityweb/CERTDC/city-exchange-4.6.PATCH/launch.sh
exemple:
Monday, Tuesday, Wednesday, Thursday, Friday, Saturday et Sunday 02 4 * * * at 04:02:00 every day 22 4 * * 0 root at 04:22:00 on Sunday every week 42 4 1 * * root at 04:42:00 on the first day of every month
The key components of a Cron job are: * Minute (0 – 59): Specifies when the job will run within the hour. * Hour (0 – 23): Specifies the hour when the job will run. * Day of the month (1 – 31): Specifies the day of the month when the job will run. * Month (1 – 12): Specifies the month when the job will run. * Day of the week (0 – 7): Specifies the day of the week when the job will run (both 0 and 7 represent Sunday).
Lister les services:
#systemctl list-unit-files --type=service ou #systemctl list-units
Process:
#ps -ef | grep servedi #ps -ef | grep moteur #ps -ef | grep httpd #ps -ef | grep tomcat #ps -e -o comm,etime,user | grep httpd
Services:
#systemctl start/status/restart cirilstartup #systemctl start/status/restart cirilworkflow #systemctl start/status/restart cityweb #systemctl start/status/restart httpd
Ports/Connexions:
Filtre sur le port 80:
#sudo netstat -petula | grep 80 ou ##sudo netstat -tunlp | grep 80
Filtre sur apache2
#sudo netstat -petula | grep apache2
Corriger erreur piix4_smbus - upgrade bios or use force_addr=0
Etape 1 - Taper:
#lsmod | grep i2c_piix4
si la commande ne retourne rien, passer à l'étape 2 sinon taper:
#modprobe -r i2c_piix4
Etape 2 - Blacklister le module en tapant:
#echo "blacklist i2c_piix4" | sudo tee -a /etc/modprobe.d/blacklist.conf
Etape 3 - Mettre à jour l’archive initramfs en tapant:
#update-initramfs -u
Faire un test avec:
#swapon -a
Puis:
#blkid ou lsblk -o +UUID ou fdisk -l => repérer uuid de la partition swap
ex.: /dev/sda1: UUID="1BD6-43FF" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="ee1bfe49-73ca-46ec-ad8b-c0a589cc2513"
/dev/sda2: UUID="05f737ce-791d-4fa7-8f45-5028d49e1e70" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="16e2c7ff-872c-8148-afb2-6357ba4a78e7"
/dev/sda3: UUID="7a816ed8-1696-4d67-98d4-0fa4d9876503" TYPE="swap" PARTUUID="4f462220-35b4-2849-a5c7-2e0e739bd728"
Le renseigner dans:
#vim /etc/initramfs-tools/conf.d/resume ex.: RESUME=UUID=7a816ed8-1696-4d67-98d4-0fa4d9876503
Puis dans:
#vim /etc/fstab # swap was on /dev/sda3 during installation ex.: UUID=7a816ed8-1696-4d67-98d4-0fa4d9876503 none swap sw 0 0
Puis:
#mkswap /dev/sda3 pour tagger la partition en swap #update-initramfs -u
Voir si toujours erreur avec:
#swapon -a
Modifier le fichier suivant:
#vim /etc/default/grub
Ajouter la ligne:
#GRUB_DISABLE_OS_PROBER=true
Puis:
#update-grub #reboot
Pour voir les ports en écoute, on peut utiliser la commandes :
#ss ou netstat -tulnp
#grep -r buster /etc/apt/sources.list* #sed -i 's/buster\/updates/bullseye-security/g;s/buster/bullseye/g' /etc/apt/sources.list
CONNAITRE LE CODE NAME
#(. /etc/os-release && echo "$VERSION_CODENAME")
taper:
#dpkg-reconfigure tzdata
#dpkg --force-all --purge nom_du_paquet
ou par exemple avec nftables:
#apt-get remove --auto-remove nftables #apt-get purge nftables
Sous Debian:
#dpkg --list #apt list --installed #apt list --installed search ruby
Voir la version installée/dispo:
#apt-cache policy apache2-utils
Sous Centos:
#yum list installed
Désinstaller plusieurs paquets en même temps:
#for pkg in docker.io docker-doc docker-compose podman-docker; do sudo apt-get remove $pkg; done
Taper la commande suivante:
#dpkg --configure -a #apt install -f
Check logs:
#tail /var/log/apt/history.log #tail /var/log/apt/term.log #tail /var/log/dpkg.log
Créer un nouveau répertoire avec mkdir pour le point de montage du deuxième DD. Par exemple, ici il sera créé à la racine du système de fichier représentée par / et portera le nom disk2 :
#mkdir /disk2
Repérer la dénomination du deuxième DD avec :
#fdisk –l ici on supposera qu’il s’appelle sdb
Pour créer une partition sur ce disk :
#cfdisk /dev/sdb
Créer la nouvelle partition et confirmer bien en écrivant yes après la commande write.
Vérifier la numérotation de la nouvelle partition avec un fdsik -l, ensuite formater la nouvelle partition au format ext4, ici on supposera qu’elle est numérotée sdb1 :
#Mkfs.ext4 /dev/sdb1
Ensuite éditer le fichier de point de montage automatique au démarrage du pc “fstab”:
#nano /etc/fstab
puis ajouter une nouvelle ligne à la suite des autres avec la syntaxe suivante :
/dev/sdb1 (tabulation) /disk2 (tabulation) ext4 (tabulation) defaults (tabulation) 0 (tabulation) 0
Puis faire ctrl+O, entrée, ctrl+X pour enregistrer.
Redémmarer avec un init 6, et vérifier le bon montage du nouveau DD avec la commande :
#df –h il doit apparaitre dans la colonne ainsi que son espace disponible et utilisé.
Pour y mettre des fichiers à l’aide de WINSCP à partir d’un autre pc, installer le paquet shh :
#apt install openshh-server
Puis éditer le fichier conf avec :
#nano /etc/ssh/sshd_config
Rajouter login yes après #permit root et décommenter la ligne, ctrl+O, entrée, ctrl+X.
Redémmarer le service ssh avec :
#service ssh restart >>> sous Centos taper : #service sshd restart
Créer un nouveau mot de passe pour le compte root avec :
#passwd root
Maintenant on peut se connecter à distance avec WINSCP ou PUTTY.
Pour restreindre accès ssh user ou group:
#AllowUsers user1 user2 #AllowGroups root
suivi d'un:
#service ssh restart
#dd if=<source> of=<cible> bs=<taille des blocs> skip= seek= conv=<conversion> #dd if=/dev/sda skip=1 of=/dev/sdb seek=1 bs=4k conv=noerror status=progress
when the copy is finished:
#resize2fs /dev/hdb
Un outil essentiel est FDISK, qui est installé nativement sur les distributions Linux telles que Ubuntu / Debian et CentOS.
Étape 1 – Ouvrir le terminal Le terminal correspond à l’invite de commande sur WIndows. Sur les serveurs on y accède généralement grâce au protocole SSH et l’incontournable outil Putty
Etape 2 – On liste les disques et les partitions avec la commande lsblk
lsblk -f
J’ai donc 1 disque dur (sda) et 1 partition sda1. La partition est au format ext4. On ouvre le disque dur avec la commande
fdisk /dev/sdx => nom de la partition à vérifier
La commande sudo execute la commande en tant qu’Administrateur Voici la totalité des commandes disponibles avec FDISK.
Générique
| d | supprimer la partition |
| F | afficher l’espace libre non partitionné |
| l | afficher les types de partitions connues |
| n | ajouter une nouvelle partition |
| p | afficher la table de partitions |
| t | modifier le type d'une partition |
| v | vérifier la table de partitions |
| i | Afficher des renseignements sur la partition |
Autre
| m | afficher ce menu |
| x | fonctions avancées (réservées aux spécialistes) |
Script
| I | chargement de l’agencement à partir du fichier de script sfdisk |
| O | sauvegarde de l’agencement vers le fichier de script sfdisk |
Sauvegarder et quitter
| w | écrire la table sur le disque et quitter |
| q | quitter sans enregistrer les modifications |
Créer une nouvelle étiquette
| g | créer une nouvelle table vide de partitions GPT |
| G | créer une nouvelle table vide de partitions SGI (IRIX) |
| o | créer une nouvelle table vide de partitions DOS |
| s | créer une nouvelle table vide de partitions Sun |
Etape 4 – Connaître et identifier la partition à agrandir
Maintenant nous devons identifier la partition qui sera modifiée. Saisir la touche “p” pour afficher la liste des parititions. Ici on obtient une seule partition la partition SDA1
Étape 5 – On supprime la partition
Je vous rassure, les données ne sont pas supprimées. La partition est plutôt “démontée”. Pour démonter la partition vous devez saisir “D” Ensuite vous devez choisir le numéro de la partition dans mon cas il y en a qu’une seule donc je fais “1” La partition est supprimée, nous pouvons donc l’agrandir !
Étape 6 – Création de la partition
Saisir “N” afin de créer une nouvelle partition avec le nouvel espace disque. Nous allons devoir choisir le numéro de la partition, dans notre cas c’est la 1. L’outil FDISK demande le premier secteur du disque (laissez par défaut) puis le dernier secteur. Pour le dernier secteur il faut indiquer la taille souhaitée. Exemple ici j’ai fais +60G pour obtenir une partition de 60GO.
On peut voir les anciens secteurs avec cfdisk avant de commencer !!! Surtout on ne supprime pas la signature !!!
Commande (m pour l'aide) : n
Numéro de partition (4,8-128, 4 par défaut) : *Entrée* Premier secteur (102305968-1953525134, 102307840 par défaut) : *Entrée* Dernier secteur, +secteurs ou +taille{K,M,G,T,P} (102307840-1924124671, 1924124671 par défaut) : +60G
Une nouvelle partition 4 de type « Linux filesystem » et de taille 60 GiB a été créée. La partition #4 contient une signature ext4.
Voulez-vous supprimer la signature ? [O]ui/[N]on : N => !!! surtout mettre NON !!!
Étape 7 – On enregistre la partition
Tout est paramétré, maintenant on enregistre les modifications dans la table de partition en saisissant la touche “W” Commande (m pour l'aide) : w
La table de partitions a été altérée. Synchronisation des disques.
Étape 8 – On reboot
Un redémarrage est nécessaire pour appliquer les changements.
shutdown -r now
Le serveur redémarre, on doit désormais redimensionner le système de fichiers.
Étape 9 – Redimensionner le système de fichiers
La dernière étape consiste à redimensionner le système de fichiers. La commande peut etre différente en fonction du type de volume (ext4, ntfs, ext3 ..). La commande classique est celle-ci :
resize2fs /dev/sda1
Il faut ajuster la commande en fonction de votre partition. Pour les autres types de volume vous pouvez installer xfs_growfs Par exemple sur Centos :
yum install xfsprogs.x86_64
Pour Debian / Ubuntu :
apt-get install xfsprogs
Enfin pour agrandir le système de fichiers à sa taille maximale on saisira la commande suivante :
xfs-growfs /dev/sda1
La commande la plus basique de LVM est l’affichage des différents volumes et groupes, pour cela nous disposons de :
pvs : Afficher les détails succincts des volumes physiques vgs : Afficher les détails succincts des groupes de volumes lvs : Afficher les détails succincts des volumes logiques
Pour les besoins de cet article, j'utiliserai “my-virtual-group” à la place du nom de votre groupe de volumes. Remplacez donc “my-virtual-group partout dans ce document par le nom de VOTRE groupe de volumes.
Pour voir quels groupes de volumes sont sur votre système, exécutez la commande vgs dans votre terminal.
Je vais également utiliser /dev/sdXX comme nom de périphérique. Remplacez-le par la partition que vous prévoyez d'utiliser sur votre nouveau disque. Vous pouvez le confirmer avec:
#sudo fdisk -l.
Pour trouver où se trouve le chemin d'accès à votre volume physique, exécutez lvdisplay et recherchez-le LV Path dans la liste. Nous allons utiliser ce chemin avec la commande lvextend plus tard.
Pour étendre les partitions à un nouveau lecteur
Créer une partition LVM vide sur le nouveau disque avec fdisk ou gparted.
Créez un volume physique sur le nouveau disque avec:
#pvcreate /dev/sdXX
Vous pouvez vérifier le nom de la nouvelle partition avec:
#sudo pvs qui devrait avoir une entrée vide sous VG.
Étendez votre groupe de volume au nouveau disque avec:
#vgextend my-virtual-group /dev/sdXX.
Étendez votre volume logique et redimensionnez la partition à l'intérieur avec:
#lvextend -l +100%FREE -r /dev/my-virtual-group/root
Dans la commande précédente, vous pouvez changer la valeur de +100%FREE en fonction de l'espace que vous voulez que le nouveau volume logique prenne sur le nouveau disque.
Vous pourriez dire par exemple :
#lvextend -l +50%FREE r /dev/my-virtual-group/root
Ou, si vous voulez l'étendre d'une taille spécifique (+10G l'étend de 10 gigaoctets), utilisez :
#lvextend -L +10G -r /dev/my-virtual-group/root
Vous pouvez également utiliser +500M pour 500 Mégaoctets et ainsi de suite.
À noter que si vous spécifiez des tailles, la commande passe de -l minuscule à -L majuscule après lvextend.
Si tout s'est bien passé, vous avez maintenant étendu votre espace au nouveau disque et pouvez à nouveau disposer d’espace de stockage sans modifier votre expérience avec vos programmes ou data stockées sur votre ordinateur
Pour les fichiers .tg ou .tgz utiliser la commande tar native sur ubuntu server :
#tar xvf ou zxvf “nom_du_fichier”
Pour les fichiers zip installer le paquet zip :
#apt install zip
Puis décompresser le fichier avec la commande :
#unzip “nom_du_fichier”
Pour modifier les droits d’accés d’un répertoire de façon récursive (-R) :
#chmod –R 755 /disk2/glpi ou /var/www/html/glpi
Syntaxe de chmod –R (7 : user, 5 : groupe, 5 : les autres)
7 = 4 lecture + 2 ecriture + 1 modification
Pour modifier le proprietaire et le groupe www-data :
#chown –R www-data:www-data /disk2/glpi ou /var/www/html/glpi
Utilisez la commande gzip pour compresser un fichier sous Linux
gzip filename
La commande ci-dessus compresse le fichier sans conserver l’original. Nous pouvons également utiliser la commande suivante pour conserver le fichier d’origine.
gzip < filename > filename.gz
Nous pouvons également conserver le fichier d’origine en utilisant l’option -k.
gzip -k filename
Nous pouvons utiliser l’option -d avec la commande gzip pour décompresser les fichiers compressés .gz.
gzip -d filename.gz
Comme dans la compression, nous pouvons utiliser l’option -k pour conserver le fichier compressé d’origine et le décompresser.
gzip -d -k filename.gz
Nous pouvons également décompresser le fichier .gz à l’aide de la commande gunzip. Pour décompresser à l’aide du fichier à l’aide de gunzip, utilisez la commande suivante.
gunzip filename.gz
Et pour conserver le fichier compressé.
gunzip -k filename.gz
Les fichiers avec le suffixe .tar.gz ne sont que des fichiers d’archives .tar compressés Gzip. Nous pouvons extraire ces types de fichiers à l’aide de la commande suivante.
tar -xf filename.tar.gz
L’archive sera extraite dans le répertoire de travail courant après que la commande tar aura automatiquement identifié le type de compression.
Installer les services:
#apt install apache2 mysql-server php
Installer les différents services de librairie de php par exemple pour glpi et grr :
#apt install php-mysql php-mbstring php-curl php-gd php-intl php-simplexml php-ldap php-apcu php-xmlrpc php-cas php-zip php-bz2 (>une seule ligne)
CREER UN ALIAS ET INDIQUER DIRECTORY FICHIER POUR APACHE
Par exemple pour glpi. Editer le fichier apache2.conf :
#nano /etc/apache2/apache2.conf
Pour un alias ajouter la ligne :
alias /glpi “/disk2/glpi”
Puis pour indiquer une nouvelle directory copier le paragraphe :
<Directory /var/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>
Avec les raccourcis ctrl+k pour couper les lignes une/une, puis ctrl+u pour coller 2 paragraphes, modifier un des deux en :
<Directory /disk2/glpi> Options Indexes FollowSymLinks AllowOverride Limit Require all granted </Directory>
1.Chemin dossier pour apache sur disk2, 3.modification pour glpi, puis ctrl+O, entrée, ctrl+X.
Puis faire un :
#Service apache2 restart
Ne pas oublier de créer un nouvel hôte, par exemple help.nomdudomaine.dom, dans le serveur DNS avec l’ip du serveur glpi.
Dans le répertoire /etc/apache2/sites-available créer un nouveau fichier avec :
#nano help.conf pour glpi par exemple.
Et renter les lignes suivantes :
<virtualhost *:80> documentroot /disk2/glpi servername help.nomdudomaine.dom </virtualhost>
Puis ctrl+O, entrée, ctrl+X.
Activer le nouveau lien avec :
#a2ensite nomdufichier.conf
Puis :
#Systemctl reload apache2
Pour éviter l'accès aux fichiers en dehors de la directory root:
Si vous souhaitez vous assurer que les fichiers situés en dehors du répertoire racine Web ne soit pas accessibles, vous devez vous assurer que le répertoire est restreint avec “Allow” et “Deny option” dans le fichier de configuration de votre serveur Web. Et éviter de nommer la directory/dossier du site comme l'entête du site.
<Directory/> Options None AllowOverride None Order deny,allow Deny from all </Directory>
Pour créer une base de donner :
#mysql #mysql>create database glpidb;
Y créer un nouvel utilisateur :
#mysql>create user ‘identifiant’@’localhost’ identified by ‘motdepasse’;
Pour lui attribuer les privilèges nécessaires :
#mysql>grant all privileges on glpidb.* to ‘identifiant’@’localhost’; #mysql>flush privileges;
Pour vérifier existence base de données :
#mysql>show databases;
Pour vérifier existence utilisateur :
#mysql>select user from mysql.user; ; à ne pas oublier localhost à remplacer par % en cas de serveur mysql déporté.
Pour un serveur mysql déporté penser également à modifier le fichier :
/etc/mysql/mysql.conf.d/mysqld.cnf
Puis modifier la ligne :
Bind-address = 127.0.0.1 en remplaçant 127.0.0.1 par 0.0.0.0
Enregistrer avec ctrl+O, entrée, ctrl+X.
Redémarrer le service avec :
#systemctl restart mysql
On peut maintenant tester à partir d’un client avec :
#mysql -u nom_utilisateur -h IP_serveur_database -p
Pour supprimer un utilisateur ou une base de données :
#Mysql>drop database nom_de_la_database #Mysql>drop user nom_utilisateur
Pour sécuriser de façon basique mysql :
#mysql_secure_installation
puis répondre aux questions.
Pour GRR éditer tables.my.sql dans grr/installation puis corriger les fautes, pour pouvoir finir l’installation.
Pour passer en root :
#sudo su
Pour afficher répertoire en cours :
#pwd
Pour afficher utilisateur en cours :
#whoami
Pour changer de répertoire :
#cd /+chemin à rejoindre #cd+entrée (retour au dossier /home) #cd .. (remonte d’un niveau dans le chemin de fichier) #cd /+entrée (retour au dossier /)
Pour nettoyer l’écran de toutes les commandes :
#clear
Pour voir toutes les commandes taper depuis ouverture de session :
#history
Pour pouvoir faire défiler le résultat d’une commande avec trop d’info :
#commande | less espaces à bien respecter puis faire défiler résultat avec barre espace ou entrée.
Exemple :
#history | less
Pour copier un fichier :
#cp nomdufichiersource nomdufichierdestination
Pour créer un nouveau répertoire :
#mkdir nomdurépertoire
Pour créer un fichier :
#touch nomdufichier
Pour effacer un fichier :
#rm nomdufichier
Pour déplacer un fichier :
#mv nomdufichier /chemindestination
Pour lister les fichiers dans le répertoire en cours :
#ls #ll pour plus d’info
Pour ouvrir un nouveau terminal :
#alt+f2 ou f3 autant que vs voulez de terminal.
Pour obtenir l’aide d’une commande :
#commande –help Ou #man commande
Pour lire le contenu d’un fichier config par exemple :
#cat nom_du_fichier
Pour l’éditer :
#nano nom_du_fichier ou #vim nom_du_fichier
Pour arreter un serveur :
#init 0 ou shutdown -h
Pour le redémarrer :
#init 6 ou shutdown -r
Pour connaitre version d’un paquet :
#dpkg –s “nomdupaquet”
Dans édition de fichier avec nano :
Ctrl+w pour chercher un mot et ctrl+c pour connaître numéro de ligne actuelle
Pour lister les processus :
#top ou #htop ou #ps -ef ou bien ps -aux
Pour tuer un processus « violemment » :
#kill -9 PID_du_processus
Pour se déplacer dans VIM :
| H | J | K | L |
| GAUCHE | BAS | HAUT | DROITE |
| Pour quitter sans enregistrer: | :q ! |
| Pour quitter en enregistrant: | :wq |
| Pour entrer en mode insertion taper: | i |
| Pour entrer en mode visuel taper: | v |
| Pour entrer en mode ligne de commande taper: | : |
| Pour revenir au mode normal taper la touche: | esc |
| Pour annuler une commande taper: | u |
| Pour effacer taper: | d |
| Pour une recherche taper: | / |
| Pour aller en bas de page: | G |
| Pour aller en haut de page: | g |
| Pour remplacer mot dans ligne où est le curseur: | /s/mot_à_changer/nouveau_mot |
| Pour remplacer mot dans la page: | %/s/mot_à_changer/nouveau_mot/g |
| Copier une ligne: | dd |
| Coller | p |
il est possible d'éditer un document en utilisant cat par exemple:
cat >> essai.txt <<EOF ------------------ ------ Essai ------ ------------------ EOF
Pour créer un utilisateur :
#useradd nom_du_user –s /bin/bash –m
Pour créer son répertoire /home et son invite de shell en même tps
Pour créer mot de passe utilisateur :
#passwd nom_du_user
Pour supprimer un user :
#userdel nom_du_user –r
Supprime également son répertoire /home
Pour se logger ou se delogger d’un user :
#login nom_du_user ou #logout nom_du_user
Pour ajouter un user en automatique :
#adduser nom_du_user
Pour ajouter/effacer un groupe :
#addgroup nom_du_groupe #delgroup ou groupdel nom_du_groupe
Pour ajouter un user à un groupe primaire :
#usermod nom_du_user –ag nom_du_groupe
Pour ajouter un user à un groupe secondaire :
#usermod nom_du_user –aG nom_du_groupe
Pour lister les users d’un groupe :
#groups nom_du_groupe
Pour afficher info users :
#cat /etc/passwd
Pour afficher info groupes :
#cat /etc/group
Pour changer propriétaire d’un dossier :
#chown nom_du_proprio nom_du_nouveau_proprio
Pour changer un dossier de groupe :
#chgrp nom_du_nouveau_groupe nom_du_dossier_à_modifier
Pour lire ligne info autorisations et droits d’accès fichier/dossier :
| d | rwx | rwx | r-w | tssr | tssr |
| d=dossier -=fichier | propriétaire | groupe | les autres | proprio | groupe |
On passe root:
sudo -i
On ajoute notre utilisateur au groupe sudo:
#adduser matt sudo
On passe root:
#sudo -i
On lance visudo:
#visudo
3. On recherche cette ligne :
#User privilege specification root ALL=(ALL:ALL) ALL
et on y ajoute une nouvelle ligne juste en dessous avec les mêmes droits pour notre utilisateur:
user ALL=(ALL:ALL) ALL
Pour connaitre config ip (=ipconfig sur windows) :
#ip addr
Pour configurer une carte réseau (ici la ens33 par exemple) éditer avec :
#nano /etc/netplan/00-installer-config-yaml
Puis rentrer les infos suivantes :
Network: --ethernets: ---ens33: ----addresses:-[192.168.10.123/24] ----gateway4:-192.168.10.111 ----nameservers: -----addresses:-[192.168.10.144] -----search:-[tssr.dom] --version:-2
Pas de – mais un espace à bien respecter pour les alignements, faire ctrl+O, entrée, ctrl+X.
Enfin renter commande :
#netplan apply
#vim /etc/network/interfaces allow-hotplug ens192 iface ens192 inet static address 192.168.100.14/24 gateway 192.168.100.1 dns-nameservers 192.168.100.11 1.1.1.1 dns-domain it-connect.local
Puis:
#systemctl restart networking.service ; sudo ifup ens192
To find out the current status of the IPv6, run the command:
#sysctl net.ipv6.conf.all.disable_ipv6
retour ⇒ The “0” displaying the IPv6 is enabled.
modif sysctl:
#vim /etc/sysctl.conf
Mettre les lignes suivantes:
# Disabling the IPv6 net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1
Apply changes:
#sysctl -p
Update initramfs:
#update-initramfs -u
Vérif si OK:
#sysctl net.ipv6.conf.all.disable_ipv6
Retour ⇒ The “1” is showing that the IPv6 has been disabled successfully. To enable the IPv6 on Debian 12 again, open the sysctl configuration file and remove the added line from it.
Installation:
#apt install dnsutils #yum install bind-utils
Syntaxe:
#dig <serveur> <nom> <type>
EXEMPLE:
#dig www.malekal.com
La commande dig affiche ensuite 5 sections :
; <<>> DiG 9.16.50-Debian <<>> www.malekal.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52679 ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4000 ;; QUESTION SECTION: ;www.malekal.com. IN A ;; ANSWER SECTION: www.malekal.com. 181 IN A 104.22.46.232 www.malekal.com. 181 IN A 172.67.28.10 www.malekal.com. 181 IN A 104.22.47.232 ;; Query time: 12 msec ;; SERVER: 192.9.200.201#53(192.9.200.201) ;; WHEN: Tue Feb 25 12:53:50 CET 2025 ;; MSG SIZE rcvd: 92
La section ANWSER est la plus importante :
;; ANSWER SECTION: www.malekal.com. 181 IN A 104.22.46.232 www.malekal.com. 181 IN A 172.67.28.10 www.malekal.com. 181 IN A 104.22.47.232
Par défaut, Dig utilise la configuration locale (/etc/resolv.conf) pour décider quel serveur de noms utiliser. Utilisez la commande suivante pour spécifier le serveur de domaine de Google :
#dig @8.8.8.8 google.fr
L’option -t vous permet d’obtenir certaines données DNS spécifiques. Par exemple pour faire une recherche des serveurs MX d’un domaine, utilisez -t mx :
#dig -t mx google.fr
De même par exemple pour afficher les entrées SPF :
#dig -t txt google.fr
Pour afficher uniquement l’adresse IP associée au nom de domaine, entrez ce qui suit :
#dig google.fr +short
Exécutez +noall +answer avec la commande Dig pour accéder aux informations détaillées dans la section answer :
#dig google.fr +noall +answer
L’option +trace répertorie chaque serveur différent que la requête passe jusqu’à sa destination finale. Utilisez cette option de commande pour identifier l’adresse IP où le trafic tombe.
#dig google.fr +trace
Pour connaitre le DNS d’une adresse IP (DNS inversé) :
#dig -x 8.8.8.8
Dig peut aussi lire un fichier texte afin d’effectuer une recherche de DNS en mode batch Par exemple, créez le fichier dns.txt :
#vim dns.txt
Puis utilisez dig avec l’option -f pour spécifier ce dernier :
#dig -f dns.txt +short
Les informations affichées par DIG peuvent être modifiées dans le fichier ~/.digrc. Ouvrez le fichier pour l’édition avec la commande suivante:
#sudo vim ~/.digrc
Puis ajoutez les options dig souhaitées :
+noall +noauthority +answer
Pour repérer le nom de la carte réseau:
#ip add
Activer la NIC:
#ip link set eno1 up
Redémarrer le service réseau:
#systemctl restart networking.service
WIFI:
Si vous avez perdu votre connexion Wi-Fi après l’installation de Debian, créez temporairement une connexion Internet sans-fil :
Identifiez l’interface de votre carte Wi-Fi (ex. : wlp2s0) :
#iwconfig
Activez l’interface :
#ip link set [interface] up
Recherchez les points d’accès Wi-Fi accessibles :
#iwlist scan | grep SSID
Générez un fichier de configuration à partir du nom de votre point d’accès Wi-Fi et sa clé de sécurité :
#wpa_passphrase [ssid] [clé_de_sécurité] > /etc/wpa_supplicant/home.conf
Démarrez la connexion sans-fil en arrière-plan :
#wpa_supplicant -B -D[pilote] -i[interface] -c[/chemin/vers/fichier/conf]
#wpa_supplicant -B -Dwext -iwlp2s0 -c/etc/wpa_supplicant/home.conf
Récupérez l’adresse IP depuis l’interface :
#dhclient [interface]
Pour activer le routage :
#nano /etc/sysctl.conf
puis décommenter la ligne :
#net.ipv4.ip-forward=1 faire un ctrl+O, entrée, ctrl+X.
Puis redémarrer le serveur avec init 6.
Pour activer le relais DHCP :
#apt install isc-dhcp-relay
Puis configurer soit pendant l’installation du paquet ou après en allant dans :
#nano /etc/default/isc-dhcp-relay renseigner adresse serveur dhcp + interfaces concernées (mettre des espaces entre les interfaces) puis ctrl+O, entrée, ctrl+X.
Si modification réinitialiser le service avec :
/etc/init.d/isc-dhcp-relay restart
Sur le serveur SAN installer le paquet avec :
#Apt install tgt
Puis créer un fichier de configuration avec :
#Nano /etc/tgt/conf.d/target01.conf
Y inscrire ce qui suit :
<target ubuntusan.2021.01.tssr.dom> (libre de choix pour les infos écrites) (tabulation)backing-store /dev/sdb1 </target>
Puis ctrl+O, entrée, ctrl+X.
Redémarrer le service avec :
#Systemctl restart tgt
Pour vérifier la conf de TGT taper :
#tgt-admin -s
Puis dans l’ESXi : Actualiser, puis voir dans périphérique si IET est présent et dans adaptateur si ISCSI est présent ⇒ normalement c’est ok. Puis créer nouvelle banque de données dans banque de donnée. Si problème de reconnaissance du format du disque : 1. Activer l’accès ssh sur l’ESXi 2. Se connecter avec PUTTY 3. Repérer l’ID du disque dans stockage>périphériques 4. Puis taper cette commande :
#partedutil mklabel /dev/disks/ID_du_disque msdos
Vérifier si le format est reconnu puis créer votre nouvelle banque de données.
Installer le service locate avec :
#apt install mlocate
Puis initialiser la base de données :
#updatedb
On peut maintenant chercher un fichier :
#locate nom_du_fichier
Pour une recherche avec FIND:
find <emplacement> -name "<nom fichier>" <commande>
Pour être insensible à la casse:
find <emplacement> -iname "<nom fichier>" <commande>
Pour éviter les erreurs en cas de défaut d'accès root:
find <emplacement> -name "<nom fichier>" <commande> 2> /dev/null
Recherche par type de fichier:
find /var/log/ -type f -name "*sm*"
Recherche par type de dossier:
find /var/log/ -type d -name "*sm*"
Recherche par taille de fichier ex. entre 20 et 40 Mo:
find /Téléchargements -size +20M -size -40M
Recherche par user:
find /tmp -user adrien
Sur tous les fichiers trouvés par find, je veux appliquer une commande, on va utiliser l'option -exec. Exemple : tous les fichiers dont l'UID de l'utilisateur est 500, je veux effectuer un chown pour changer son propriétaire :
find / -uid 500 -exec chown adrien {} \;
Autre exemple de suppression de fichiers dont l'extension finit par .test dans /tmp :
find /tmp -type f -name "*.test" -exec rm -i {} \;
On peut lister les fichiers vides :
find /tmp -type f -empty
Et les dossiers avec :
find /tmp -type d -empty
Filtrer les dossiers volumineux:
#du -Sh | sort -rh | head -5
Ensuite on peut filtrer les fichiers avec:
#find /home -type f -size +100M -printf '%s %p\n' | sort -nr | head -10
⇒ top 10 du plus grand au plus petit
Pour une recherche de mot basique:
#grep -rin -C 2 "occurence" /home/
⇒ r: récursivité; i: non sensible à la casse; n: numéro de ligne dans le fichier; -C 2: pour 2 lignes av et ap l'occurence
PARTIE 1 : Installer le paquet cifs-utils :
#apt install cifs-utils
Créer le répertoire pour accueillir le lecteur réseau :
#mkdir -p /home/nom_du_point_de_montage
Pour créer le lien taper :
#mount -t cifs //IP_du_serveur_windows/nom_du_partage -o username=nom_utilisateur,password=mot_de_passe /home/nom_du_point_de_montage
Puis vérifier si le lien est établi avec :
#cd /home/point_de_montage
PARTIE 2 : Pour faciliter un futur accès à ce point de montage on peut créer un script à exécuter :
#echo mount -t cifs //IP_du_serveur_windows/nom_du_partage -o username=nom_utilisateur,password=mot_de_passe /home/nom_du_point_de_montage > nom_du_fichier.sh
Rendre le fichier exécutable avec :
#chmod u+x nom_du_fichier.sh
Maintenant pour monter le dossier de partage taper :
#./nom_du_fichier.sh
Créer d’abord un utilisateur qui aura à lui seul les droits de lecture et d’écriture sur un nouveau dossier de partage dédié au backup sur le serveur Windows. Lors de la création de l’utilisateur, dans les options de mot de passe, cocher « l’utilisateur ne peut pas changer de mot de passe » et « le mot de passe n’expire jamais ».
Ensuite pour le serveur linux, reprendre la partie 1 du chapitre « POUR ACCEDER A UN LECTEUR RESEAU WINDOWS A PARTIR D’UN POSTE LINUX ».
Puis créer un script Shell (par exemple backup.sh) dans le répertoire /root avec :
#nano backup.sh
Y inscrire les commandes suivantes :
Umount /home/point_de_montage mount -t cifs //IP_srv_windows/partage_windows -o username=nom_utilisateur,password=mot_de_passe /home/point_de_montage mysqldump nom_base_de_données > /home/point_de_montage/nom_base_de_données.sql umount /home/point_de_montage
Puis enregistrer avec ctrl+O, entrée, ctrl+X.
Rendre ce script exécutable avec :
#chmod 770 backup.sh
On peut tester ce script avec la commande :
#./backup.sh
Pour planifier une sauvegarde automatique éditer le crontab avec :
#crontab -e
Dans le crontab la syntaxe est :
| M | H | DOM | MON | DOW | COMMAND |
| MINUTE | HEURE | Jour du mois | MOIS | Jour de la semaine | par ex: apt update |
Par exemple, exécution du script backup.sh placé dans le répertoire /root, tous les jours, tous les mois à 12H00 :
0 12 * * * /root/backup.sh
puis taper ctrl+O, entrée, ctrl+X.
Pour lire les taches d'un crontab :
#crontab -l
et pour celui d'un user :
#crontab -u user -l
pour tous les users faire un alias avec :
alias cronall='for user in $(cut -f1 -d: /etc/passwd); do echo -e "\n\n==> $user:" && crontab -u $user -l; done'
Il vous suffit ensuite de faire appel à cronall :
#cronall
lister tous les scripts :
#ls -al /etc/cron.*
Installer imapsync https://github.com/imapsync/imapsync puis:
imapsync --host1 IP_SERVER_IMAP1 --user1 EMAIL_USER1 --password1 PASSWD_USER1 --host2 IP_SERVER_IMAP2 --user2 EMAIL_USER2 --password2 PASSWD_USER2 --subfolder2 "dossier_dump" --exclude 'Outbox|Junk|Trash|Sent|Drafts|Templates' --nofoldersizes --buffersize 8192000
ajouter option –justfolders et –dry pour faire des tests
Installer le paquet proftpd :
#apt install proftpd
Decommenter la ligne #defaultroot dans le fichier conf :
#nano /etc/proftpd/proftpd.conf puis ctrl+O, entrée, ctrl+X.
Redémarrer le service :
#service proftpd restart
Créer un utilisateur (même nom et mdp que dans l’AD):
#adduser utilisateur (renseigner le mot de passe)
Tester du poste client (par ex :windows 10) dans explorateur de fichier :
#ftp://utilisateur@IP_du _serveur_ftp -> puis renseigner le mdp
PARTIE 1 : Sur le serveur BDD, installer le service SAMBA :
#apt install samba
Créer un utilisateur (ici :backweb) :
#adduser backweb -> renseigner le mdp
Associer cet utilisateur au service SAMBA :
#smbpassword backweb -> renseigner le mdp
Créer le dossier de partage :
#mkdir /disk2/backupweb
Rendre l’utilisateur propriétaire du dossier :
#chown -R backweb:backweb /disk2/backupweb
Editer le fichier conf de SAMBA pour créer un profil :
[backupweb] path = /disk2/backupweb writeable = yes browseable = no valid users = backweb
Enregistrer avec ctrl+O, entrée, ctrl+X.
Redémarrer le service :
#service smbd restart
PARTIE 2 : Sur le serveur extranet, installer le service CIFS-UTILS :
#apt install cifs-utils
Créer le point de montage :
#mkdir /mnt/backup
On peut établir un lien pour tester avec :
#mount -t cifs //IP_srvBDD/backupweb /mnt/backup -o user=backweb,password=mdp
On peut scripter les sauvegarde (plus une compression des données avec tgz) :
#nano backup.sh
Y inscrire les commandes suivantes :
Umount /mnt/backup Mount -t cifs //IP_srvBDD/backupweb /mnt/backup -o user=backweb,password=mdp tar -zcvf /mnt/backup/glpi.tar.gz /disk2/glpi Umount /mnt/backup puis ctrl+O, entrée, ctrl+X.
Rendre le script exécutable :
#chmod 770 backup.sh
On peut ensuite le mettre dans un crontab pour planifier la sauvegarde (voir chapitre POUR BACKUP BASE DE DONNEES LINUX VERS WINDOWS).
On peut également horodater la sauvegarde en remplacent la ligne de commande :
tar -zcvf /mnt/backup/glpi.tar.gz /disk2/glpi
par :
tar -zcvf /mnt/backup/glpi_’date +%d%m%y-%H%M’.tar.gz /disk2/glpi
Pour la décompresser:
tar -zxvf ...
| Commande | Description |
|---|---|
| last ou lastb | voir historique de logging ou logging raté (avec -i pour voir IP) |
| cat /etc/*release | Affiche la version de l'OS |
| cat /proc/partitions | Affiche la liste des disques et partitions avec leur id |
| ls /dev/{v,s}d* | Affiche les partitions sous forme de fichier de type bloc |
| blkid | Affiche les identifiants uniques (UUID) des partions |
| lsblk | Affiche la list des partitions et disques |
| lsb_release -d ou -a | Affiche la version de l'OS |
| findmnt | Affiche les points de montage |
| df -h | Affiche les points de montage avec des informations sur le système de fichier |
| du | Affiche l’espace réel occupé par des fichiers |
| fdisk | Permet de manipuler tables de partitions MBR |
| gdisk | Permet de manipuler tables de partitions GPT |
| mkfs.* | Binaires qui permettent de préparer des systèmes de fichier |
| cat /etc/fstab | Affiche les points de montage autmatiques au démarrage |
| cat /proc/version | Affiche la version de linux |
| cat /etc/mtab | Affiche les points de montage courant du système |
| mount | Commande qui permet de monter des systèmes de fichier |
| mount -a | Monte les systèmes de fichier renseigné dans /etc/fstab |
| mkswap | Fabrique une mémoire swapd |
| swapon | Monte une mémoire swap |
| swapoff | Démonte une mémoire swap |
| partprobe | Programme qui la la table de partition et en informe le noyau |
| fsck.* | Vérifie un système de fichier EX |
| dumpe2fs | Affiche les informations sur les blocs et super-blocs EXT |
| xfsdump, xfsrestore | Permet de sauvegarder/restaurer un système de fichier XFS |
| debugfs | Diagnostic sur des systèmes de fichier EXT |
| tune2fs | Configure des paramètres de configuration des systèmes de fichier EXT |
| xfs_info, xfs_check et xfs_repair | Diagnostic de systèmes de fichiers EXT |
| smartd, smartctl | Utilitaires pour gérer “SMART self-test and error logs” |
| mdadm.conf | Fichier de configration RAID logiciel |
| mdadm | Permet de manipuler les configuration RAID logiciel |
| cat /proc/mdstat | Affiche les informations RAID logiciel |
#ls -lct /etc | tail -1 | awk '{print $6, $7, $8}'
10 janv. 08:17
#df / | awk '{print $1}' | grep dev | xargs tune2fs -l | grep create
Filesystem created: Fri Jan 10 08:16:17 2025
dumpe2fs -h $(df | awk '/\/$/ {print $1}') | grep created
dumpe2fs 1.47.0 (5-Feb-2023)
Filesystem created: Fri Jan 10 08:16:17 2025