Outils pour utilisateurs

Outils du site


linux

Ceci est une ancienne révision du document !


LINUX

apt update && apt install python3 python3-pip vim apt-transport-https ca-certificates curl wget software-properties-common telnet locate tree nmap dnsutils tcpdump openssh-client ipcalc ncal -y
Decouverte new srv: last, env, 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


GESTION DES TABLES DANS NFTABLE

TESTER LIEN LDAP AD / LINUX LDAPSEARCH

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
  .
  .
  .


CRONTAB ROCKYLINUX/CIRIL

#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).

VERIF SERVICES ET PROCESS APACHE CITYWEB ROCKYLINUX/CIRIL

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

ERREUR piix4_smbus - upgrade bios or use force_addr=0xaddr

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

ERREUR PARTITION SWAP AU BOOT (repérer nom partition pdt boot)

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

POUR LE PROBLEME OS_PROBER ON:

Modifier le fichier suivant:

#vim /etc/default/grub

Ajouter la ligne:

#GRUB_DISABLE_OS_PROBER=true

Puis:

#update-grub
#reboot

LISTER LES PORTS EN ECOUTE

Pour voir les ports en écoute, on peut utiliser la commandes :

#ss ou netstat -tulnp

MODIFIER SOURCELIST AVEC SED

#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")

REGLER TIME ZONE

taper:

#dpkg-reconfigure tzdata

NETTOYER APRES MAUVAISE DESINSTALLATION

#dpkg --force-all --purge nom_du_paquet

ou par exemple avec nftables:

#apt-get remove --auto-remove nftables
#apt-get purge nftables

LISTER PAQUETS INSTALLES LINUX

Sous Debian:

#dpkg --list

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

REPRENDRE UNE MISE A JOUR APRES UNE INTERUPTION

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

CREER UN NOUVEAU DD SOUS UBUNTU

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

CLONER UN DISQUE AVEC LA COMMANDE DD

#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

COMMENT REDIMMENSIONNER VOTRE PARTITION AVEC FDISK

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

PARTITION LVM

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


FICHIER COMPRESSE SOUS UBUNTU

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

Fichier GZ

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.


POUR UN SERVEUR WEB UBUNTU

MODE ALIAS

DOC APACHE ALIAS

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

POUR CREER UN HOTE VIRTUEL

DOC APACHE VIRTUAL HOST

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>

MYSQL

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.


MEMO COMMANDE ET CONFIG UBUNTU

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

EDITEUR DE TEXTE VIM

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

UTILISATEUR SOUS LINUX

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

Ajout des droits avec visudo

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

CONFIGURATION RESEAU SEVREUR UBUNTU

Config network Ubuntu

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

POUR UNE DEBIAN

#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

DISABLED IPV6

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.


DIG DNS

Installation:

#apt install dnsutils
#yum install bind-utils

Syntaxe:

#dig <serveur> <nom> <type>
  • <serveur> – le nom d’hôte ou l’adresse IP à laquelle la requête est dirigée
  • <nom> – Le DNS (serveur de noms de domaine) du serveur à interroger
  • <type> – Le type d’enregistrement DNS à récupérer. Par défaut (ou s’il est laissé vide), dig utilise le type d’enregistrement A

EXEMPLE:

#dig www.malekal.com

La commande dig affiche ensuite 5 sections :

  • Un récapitulatif des drapeaux et en-tête : Les flag et quelques options DNS
  • OPT PSEUDOSECTION :
    • EDNS – Extension system for DNS si utilisé
    • Le cookie DNS si présent
    • Flags – vide car aucun drapeau n’a été spécifié
    • UDP – La taille du paquet UDP
  • Answer Section : la réponse DNS. Pour la supprimer, il faut utiliser +[no]answer
  • Authority section : les serveurs DNS faisant autorités. Celles-ci ne s’affichent que si vous effectué la recherche DNS avec les serveurs d’autorité. Pour l’afficher ou la retirer, on utilise +[no]authority.
  • Enfin la section STATISTICS avec des informations supplémentaires sur la requête DNS
; <<>> 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 :

  • La première colonne répertorie la recherche du nom de domaine qui a été interrogé
  • La deuxième colonne est Time-To-Live, un délai défini après quoi l’enregistrement est actualisé
  • La troisième colonne montre la classe de requête – dans ce cas, IN signifie Internet
  • La quatrième colonne affiche le type de requête – dans ce cas, «A» représente un enregistrement A (adresse)
  • La colonne finale affiche l’adresse IP associée au nom de domaine
;; 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

EN CAS DE NIC OU WIFI DESACTIVEE

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]

ROUTAGE

Tuto routage Ubuntu

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

CONFIGURATION TGT POUR DISQUE SAN

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.


LOCATE ET FIND LINUX

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

Gérer les fichiers volumineux

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


Commande GREP

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


POUR ACCEDER A UN DOSSIER PARTAGE WINDOWS A PARTIR D’UN POSTE LINUX

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

POUR BACKUP BASE DE DONNEES LINUX VERS WINDOWS

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.*

IMAPSYNC

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


SERVEUR FTP SUR LINUX

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

BACKUP SERVEUR EXTRANET (GLPI) VERS SERVEUR-BDD LINUX VERS LINUX

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 ...

COMMANDES A RETENIR

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

DATE APPROXIMATIVE D'INSTALLATION OS

#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

Use Systemd to Run Scripts at Boot

linux.1748437986.txt.gz · Dernière modification : 2025/05/28 15:13 de huracan

DokuWiki Appliance - Powered by TurnKey Linux