-
Nathanaël TRAVIER authored
- /architecture/crontab.md - /architecture/directories.md - /architecture/home.md - /architecture/logs.md - /architecture/rights.md - /architecture/user.md - /exploitation/deleteAllResources.md - /exploitation/docker.md - /exploitation/home.md - /exploitation/https_apache.md - /exploitation/img/basic_auth.png - /exploitation/img/docker_maarch.png - /exploitation/pg_wait_connection.md - /exploitation/postgres_save - /exploitation/protect_directory_apache_by_password.md - /exploitation/reverseProxyNginx.md - /exploitation/samba.md - /exploitation/saveBdd.md - /exploitation/tips_commands.md - /exploitation/updateAppletJava.md - /exploitation/vhost_apache.md - /troubleshooting/attachments.md - /troubleshooting/ban.md - /troubleshooting/bannettes.md - /troubleshooting/bddcheck.md - /troubleshooting/bug.md - /troubleshooting/capture.md - /troubleshooting/config.md - /troubleshooting/cron.md - /troubleshooting/currenterrors.md - /troubleshooting/disk_space.md - /troubleshooting/files_rights.md - /troubleshooting/home.md - /troubleshooting/img/debug_browser.png - /troubleshooting/java.md - /troubleshooting/ldap.md - /troubleshooting/linux.md - /troubleshooting/lucene.md - /troubleshooting/manualupdate.md - /troubleshooting/php.md - /troubleshooting/send_mail.md - /troubleshooting/sorttodo.md - /miscellaneous/home.md - /miscellaneous/notes1.md - /miscellaneous/notes2.md - /Courrier/assistance.md - /Courrier/comprehension.md - /Courrier/etudedeveloppement.md - /Courrier/formation.md - /Courrier/initialisation.md - /Courrier/passagesupport.md - /Courrier/recette.md - /Courrier/service.md - /Courrier/1001/clausesbannettes.md - /Courrier/1001/clausesapparition.md - /Courrier/projet/assistance.md - /Courrier/projet/comprehension.md - /Courrier/projet/etudedeveloppement.md - /Courrier/projet/formation.md - /Courrier/projet/initialisation.md - /Courrier/projet/passagesupport.md - /Courrier/projet/recette.md - /Courrier/projet/service.md - /Courrier/integration/edition.md - /Courrier/integration/capture/home.md - /Courrier/integration/capture/unitaire.md - /Courrier/integration/capture/masse.md - /Courrier/integration/capture/formulaire.md - /Courrier/integration/capture/courriel.md - /Courrier/integration/connecteurs/fastparapheur.md - /Courrier/integration/connecteurs/iparapheur.md - /Courrier/integration/connecteurs/maileva.md - /Courrier/integration/connecteurs/m2m.md - /Courrier/maintenance/architecture/crontab.md - /Courrier/maintenance/architecture/logs.md - /Courrier/maintenance/architecture/home.md - /Courrier/maintenance/architecture/rights.md - /Courrier/maintenance/architecture/user.md - /Courrier/maintenance/architecture/directories.md - /Courrier/maintenance/exploitation/img/docker_maarch.png - /Courrier/maintenance/exploitation/img/basic_auth.png - /Courrier/maintenance/exploitation/postgres_save - /Courrier/maintenance/exploitation/vhost_apache.md - /Courrier/maintenance/exploitation/docker.md - /Courrier/maintenance/exploitation/deleteAllResources.md - /Courrier/maintenance/exploitation/saveBdd.md - /Courrier/maintenance/exploitation/home.md - /Courrier/maintenance/exploitation/samba.md - /Courrier/maintenance/exploitation/pg_wait_connection.md - /Courrier/maintenance/exploitation/updateAppletJava.md - /Courrier/maintenance/exploitation/tips_commands.md - /Courrier/maintenance/exploitation/https_apache.md - /Courrier/maintenance/exploitation/reverseProxyNginx.md - /Courrier/maintenance/exploitation/protect_directory_apache_by_password.md - /Courrier/maintenance/troubleshooting/img/debug_browser.png - /Courrier/maintenance/troubleshooting/java.md - /Courrier/maintenance/troubleshooting/ldap.md - /Courrier/maintenance/troubleshooting/send_mail.md - /Courrier/maintenance/troubleshooting/bddcheck.md - /Courrier/maintenance/troubleshooting/attachments.md - /Courrier/maintenance/troubleshooting/bug.md - /Courrier/maintenance/troubleshooting/bannettes.md - /Courrier/maintenance/troubleshooting/lucene.md - /Courrier/maintenance/troubleshooting/cron.md - /Courrier/maintenance/troubleshooting/currenterrors.md - /Courrier/maintenance/troubleshooting/sorttodo.md - /Courrier/maintenance/troubleshooting/config.md - /Courrier/maintenance/troubleshooting/manualupdate.md - /Courrier/maintenance/troubleshooting/files_rights.md - /Courrier/maintenance/troubleshooting/home.md - /Courrier/maintenance/troubleshooting/ban.md - /Courrier/maintenance/troubleshooting/capture.md - /Courrier/maintenance/troubleshooting/php.md - /Courrier/maintenance/troubleshooting/disk_space.md - /Courrier/maintenance/troubleshooting/linux.md - /Courrier/maintenance/miscellaneous/notes2.md - /Courrier/maintenance/miscellaneous/notes1.md - /Courrier/maintenance/miscellaneous/home.md - /Courrier/documentation.md - /SUMMARY.md
Nathanaël TRAVIER authored- /architecture/crontab.md - /architecture/directories.md - /architecture/home.md - /architecture/logs.md - /architecture/rights.md - /architecture/user.md - /exploitation/deleteAllResources.md - /exploitation/docker.md - /exploitation/home.md - /exploitation/https_apache.md - /exploitation/img/basic_auth.png - /exploitation/img/docker_maarch.png - /exploitation/pg_wait_connection.md - /exploitation/postgres_save - /exploitation/protect_directory_apache_by_password.md - /exploitation/reverseProxyNginx.md - /exploitation/samba.md - /exploitation/saveBdd.md - /exploitation/tips_commands.md - /exploitation/updateAppletJava.md - /exploitation/vhost_apache.md - /troubleshooting/attachments.md - /troubleshooting/ban.md - /troubleshooting/bannettes.md - /troubleshooting/bddcheck.md - /troubleshooting/bug.md - /troubleshooting/capture.md - /troubleshooting/config.md - /troubleshooting/cron.md - /troubleshooting/currenterrors.md - /troubleshooting/disk_space.md - /troubleshooting/files_rights.md - /troubleshooting/home.md - /troubleshooting/img/debug_browser.png - /troubleshooting/java.md - /troubleshooting/ldap.md - /troubleshooting/linux.md - /troubleshooting/lucene.md - /troubleshooting/manualupdate.md - /troubleshooting/php.md - /troubleshooting/send_mail.md - /troubleshooting/sorttodo.md - /miscellaneous/home.md - /miscellaneous/notes1.md - /miscellaneous/notes2.md - /Courrier/assistance.md - /Courrier/comprehension.md - /Courrier/etudedeveloppement.md - /Courrier/formation.md - /Courrier/initialisation.md - /Courrier/passagesupport.md - /Courrier/recette.md - /Courrier/service.md - /Courrier/1001/clausesbannettes.md - /Courrier/1001/clausesapparition.md - /Courrier/projet/assistance.md - /Courrier/projet/comprehension.md - /Courrier/projet/etudedeveloppement.md - /Courrier/projet/formation.md - /Courrier/projet/initialisation.md - /Courrier/projet/passagesupport.md - /Courrier/projet/recette.md - /Courrier/projet/service.md - /Courrier/integration/edition.md - /Courrier/integration/capture/home.md - /Courrier/integration/capture/unitaire.md - /Courrier/integration/capture/masse.md - /Courrier/integration/capture/formulaire.md - /Courrier/integration/capture/courriel.md - /Courrier/integration/connecteurs/fastparapheur.md - /Courrier/integration/connecteurs/iparapheur.md - /Courrier/integration/connecteurs/maileva.md - /Courrier/integration/connecteurs/m2m.md - /Courrier/maintenance/architecture/crontab.md - /Courrier/maintenance/architecture/logs.md - /Courrier/maintenance/architecture/home.md - /Courrier/maintenance/architecture/rights.md - /Courrier/maintenance/architecture/user.md - /Courrier/maintenance/architecture/directories.md - /Courrier/maintenance/exploitation/img/docker_maarch.png - /Courrier/maintenance/exploitation/img/basic_auth.png - /Courrier/maintenance/exploitation/postgres_save - /Courrier/maintenance/exploitation/vhost_apache.md - /Courrier/maintenance/exploitation/docker.md - /Courrier/maintenance/exploitation/deleteAllResources.md - /Courrier/maintenance/exploitation/saveBdd.md - /Courrier/maintenance/exploitation/home.md - /Courrier/maintenance/exploitation/samba.md - /Courrier/maintenance/exploitation/pg_wait_connection.md - /Courrier/maintenance/exploitation/updateAppletJava.md - /Courrier/maintenance/exploitation/tips_commands.md - /Courrier/maintenance/exploitation/https_apache.md - /Courrier/maintenance/exploitation/reverseProxyNginx.md - /Courrier/maintenance/exploitation/protect_directory_apache_by_password.md - /Courrier/maintenance/troubleshooting/img/debug_browser.png - /Courrier/maintenance/troubleshooting/java.md - /Courrier/maintenance/troubleshooting/ldap.md - /Courrier/maintenance/troubleshooting/send_mail.md - /Courrier/maintenance/troubleshooting/bddcheck.md - /Courrier/maintenance/troubleshooting/attachments.md - /Courrier/maintenance/troubleshooting/bug.md - /Courrier/maintenance/troubleshooting/bannettes.md - /Courrier/maintenance/troubleshooting/lucene.md - /Courrier/maintenance/troubleshooting/cron.md - /Courrier/maintenance/troubleshooting/currenterrors.md - /Courrier/maintenance/troubleshooting/sorttodo.md - /Courrier/maintenance/troubleshooting/config.md - /Courrier/maintenance/troubleshooting/manualupdate.md - /Courrier/maintenance/troubleshooting/files_rights.md - /Courrier/maintenance/troubleshooting/home.md - /Courrier/maintenance/troubleshooting/ban.md - /Courrier/maintenance/troubleshooting/capture.md - /Courrier/maintenance/troubleshooting/php.md - /Courrier/maintenance/troubleshooting/disk_space.md - /Courrier/maintenance/troubleshooting/linux.md - /Courrier/maintenance/miscellaneous/notes2.md - /Courrier/maintenance/miscellaneous/notes1.md - /Courrier/maintenance/miscellaneous/home.md - /Courrier/documentation.md - /SUMMARY.md
- Notes 1
- différences debian / redhat
- éditeurs de fichiers
- déploiements auto
- /var/spool
- cron
- postfix
- ps
- divers
- services
- systemd
- sysV
- upstart
- variables d'environnements
- connaitre d'où vient une erreur
- history
- personnalisation du bash
- contrôles
- nohup ou detach
- screen
- file descriptor
- lsof
- modes d'installation d'un OS
- vagrant
- démarrage d'un linux
- gestion des disques
- gestion des points de montage
- preseed kickstart cloudinit
Notes 1
différences debian / redhat
- Red Hat -> hierarchie des dépendances mieux organisée
- fichiers de configuration debian différents sur autres distrib -> exemple conf apache sur debian via ln différents sur centos debian impose l'organisation des répertoires de conf
éditeurs de fichiers
- vi / vim (featured riched)
déploiements auto
- Ansible monter une machine Maarch sur Gandi reverse port ssh (solution temporaire) ou VPN privé (solution permanente) -> on peut le faire sans le dire au client via teamviewer possibilité de faire du local avec ansible (fonctionnalité cachée) -> ansible pull les deux solutions sont envisageables pour les collectivités 15 mins pour tout déployer
/var/spool
cron
- pour voir la liste des crontabs user /var/spool/cron/crontabs/
postfix
- tous les mails qui n'ont pas été envoyés se retrouve /var/spool/mail
ps
- ps -faux -> le f donne l'arborescence de dépendance d'exécution utile pour repérer les process créés par des hackers
- kill ne tue pas le process -> il envoie un signal au processus (SIGTERM) termine proprement le processus kill -9 -> ferme violement le processus kill -l -> donne tous les signaux
divers
- httpd -> http deamon -> nom du service apache sous les autres distribs de debian
services
systemd
- la solution de gestion des services uptodate
- la solution sur toutes les distrib aujourd'hui
- un deamon qui gère tous les autres processus du systeme le process 1 de la machine est systemd -> c'est lui qui va lancer tous les autres process /sbin/init -> /lib/systemd/systemd est un lien symbolique vers systemd
sudo systemctl status apache2 charge la conf de démarrage d'apache /lib/systemd/system/apache2.service
[Unit]
Description=The Apache HTTP Server
After=network.target remote-fs.target nss-lookup.target
Documentation=https://httpd.apache.org/docs/2.4/
[Service]
Type=forking
Environment=APACHE_STARTED_BY_SYSTEMD=true
ExecStart=/usr/sbin/apachectl start
ExecStop=/usr/sbin/apachectl stop
ExecReload=/usr/sbin/apachectl graceful
PrivateTmp=true
Restart=on-abort
[Install]
WantedBy=multi-user.target
Restart=on-failure -> redémarre si le process est tombé inopinément
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2019-08-21 10:48:06 CEST; 8min ago
Docs: https://httpd.apache.org/docs/2.4/
Process: 14895 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 14914 (apache2)
Tasks: 7 (limit: 4915)
Memory: 35.3M
CGroup: /system.slice/apache2.service
├─14914 /usr/sbin/apache2 -k start
├─14936 /usr/sbin/apache2 -k start
├─14937 /usr/sbin/apache2 -k start
├─14938 /usr/sbin/apache2 -k start
├─14939 /usr/sbin/apache2 -k start
├─14940 /usr/sbin/apache2 -k start
└─14941 /usr/sbin/apache2 -k start
août 21 10:48:06 lgi-pc systemd[1]: Starting The Apache HTTP Server...
août 21 10:48:06 lgi-pc apachectl[14895]: [Wed Aug 21 10:48:06.576646 2019] [so:warn] [pid 14911] AH01574: module php7_module is already loaded, skipping
août 21 10:48:06 lgi-pc apachectl[14895]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName
août 21 10:48:06 lgi-pc systemd[1]: Started The Apache HTTP Server.
-
pour modifier comment démarre les services il faut toucher à /etc/systemd/system/
-
pour prendre en compte les modifs de la conf de systemd : systemctl daemon reload
sysV
- démarrage séquentiel
- ex : /etc/init.d/apache2 restart
upstart
- pour debian ou ubuntu, démarrage séquentiel
variables d'environnements
- la déclaration des variables d'environnements des services se trouvent par défaut dans /etc/default/
- echo $PATH donne le chemin des répertoires contenants des exécutables directement accessibles
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin
important pour le cron de la setter pour qu'il trouve bien tous les programmes à exécuter, ça peut être un cas d'erreur au cas où le cron n'arrive pas à exécuter une commande export PATH="$PATH:/opt/..."
connaitre d'où vient une erreur
history
- pour connaitre la liste des commande tapées stocké dans /home/lgi/.bash_history
- effacer ses traces pour éviter de retaper des dernières commandes dangereuses unset HISTFILE
- si l'historique des commandes n'est pas historisé à la deconnexion c'est parceque l'on a plusieurs onglets ouverts (le dernier enregistrement a raison)
personnalisation du bash
- echo $PS1 donne la chaine d'affichage du prompt
contrôles
- ctrl-d envoie une fin d'entrée -> utilisation pour les envoies de mail par exemple pour terminer
- ctrl-c envoie un sigterm : exit
- ctrl-z on détache un processus -> met un process en pause et nous rend le shell bg -> on repasse le process en route fg -> on remet le process en pause
- ctrl-s met en pause
- ctrl-q relance le process après une pause
nohup ou detach
- ctrl-z + bg + detach (à installer via psutils) -> permet de lancer une commande en arrière plan et de la laisser tourner malgré que l'on coupe la session ssh
- commandes nohup -> lance une commande en arrière plan directement et ignore les signaux de fin -> pratique
screen
- un outil puissant notamment utile pour partager une session shell
- est un deamon qui va nous permettre de faire de la session par le deamon
- ouvre une nouvelle session dans screen -> utile pour partager une session shell
- faire un tutoriel pour bien comprendre tout ce que l'on peut faire avec
- learning curl raide
file descriptor
- un id d'ouverture de fichiers (filehandler en php)
- le kernel gere cela
- 0 -> entrée standard -> stdin -> ex clavier
- 1 -> sortie standard -> stdoud -> ex écran
- 2 -> sortie erreur -> stderr -> ex écran
pour enchainer des programmes on utilise le | &1 | &0 la sortie standard du premier programme est passée à l'entrée standard du 2ie programme ex :
ps -aux | grep apache
$$ donne le pid de notre shell courant
sudo ls -al /proc/$$/fd -> donne les files descriptors de notre shell courant on peut remplacer $$ par un pid
sudo ls -al /proc/14941/fd
total 0
dr-x------ 2 root root 0 août 21 11:09 .
dr-xr-xr-x 9 lgi lgi 0 août 21 10:48 ..
lr-x------ 1 root root 64 août 21 11:09 0 -> /dev/null
l-wx------ 1 root root 64 août 21 11:09 1 -> /dev/null
l-wx------ 1 root root 64 août 21 11:09 10 -> /var/log/apache2/access.log
lrwx------ 1 root root 64 août 21 11:09 11 -> '/tmp/.ZendSem.TvBF6r (deleted)'
lrwx------ 1 root root 64 août 21 11:09 12 -> 'anon_inode:[eventpoll]'
l-wx------ 1 root root 64 août 21 11:09 2 -> /var/log/apache2/error.log
lrwx------ 1 root root 64 août 21 11:09 3 -> 'socket:[1402717]'
lrwx------ 1 root root 64 août 21 11:09 4 -> 'socket:[1402718]'
lrwx------ 1 root root 64 août 21 11:09 5 -> 'socket:[1402721]'
lrwx------ 1 root root 64 août 21 11:09 6 -> 'socket:[1402722]'
lr-x------ 1 root root 64 août 21 11:09 7 -> 'pipe:[1403430]'
l-wx------ 1 root root 64 août 21 11:09 8 -> 'pipe:[1403430]'
l-wx------ 1 root root 64 août 21 11:09 9 -> /var/log/apache2/other_vhosts_access.log
lsof
/proc permet de gérer la ram du system notamment
sudo lsof -p 14941
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
Output information may be incomplete.
lsof: WARNING: can't stat() fuse file system /run/user/1000/doc
Output information may be incomplete.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
apache2 14941 lgi cwd DIR 259,2 4096 2 /
apache2 14941 lgi rtd DIR 259,2 4096 2 /
apache2 14941 lgi txt REG 259,2 687944 10896646 /usr/sbin/apache2
apache2 14941 lgi mem REG 259,2 282752 6029823 /lib/x86_64-linux-gnu/libnss_systemd.so.2
...
apache2 14941 lgi 0r CHR 1,3 0t0 6 /dev/null
apache2 14941 lgi 1w CHR 1,3 0t0 6 /dev/null
apache2 14941 lgi 2w REG 259,2 1333 393612 /var/log/apache2/error.log
apache2 14941 lgi 3u sock 0,9 0t0 1402717 protocol: TCP
apache2 14941 lgi 4u IPv6 1402718 0t0 TCP *:http (LISTEN)
apache2 14941 lgi 5u sock 0,9 0t0 1402721 protocol: TCP
apache2 14941 lgi 6u IPv6 1402722 0t0 TCP *:https (LISTEN)
apache2 14941 lgi 7r FIFO 0,12 0t0 1403430 pipe
apache2 14941 lgi 8w FIFO 0,12 0t0 1403430 pipe
...
permet de voir par exemple si php a bien chargé une librairie complémentaire : ex php-ldap
modes d'installation d'un OS
- CD/USB/NETINSTALL -> ISO
- PXE -> install via le BIOS sur le réseau au moment du boot (va chercher l'ISO sur le réseau)
- images d'OS préconfigurée
- bootstrap
- image/appliance : os précustomisé au moment du démarrage -> paramétrage via vagrant
vagrant
- utile pour créer des machines d'intégration
- versionner le vagrant file comme pour le dockerfiles
mkdir /opt/maarch/vagrant_test/
vagrant init debian/buster64
vagrant up
vagrant ssh
vagrant ssh-config -> pour voir la conf ssh
demander à Benjamin de nous passer son Vagrantfile former les dev sur ce sujet
démarrage d'un linux
- alimentation
- bios uefi ou mbr (master book record)
- grub -> on peut mettre une image de démarrage dans le bios "splash"
supprimer une partition d'une facon irréversible dd if=/dev/zero of=/dev/sda2 -> rempli le disque de zéro
gestion des disques
fdisk -l fdisk /dev/sdb sfdisk -d /dev/sda -> fait un dump disk de la partition resize2fs pratique si le systeme de fichier est en lvm
gestion des points de montage
mountpoint permet de savoir si un répertoire est lié à un point de montage attention à l'empilement des points de montage (si il y avait déjà des fichiers dans le répertoire ou l'on a monté un nouveau disque)
pour trouver d'où vient un souci d'espace disque alors qu'il y a un point de montage empilé, il faut créer un point de montage ailleurs : mkdir sherlock mount -o bind / sherlock
truncate -s2 -> permet de vider un fichier -> garde que les 2 premiers octets du fichier
preseed kickstart cloudinit
fonctionne avec un fichier de conf pour installer automatiquement un OS à partir d'une ISO -> répond automatiquement aux questions de l'installeur d'OS https://cloudinit.readthedocs.io/en/latest/ -> conf de vm à partir d'images et non pas à partir d'ISO