Atelier 8 - vim

Atelier 06: vim avancé

Objectif

  1. Effectuer efficacement des modifications à des fichiers de configuration Linux
    1. NOTE: efficacement veut dire en moins de X touches, sans utiliser la souris

Exemple

  • Voici un exemple d’exercice réussi:

  • Voici comment l’exercice ci-haut s’est déroulé:

Travail à effectuer

Préambule

Installer configuration minimale de vim

$ wget http://gyoukou.ca/vimrc.dot || echo ERREUR
$ mv vimrc.dot ~/.vimrc

Installer meld (affichage graphique d’un diff)

$ sudo yum install -y epel-release
$ sudo yum install -y meld

Installer logkeys (pour compter les touches)

$ sudo yum groupinstall -y "Development Tools"
$ sudo yum install -y git automake 

$ mkdir ~/tmp
$ cd ~/tmp
$ git clone https://github.com/kernc/logkeys.git
$ cd logkeys
$ ./autogen.sh

$ cd build
$ ../configure
$ make
$ sudo make install || echo ERREUR

Télécharger et décompresser les exercices

# IMPORTANT: cd ~ pour aller de votre répertoire ~

$ cd ~

$ wget http://gyoukou.ca/atelier_06.tar.gz || echo ERREUR
$ tar zxvf atelier_06.tar.gz
$ cd atelier_06

Exercices A: le curseur est déjà placé

IMPORTANT: ne pas éditer directement le fichier

Exercice a01

Fichier de configuration

/etc/default/grub

  • Configuration de grub (outil de démarrage)
  • En particulier: options à donner au noyau Linux au démarrage

Modification à apporter

AVANT:

1GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"

APRÈS:

1GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap quiet"
  • Enveler rhgb désactive le démarrage graphique au profit de l’affichage d’un log
  • (rhgb signifie Red Hat Graphical Boot)

Nombre de touches

Record à battreMaximum acceptable
4 touches9 touches

Pour visualiser avec meld et lancer l’exercice

$ sh afficher_objectif.sh a01
$ sh exercice_vim.sh a01

Exercice a02

Fichier de configuration

/etc/selinux/config

  • selinux est un pare-feu d’application qui permet de contrôler ou limiter un grand nombre d’opérations sur un serveur Linux
  • (selinux veut dire Security Enhanced Linux)

Modification à apporter

AVANT:

1SELINUX=enforcing

APRÈS:

1SELINUX=disabled
  • On déscative selinux (généralement préférable sur une machine usager)

Nombre de touches

Record à battreMaximum acceptable
7 touches25 touches

Pour visualiser avec meld et lancer l’exercice

$ sh afficher_objectif.sh a02
$ sh exercice_vim.sh a02

Exercice a03

Fichier de configuration

/etc/fstab

  1. Liste des partitions utilisées dans le système
  2. Par défaut, chaque partition est montée au démarrage

Modification à apporter

AVANT:

1/dev/mapper/centos-tmp /tmp                     xfs     defaults        0 0

APRÈS:

  1. En retirant une ligne, on efface la définition d’une partition
  2. Le répertoire /tmp devient un sous-répertoire de / (partition centos-root)

Nombre de touches

Record à battreMaximum acceptable
4 touches6 touches

Pour visualiser avec meld et lancer l’exercice

$ sh afficher_objectif.sh a03
$ sh exercice_vim.sh a03

Exercice a04

Fichier de configuration

/etc/locale.conf

  1. Régionalisation du système: langue, date, etc.

Modification à apporter

AVANT:

1LC_TIME=""

APRÈS:

1LC_TIME="fr_CA.UTF-8"
  1. On veut copier fr_CA.UTF-8 entre les " afin de définir aussi le format de date

Nombre de touches

Record à battreMaximum acceptable
8 touches18 touches

Pour visualiser avec meld et lancer l’exercice

$ sh afficher_objectif.sh a04
$ sh exercice_vim.sh a04

Exercice a05

Fichier de configuration

/etc/mime.types

  1. Définition des types de fichier et de leur extensions
  2. NOTE: la commande file affiche le type d’un fichier

Modification à apporter

AVANT:

1application/3gpp-ims+xml
2application/activemessage
3application/andrew-inset

APRÈS:

1application/3gpp-ims+xml			inconnu
2application/activemessage			inconnu
3application/andrew-inset			inconnu
  1. On ajoute l’extension inconnu pour les trois premiers types de fichier
  2. NOTE: il y a trois tabulations entre le type et l’extension

Nombre de touches

Record à battreMaximum acceptable
18 touches40 touches

Pour visualiser avec meld et lancer l’exercice

$ sh afficher_objectif.sh a05
$ sh exercice_vim.sh a05

Exercice a06

Fichier de configuration

/etc/hosts

  1. Associe un nom réseau à son adresse
  2. Pour ces noms, le système ne fera pas de requête DNS
  3. (aussi avantageux pour faire des tests)
  4. NOTE: ce fichier existe aussi en Windows

Modification à apporter

AVANT:

1206.167.24.30    ciboulot.ca
2#172.17.0.30      ciboulot.ca

APRÈS:

1#206.167.24.30    ciboulot.ca
2172.17.0.30      ciboulot.ca
  1. On met en commentaire l’adresse publique de ciboulot.ca
  2. On active l’adresse locale (seulement valide au Collège)

Nombre de touches

Record à battreMaximum acceptable
6 touches12 touches

Pour visualiser avec meld et lancer l’exercice

$ sh afficher_objectif.sh a06
$ sh exercice_vim.sh a06

Exercice a07

Fichier de configuration

/etc/firewalld/direct.xml

  1. Règles de pare-feu directes (écrites à la main)
  2. NOTE: l’autre option est de générer les règles via la commande firewall-cmd

Modification à apporter

AVANT:

1  <rule priority="0" table="filter" ipv="ipv4" chain="FORWARD">-i PRIVE -o PUBLIC -j ACCEPT</rule>
2  <rule priority="0" table="filter" ipv="ipv4" chain="FORWARD">-i PUBLIC -o PRIVE -m state --state RELATED,ESTABLISHED -j ACCEPT</rule>
3  <rule priority="0" table="nat" ipv="ipv4" chain="POSTROUTING">-o PUBLIC -j MASQUERADE</rule>

APRÈS:

1  <rule priority="0" table="filter" ipv="ipv4" chain="FORWARD">-i 192.168.1.4 -o 10.33.50.3 -j ACCEPT</rule>
2  <rule priority="0" table="filter" ipv="ipv4" chain="FORWARD">-i 10.33.50.3 -o 192.168.1.4 -m state --state RELATED,ESTABLISHED -j ACCEPT</rule>
3  <rule priority="0" table="nat" ipv="ipv4" chain="POSTROUTING">-o 10.33.50.3 -j MASQUERADE</rule>
  1. On insère des vraies adresses IP à partir d’un patron
  2. NOTE: ces règles indique au système de faire du NAT

Nombre de touches

Record à battreMaximum acceptable
37 touches120 touches

Pour visualiser avec meld et lancer l’exercice

$ sh afficher_objectif.sh a07
$ sh exercice_vim.sh a07

Exercice a08

Fichier de configuration

~/.bashrc

  1. Personnalisation du SHELL
  2. Fichier lu à chaque ouverture du SHEL

Modification à apporter

AVANT:

APRÈS:

1alias la="ls -la"
  1. On ajoute la ligne pour créer un alias
  2. NOTE: un alias est un raccourci pour une commande fréquemment utilisée.

Nombre de touches

Record à battreMaximum acceptable
12 touches22 touches

Pour visualiser avec meld et lancer l’exercice

$ sh afficher_objectif.sh a08
$ sh exercice_vim.sh a08

Exercice a09

Fichier de configuration

/etc/resolv.conf

  1. Le ou les serveur DNS à utiliser

Modification à apporter

AVANT:

1nameserver 10.33.50.1

APRÈS:

1nameserver 192.168.1.1
  1. On change l’adresse DNS à 192.168.1.1

Nombre de touches

Record à battreMaximum acceptable
14 touches35 touches

Pour visualiser avec meld et lancer l’exercice

$ sh afficher_objectif.sh a09
$ sh exercice_vim.sh a09

Exercice a10

Fichier de configuration

/etc/ssh/sshd_config

  1. Configuration du serveur SSH

Modification à apporter

AVANT:

1#X11Forwarding yes

APRÈS:

1X11Forwarding yes
  1. Certaines options sont déjà inscrites au fichier.
    • Pour les activer, il suffit de les décommenter
  2. Ici, on active la redirection graphique

Nombre de touches

Record à battreMaximum acceptable
3 touches8 touches

Pour visualiser avec meld et lancer l’exercice

$ sh afficher_objectif.sh a10
$ sh exercice_vim.sh a10

Exercices B: le curseur est au début du fichier

IMPORTANT: ne pas éditer directement le fichier

Exercice b01

Fichier de configuration

/etc/ssh/sshd_config

  1. Configuration du serveur SSH

Modification à apporter

AVANT:

1#X11Forwarding yes

APRÈS:

1X11Forwarding yes
  1. Même modification que a10, sauf que cette fois-ci le curseur n’est pas déjà placé

Nombre de touches

Record à battreMaximum acceptable
7 touches18 touches

Pour visualiser avec meld et lancer l’exercice

$ sh afficher_objectif b01
$ sh exercice_vim.sh b01

Exercice b02

Fichier de configuration

/etc/default/grub

  • Configuration de grub (outil de démarrage)
  • En particulier: options à donner au noyau Linux au démarrage

Modification à apporter

AVANT:

1GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"

APRÈS:

1GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap quiet"
  1. Même modification que a01, sauf que le curseur n’est pas déjà placé

Nombre de touches

Record à battreMaximum acceptable
8 touches20 touches

Pour visualiser avec meld et lancer l’exercice

$ sh afficher_objectif.sh b02
$ sh exercice_vim.sh b02

Exercice b03

Fichier de configuration

/etc/services

  1. Liste des services réseau, protocoles et ports

Modification à apporter

AVANT:

 1systat          11/tcp          users
 2systat          11/udp          users
 3daytime         13/tcp
 4daytime         13/udp
 5qotd            17/tcp          quote
 6qotd            17/udp          quote
 7msp             18/tcp                          # message send protocol (historic)
 8msp             18/udp                          # message send protocol (historic)
 9chargen         19/tcp          ttytst source
10chargen         19/udp          ttytst source
11ftp-data        20/tcp

APRÈS:

  1. Effacer les services du ports 11 jusqu’au port 20 (inclusif)

Nombre de touches

Record à battreMaximum acceptable
11 touches28 touches

Pour visualiser avec meld et lancer l’exercice

$ sh afficher_objectif.sh b03
$ sh exercice_vim.sh b03

Exercice b04

Fichier de configuration

/etc/passwd

  1. Information sur les usagers Linux

Modification à apporter

AVANT:

1gnome-initial-setup:x:984:977::/run/gnome-initial-setup/:/sbin/nologin
2tcpdump:x:72:72::/:/sbin/nologin
3avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
4apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin

APRÈS:

  1. On efface les 4 dernières lignes
  2. NOTE: habituellement, ces lignes sont effacées par la commande userdel

Nombre de touches

Record à battreMaximum acceptable
6 touches15 touches

Pour visualiser avec meld et lancer l’exercice

$ sh afficher_objectif.sh b04
$ sh exercice_vim.sh b04

Exercice b05

Fichier de configuration

/etc/group

  1. Liste des groupes d’usagers Linux
  2. Chaque usager est membre de son propre groupe
  3. Un usager membre d’un autre groupe obtient des droits supplémentaires

Modification à apporter

AVANT:

1wheel:x:10:

APRÈS:

1wheel:x:10:mbergeron
  1. On ajoute l’usager mbergeron au groupe wheel
  2. Le groupe wheel est le groupe qui peut faire la commande sudo

Nombre de touches

Record à battreMaximum acceptable
10 touches25 touches

Pour visualiser avec meld et lancer l’exercice

$ sh afficher_objectif.sh b05
$ sh exercice_vim.sh b05

Après la remise

Restaurer votre configuration de vim (s’il y a lieu)

$ mv ~/.vimrc.bak ~/.vimrc