Vous êtes sur la page 1sur 54

COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.

COM

I. Configuration DNS ............................................................................................................. 3


1. Fichier de Configuration DNS PRIMAIRE : ..................................................................... 3
2. Fichier de Zone Directe.................................................................................................. 3
3. Ficher de Zone Secondaire ............................................................................................ 4
4. Ficher de configuration DNS secondaire : ..................................................................... 4
5. Fichier Resolv.conf......................................................................................................... 4
6. Videz la cache DNS : ...................................................................................................... 4
7. Définir l’ordre de résolution dans le fichier host.conf .................................................. 4
8. Afficher tous les enregistrements du serveur bind. ...................................................... 5
II. Configuration de la carte Reseau .................................................................................... 10
III. Configuration d’un serveur DHCP :.............................................................................. 11
IV. Configuration d’un serveur telnet ............................................................................... 13
V. Configuration d’un serveur SAMBA................................................................................. 14
VI. Configuration d’un serveur SSH :................................................................................ 16
VII. Configuration d’un serveur VPN .................................................................................. 18
VIII. Configuration d’un serveur NFS .................................................................................. 25
1. Installation de NFS ....................................................................................................... 25
2. Configuration de NFS coté serveur.............................................................................. 25
3. Configuration de NFS coté client ................................................................................. 25

WWW.COURSNET.COM 1
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

IX. Configuration d’un serveur IPTABLE............................................................................ 26


1. La table filter.................................................................................................................... 26
2. Configuration du pare-feu ............................................................................................... 26
X. Configuration d’un serveur APPATCH ............................................................................. 29
1. installer le paquage :...................................................................................................... 29
2. configuration APPATCH ................................................................................................... 29
3. Démarrage de http : ........................................................................................................ 29
4. Accéder au serveur http .................................................................................................. 29
5. Sécuriser Apache avec TLS (SSL) ...................................................................................... 29
XI. Configuration d’un serveur FTP ................................................................................... 30
XII. Configuration d’un serveur LDAP ................................................................................ 31
XIII. SCRIPT LINUX ............................................................................................................ 37
Script 1 ................................................................................................................................ 40
Script 2 : ............................................................................................................................... 41
Script 3 : ............................................................................................................................... 42
Script 4 : ............................................................................................................................... 42
Script 5 : (Fichier accessible en lecture ) ............................................................................ 43
Script 6 : (argument et paramètres ) .................................................................................. 43
Script 7 : Nombre de processus .......................................................................................... 43
Script 8 : (Les Jours > La date ) ............................................................................................ 44
Script 9: (Argument et paramètres ) ................................................................................... 44
Script 10 : (Argument et paramètres ) ................................................................................ 45
Script 11 : chaine de caractére « oui » ................................................................................ 45
Script 12 : basname et $ home ........................................................................................... 45
Script 13 : N° de la commande + PATH................................................................................ 45
Script 14 : (Comparaison des arguments ) .......................................................................... 46
Script 15 : Copier Fichier..................................................................................................... 47
Script 16 : 2 Nbr (+-*/) avec while ...................................................................................... 47
Script 17 : Factorielle d’un argument ................................................................................. 47
Script 18 : PGCD d’un argument ........................................................................................ 48
Script 19 : Argument des noms de fichiers ........................................................................ 48
Script 20 : Mathématique .................................................................................................. 49
Script 21 : Jeter la poubelle –déplacer-vider. ...................................................................... 49
Script 22: Argument – Fichier exécutable . ......................................................................... 50

WWW.COURSNET.COM 2
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

Script 23: jour/mois > Case .............................................................................................. 51


Script 24: Fichier accessible en écriture ........................................................................... 51
Script 25: Renommer les fichier d’un rép ......................................................................... 51
Script 26 : Script Pratique 2013 ........................................................................................... 52
# !/bin/bash ................................................................................................................ 52
# !/bin/bash ................................................................................................................ 52
Cat/etc/passwd | grep 500 > /etc/test.txt ...................................... 52
XIV. Quelque Commandes Linux......................................................................................... 52

I. Configuration DNS
1. Fichier de Configuration DNS PRIMAIRE :
Options {
listen-on port 53;{127.0.0.1;192.168.1.10 ;192.168.1.20;};
allow-query{127.0.0.1 ;192.168.1/24;}

Zone “ ista.ma “IN {


Type master ;
File “directe.ma.db » ;
Allow-update { none ;} ;
Allow-transfer {192.168.1.20;} ;}

Zone “1.168.192.in-addr.arpa “ IN {
Type master;
File “ inverse.ma.db”;
Allow-transfer{192.168.1.20;};
Allow-update { none ;} ;

2. Fichier de Zone Directe


@ IN SOA tri.ista.ma. root.ista.ma. (
19990811 ; Serial number
3600 ; 1 hour refresh
300 ; 5 minutes retry
172800 ; 2 days expiry
43200 ) ; 12 hours minimum

@ NS tri.ista.ma.
tri.ista.ma. IN A 192.168.1.1
gopher IN CNAME mail.mydomain.name.
ftp IN CNAME mail.mydomain.name.

WWW.COURSNET.COM 3
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

www IN CNAME mail.mydomain.name.


mail.net. IN MX 10 user.mail.net.
superathlon IN HINFO "AMD Athlon 1Ghz" "Linux Mandrake 8.1"
alien TXT "Alien Computer - ordinateur invite"
www IN CNAME superathlon
imap IN CNAME superathlon
pop IN CNAME superathlon
smtp IN CNAME superathlon
ftp IN CNAME superathlon

_sip._tcp.example.com. 86400 IN SRV 0 33 5060


serveursip1.example.com.

3. Ficher de Zone Secondaire


@ IN SOA tri.ista.ma. root.ista.ma. (
19990811 ; Serial number
3600 ; 1 hour refresh
300 ; 5 minutes retry
172800 ; 2 days expiry
43200 ) ; 12 hours minimum

@ IN NS tri.ista.ma.
1 IN PTR tri.ista.ma.

4. Ficher de configuration DNS secondaire :


Options {
listen-on port 53;{127.0.0.1;192.168.1.10 ;192.168.1.20;};
allow-query{127.0.0.1 ;192.168.1/24;}

Zone “ ista.ma.db “IN {


Type slave ;
masters {192.168.1.1;} ;
File “direct.ma.db » ;};

Zone “1.168.192.in-addr.arpa “ IN
Type slave;
masters{192.168.1.1;};
File “ inverse.ma.db”;};

5. Fichier Resolv.conf
search axius-1.fr
nameserver 172.16.11.1

6. Videz la cache DNS :


/etc/rc.d/init.d/nscd restart

7. Définir l’ordre de résolution dans le fichier host.conf


Cela précise au résolveur de regarder d’abord les entrées du fichier
/etc/hosts et ensuite d’utiliser le serveur précisé dans resolv.conf.

WWW.COURSNET.COM 4
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

8. Afficher tous les enregistrements du serveur bind.

La commande NSlookup –query=any isgi.ma permet d’afficher tous les


enregistrements du serveur bind.

9. Configuration de rndc :

BIND contient un utilitaire appelé rndc qui permet d'utiliser des lignes de
commande pour administrer le démon named à partir de l'hôte local ou d'un
hôte distant .

Pour que rndc puisse se connecter à un service named, une déclaration controls
doit être présente dans le fichier /etc/named.conf du serveur BIND. La
déclaration controls montrée dans l'exemple qui suit, permet à rndc de se
connecter à partir d'un hôte local.
controls {
inet 127.0.0.1 allow { localhost; } keys { <nom-clé>; };

WWW.COURSNET.COM 5
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

};
Cette déclaration indique à named de se mettre à l'écoute du port TCP 953 par
défaut de l'adresse inversée et d'autoriser les commandes rndc provenant de
l'hôte local, si la clé adéquate est présentée. Le <nom-clé> fait référence à la
déclaration key, qui se trouve aussi dans le fichier /etc/named.conf. L'exemple
suivant illustre une déclaration key.
key "<nom-clé>" {
algorithm hmac-md5;
secret "<valeur-clé>";
};
Dans ce cas, la <valeur-clé> est une clé HMAC-MD5. Afin de créer des clés
HMAC-MD5, utilisez la commande suivante :
dnssec-keygen -a hmac-md5 -b <longueur-bits> -n HOST <nom-fichier-
clé>

Configuration de /etc/rndc.conf

La déclaration key représente la déclaration la plus importante contenue dans


/etc/rndc.conf.
key "<nom-clé>" {
algorithm hmac-md5;
secret "<valeur-clé>";
};
Pour faire correspondre les clés spécifiées dans le fichier /etc/named.conf du
serveur cible, ajoutez les lignes suivantes au fichier /etc/rndc.conf.
Options {
default-server localhost;
default-key "<nom-clé>";
};

La ligne de commande de rndc


# rndc <options> <commande> <options-commande>

Option :

Halt : Arrêt du service named


Querylog :Logging de toutes les requêtes
Refresh :Rafraichissement de la base de données
Reload : Recharge les fichiers de zone mais conserve toutes les réponses
précédemment placées en cache.
Stats : Evacue les statistiques courante de named vers le fichier
/var/named/named.stats

WWW.COURSNET.COM 6
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

Stop : Arrête le serveur de manière nette, en enregistrant préalablement


toute mise à jour dynamique et donnée Incremental Zone Transfers (IXFR).
-c <fichier- : Permet de selectionner le fichier de configuration a utiliser
-p <numéro-port> : Permet de spécifier le numéro de port à utiliser
-s <serveur> : Permet d'envoyer les instructions à un serveur spécifique
-y <nom-clé> :Spécifie une clé autre

rndc: connection issue (RESOLVED)

rndc status
rndc: connection to remote host closed
This may indicate that
* the remote server is using an older version of the
command protocol,
* this host is not authorized to connect,
* the clocks are not synchronized, or
* the key is invalid

Verifier que /etc/rndc.conf et /etc/bind/rndc.key . en mm clé


netstat -atpn | grep -E ":953|:53"

pkill named
pkill lwresd
/etc/init.d/bind9 start

10. Mise à jour du DNS via le serveur DHCP


*- Modifications à apporter a /etc/named.conf :
zone "ista.ma" {
type master;
file "/var/named/ ista.zone";
allow-update { 127.0.0.1; }; };
Zone"10.168.192.in-addr.arpa" {
type master;
file "/var/named/reverse.rev";
allow-update { 127.0.0.1; }; };

*- Modifications à apporter a /etc/named.conf :

WWW.COURSNET.COM 7
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

ddns-update-style interim; # mise à jour autorisée


ddns-update on; # mise à jour par le serveur DHCP forcée ignore
client-updates; # la mise à jour des IP fixes forcée update-
static-leases on ;

# on définit également quel DNS doit être mis à jour pour ces
zones :
zon ista.ma. {
primary 127.0.0.1; }

zone 10.168.192.in-addr.arpa. {
primary 127.0.0.1; }

*- Modifications pour les clients Linux :


Ajoutez la ligne suivante dans /etc/dhclient.conf :

send host-name "lenomdelamachine";

*- Cas d'un serveur de cache :


Pour ce type de serveur, un fichier /etc/named.conf suffit :

11. Commande pour vérifier la configuration DNS :


#named-chekconf /etc/named.conf
#named-checkzone ista.ma /var/named/zone.directe ‘

#named-checkzone ista.ma /var/named/zone.rev

WWW.COURSNET.COM 8
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

12. CHEMIN des FICHIERS et Leurs Contenues :

/etc/hosts

Ce fichier contient toutes les adresses IP connues de l’ordinateur local. Il


permet de résoudre la correspondance entre les noms des ordinateurs et
leurs adresses.
# /etc/hosts
# IP Ordinateur Alias
127.0.0.1 localhost
205.1.1.10 kermit.is-a-geek.net kermit
205.1.1.15 gonzo.is-a-geek.net gonzo www
205.1.2.15 tulipe.is-a-geek.net tulipe

/etc/networks

Ce fichier permet de résoudre la correspondance entre les noms des réseaux


et les adresses réseau.
# /etc/networks
127.0.0.0 loopback
205.1.1.0 is-a-geek.net
205.1.2.0 is-a-slow.net

/etc/hosts.conf

Ce fichier contient des paramètres nécessaires pour le pilotage de la


bibliothèque de résolution
des noms (Resolver). Lorsqu’un ordinateur est appelé par son nom, la
bibliothèque de résolution
se charge de résoudre le nom de manière correcte pour l’environnement de
l’ordinateur. Selon le
cas, la résolution du nom sera réalisée à partir du fichier /etc/hosts de
l’ordinateur local, ou en
interrogeant un serveur de nom (Name Server). L’application qui est à
l’origine de la résolution
du nom n’est pas concernée par les différents processus. C’est pourquoi le
processus de
résolution des noms est enregistré dans une bibliothèque externe. L’un des
fichiers de configuration de la bibliothèque de résolution est /etc/hosts.conf.

# /etc/hosts.conf
#
order hosts, bind
multi on
nosproof on alert on/off
trim ista.ma

Order hosts , bind : Déterminationde l’ordre dans lequel les services de


résolution de noms doivent être consultés. hosts analyse
du fichier /etc/hosts de l’ordinateur local.bind Interrogation

WWW.COURSNET.COM 9
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

d’un serveur de noms (DNS).


Multi on : Un ordinateur enregistré dans le fichier /etc/hosts peut
disposer de plusieurs adresses IP .
nosproof on alert on/off : Protection contre le procédé Adress-Spoofing. Si le
paramètre alert est activé, les attaques de ce type sont
enregistrées dans un journal.
trim <Nom_de_domaine>

/etc/sysconfig/network

Le fichier /etc/sysconfig/network précise les informations de routage et le


nom de l’hôte pour toutes les interfaces réseau.
NETWORKING=yes
HOSTNAME=machine
GATEWAY=192.168.100.1

II. Configuration de la carte Reseau

Le Chemin : /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
ONBOOT=yes #Ce périphérique devrait être activé au démarrage
BOOTPROTO=static #none/dhcp/bootp
IPADDR=192.168.1.10
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=192.168.1.100
NETWORK=208.164.186.0
BROADCAST=192.168.1.255
USERCTL=no #Les utilisateurs autres que le super-utilisateur sont
autorisés à contrôler ce périphérique
Gérer la configuration dans le fichier interfaces :

# cat /etc/network/interfaces

# configuration de l’interface lo (obligatoire)


auto lo
iface lo inet loopback

# configuration de l’interface eth0


auto eth0
iface eth0 inet static
address 192.168.0.2
netmask 255.255.255.0

WWW.COURSNET.COM 10
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

#POUR DHCP
auto lo eth0
iface lo inet loopback
iface eth0 inet dhcp
#Pour une station WI-FI
auto lo
iface lo inet loopback
# l’interface eth1 correspond ici à la carte wifi
auto eth1
iface eth1 inet dhcp
wireless-essid mon_essid
wireless-mode managed
wireless-key AF32852BE7A39B522BG60C4353

III. Configuration d’un serveur DHCP :


ddns-domainname "ista.ma"; Nom du domaine DNS
ddns-update-style none; style de mise à jour DNS
ddns-updates off; Mise à jour non autorisée
max-lease-time 604800; Durée de vie maximum du bail de 7J
ignore client-updates; màjr Forcé par le serv DHCP
update-static-leases on; Forçage de la mise à jour
allow unknown-clients; Les clients seront tous reconnus sur le
réseau

subnet 192.168.0.0 netmask 255.255.255.0 {


option routers 192.168.0.1;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option domain-name-servers 192.168.0.1;
option domain-name "ista.ma.";
range 192.168.0.1 192.168.0.254 ;
default-lease-time 21600 ;
max-lease-time 43200 ;

# Reservation
host pc1 {
hardware ethernet 00:20:18:B8:A9:97;
fixed-address 192.168.0.15;
filename "/lts/vmlinuz-2.4.26-ltsp-2";
}
Lancer la service dhcp au démmarage : chkconfig dhcpd on

Nous allons par exemple déclarer une option serveur_ftp ayant pour code
d'option 161 et une autre chemin_ftp avec le code 162.
# Définition des options
option serveur_ftp code 161 = string ;
option chemin_ftp code 162 = string
option serveur_ftp "10.1.1.12" ;
option chemin_ftp "/pub/updates" ;

WWW.COURSNET.COM 11
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

Déclaration d’un réseau partagé


shared-network name {
option domain-name "test.redhat.com";
option domain-name-servers ns1.redhat.com, ns2.redhat.com;
option routers 192.168.1.254;
more parameters for EXAMPLE shared-network
subnet 192.168.1.0 netmask 255.255.255.0 {
parameters for subnet
range 192.168.1.1 192.168.1.31;
}
subnet 192.168.1.32 netmask 255.255.255.0 {
parameters for subnet
range 192.168.1.33 192.168.1.63;}}

Déclaration de groupe
group {
option routers 192.168.1.254;
option subnet-mask 255.255.255.0;

option domain-name "example.com";


option domain-name-servers 192.168.1.1;

option time-offset -18000; # Eastern Standard


Time

host apex {
option host-name "apex.example.com";
hardware ethernet 00:A0:78:8E:9E:AA;
fixed-address 192.168.1.4;
}

host raleigh {
option host-name "raleigh.example.com";
hardware ethernet 00:A1:DD:74:C3:F2;
fixed-address 192.168.1.6; }}

Agent de Relais DHCP :

Chemin : /etc/sysconfig/dhcrelay

Démarrer l’agent de relais dhcp : #service dhcrelay start

Client DHCP LINUX :


[root@localhost user]# dhclient Demander le bail DHCP
root@localhost user]# dhclient -r Libéré le bail DHCP

Fichier dhcpd.leases

[root@localhost MAROUANE]# vi /etc/dhcpd.leases


WWW.COURSNET.COM 12
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

lease 192.168.0.10 { starts 1 1999/05/20 22:15:21; ends 1 1999/05/20


22:15:38; hardware ethernet 00:40:21:3c:f2:dd; uid
01:00:40:21:3c:f2:dd; client-hostname "Client1"; }

Vérifier l’état de l’attribution d'@ IP :


[root@localhost MAROUANE]# /var/lib/dhcp/dhcpd.leases

IV. Configuration d’un serveur telnet

1. Installation TelNet :
Rpm –i telnet-server-0.17-31.EL4.3.i386.rpm

2. Configuration TelNet:

>Chemin de fichier : /etc/xinetd.d/telnet

service telnet
{
disable = no
instances = 60
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
no_access = 10.0.1.0/24
log_on_success += PID HOST EXIT
access_times = 09:45-16:15}

instances : Détermine le nombre maximal de requêtes qu'un service xinetd peut gérer à un
moment donné .
log_on_failure - Configure xinetd de façon à ce qu'il effectue la journalisation si la connexion
échoue ou si elle n'est pas autorisée.
includedir /etc/xinetd.d/ - Inclut des options stipulées dans les fichiers de configuration
spécifiques aux services qui se trouvent dans le répertoire /etc/xinetd.d/ .

WWW.COURSNET.COM 13
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

log_on_success - Configure xinetd de façon à ce qu'il effectue la journalisation si la


connexion est établie avec succès.

>ServiceXinetd start
>#user1# telnet -L user2 -a localhost

TCP WRAPPER
 L'administrateur réseau va pouvoir utiliser 2 fichiers: /etc/hosts.allow et
/etc/hosts.deny pour filtrer les accès à sa machine.

• /etc/hosts.deny: on indique dans ce fichier les services et les hôtes pour


lesquels l'accès est interdit.

• /etc/hosts.allow: on indique dans ce fichier les services et les hôtes pour


lesquels l'accès est autorisé.

# Fichier /etc/hosts.deny
# interdit tous les accès ftp à la machine
in.ftpd:ALL

# Fichier /etc/hosts.allow
# autorise les accès ftp venant de cli1
in.ftpd :cli1.archinet.edu

Extrait de /etc/syslog.conf:
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages

# The authpriv file has restricted access.


authpriv.* /var/log/auth.log
auth,authpriv.none; /var/log/syslog

 Extrait de /var/log/syslog
Feb 3 18:02:52 ns1 ftpd[1051]: FTP session closed
Feb 3 18:03:31 ns1 syslogd 1.3-3: restart.
Feb 3 18:07:34 ns1 in.ftpd[1057]: refused connect from
cli1.archinet.edu
Feb 3 18:07:46 ns1 in.ftpd[1058]: connect from ns1.archinet.edu
Feb 3 18:10:57 ns1 login[1063]: LOGIN ON ttyp3 BY mlx FROM puce

V. Configuration d’un serveur SAMBA

Fichier de configuration :
/etc/smb.conf
Création d’un compte SAMBA !

WWW.COURSNET.COM 14
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

#smbpasswd -a MonCompte password


Visualiser les fichier partagés d’un serveur samba
smbclient -L //@ip-du-serveur -U user
[homes]
# permet de partager le répertoire personnel de chaque utilisateur
comment = Home Directories
browseable = no
writable = yes
create mask = 0755
directory mask = 0755
[partage]
comment = Ressource partagée
#le répertoire /home/partage doit exister dans l'arborescence linux
path=/home/partage
browseable = yes
writable = yes
create mask = 0777
directory mask = 0777

[global]

# même nom de groupe que celui sous Windows (Voisinage


réseau)
workgroup = nom de groupe
guest account = nobody ; # accès multi-utilisateur
share modes = yes ;
# Adresse IP de la carte réseau du serveur
# et masque de sous-réseau
interfaces = 10.194.2.100/255.255.255.0
# emplacement du fichier printcap (imprimantes sur le
serveur Linux)
printcap = /etc/printcap
# partage de toutes les imprimantes définies dans printcap
load printers = yes
# fichier journal de Samba
log level = 1
log file = /var/log/samba/log.%m
# mode de sécurité : (user / share / server)
security = user
# restreindre l'accès a certains sous-réseaux
hosts allow = 15.144. 127.
# empecher l'accès à certaines machines
hosts allow = 15.144. EXCEPT 155.144.179.
[Commerce]
comment = Patrage Commerce
path=/var/Commerce
browseable = yes # possibilité d'écrire sur la ressourc

writable = yes
create mask = 0777

directory mask = 0777


valid users = toto, webmaster
public = no

WWW.COURSNET.COM 15
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

-Avec l’option public = no ou les options valid users =, les utilisateurs


doivent s’authentifier lors de la connexion aux ressources partagées.
-Seuls les répertoires avec l’option browsable = yes apparaissent dans
l’interface de l’explorateur Windows.

-Lancer Samba : /etc/init.d/samba start


-Créer un groupe sambausers avec le RID 513 pour être en conformité
avec la terminologie Windows :
. #groupadd -g 513 sambausers // (RID=GID=513).

VI. Configuration d’un serveur


SSH :
1. Installation de SSH
Rpm –i openssh-server-3.9p1-8.RHEL4.12.i386.rpm
2. Configuration de SSH
$ Cd /etc/ssh
$ Vi sshd_config

WWW.COURSNET.COM 16
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

$ Vi sshd_config

3. Connexion Client de SSH sous Linux


Ssh user@ip-address-de-serveur-SSH

4. Génaration des clés RSA et DSA

-Lancer la commande ssh-keygen -t dsa. Cette commande permet de


générer une clé DSA par défaut de 1024 bits. La clé privée sera stockée
dans ~/.ssh/id_dsa et la clé publique dans ~/.ssh/id_dsa.pub.

ssh-keygen -t rsa Si vous voulez générer une clé RSA2.

- Pour modifier votre "passphrase" sur une clé privée DSA, utilisez la
commande : ssh-keygen -p -f ~/.ssh/id_dsa

WWW.COURSNET.COM 17
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

- La clé publique, doit être copiée sur le serveur distant dans


~/.ssh/authorized_keys. La clé privée reste sur votre poste client.

5. L’agent SSH
L'utilisation d'un agent, évite d'avoir à retaper la "passphrase" à chaque
fois que l'on sollicite l'utilisation de la clé privée. Un agent stocke en
mémoire les clés privées. Voici comment activer un agent :
-Lancer la commande ssh-agent
-La commande met sur la sortie standard des variables
environnement à déclarer et à exporter. Faites le.
-exportez les clés. Cela consiste à les mettre dans le cache de
l'agent avec la commande ssh-add. La commande
demandera la "passphrase"..
Pour supprimer une clé (ici RSA) de l'agent, utilisez l'option "-d"
$ ssh-add -d ~/.ssh/id_rsa

VII. Configuration d’un serveur VPN


1. Installation VPN :

2. Génération des certificats d'authentification

Nous allons sur ce point générer les certificats et les clés qui vont
permettre aux clients et au serveur de s'authentifier mutuellement
de telle sorte que personne d'autres que vous ne puisse se connecter
au VPN.
Pour ça nous allons se déplacer dans le répertoire easy-rsa
d'openvpn :

$ cd /usr/share/openvpn/easy-rsa/

WWW.COURSNET.COM 18
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

Voilà nous avons les outils nécessaires qui vont nous permettre de
générer les clés et les certificats pour les clients et serveur.
Première chose, nous allons modifier les valeurs des variables
d'environnement afin de ne pas avoir à répéter les renseignements à
fournir à la génération des clés, Pour cela nous allons éditer le fichier «
vars » ci-dessus :
Voici la liste des paramètres par défaut à modifier, ils sont généralement
en bas du fichier sous fedora .
export KEY_COUNTRY="US"
export KEY_PROVINCE="CA"
export KEY_CITY="SanFrancisco"
export KEY_ORG="Fort-Funston"
export KEY_EMAIL="me@myhost.mydomain"

Après sauvegarde du fichier, relancer la prise en charge de ces nouvelles


variables :

WWW.COURSNET.COM 19
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

Là il m'a créé un répertoire « keys » qui contiendra toutes nos clés.


Vous pourrez vérifier qu'à présent ce répertoire ne contient que deux
fichiers crées par le script build-all (index.txt et serial qui sont important
pour la génération des certificats server et clients).

3. Création des certificats

WWW.COURSNET.COM 20
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

Premièrement nous allons faire une autorité de certification.

Voilà vous remarquerez que vous aviez déjà les valeurs mémorisées dans
le fichier « vars ».
Il ne s'agira que de renseigner le nom de la CA (Certification Authority),
pour les valeurs entre crochets appuyé sur Entrée et il prendra la valeur
par défaut.
A présent nous venons de créer l'autorité de certification qui est dans le
répertoire « keys ». Ce certificat est le certificat racine qui va ensuite nous
permettre de créer le certificat serveur et les certificats clients.
Donc la partie publique de ce certificat devrait être déposé au niveau des
clients pour qu'ils puissent s'authentifier au niveau du serveur pour qu'ils
reconnaissent tous les certificats qui seront créés à partir de cette autorité.
Là nous allons créer le certificat pour le serveur (cette machine même que
je dénomme bonal).
Ce certificat nous allons l'appeler « srvrdimi », nous allons le signer nous-
même et ensuite, nous allons le générer comme va le montrer cette
manipulation.
Nous n'allons pas donner un challenge password ni optional .....Pour la
création des certificats.

WWW.COURSNET.COM 21
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

Excellent nous voyons que la CA a été généré, la partie certificat server a


été générée de même que la partie certificat client.
A présent il ne nous reste qu'à créer les paramètres Diffie-helmann :
Diffie-Hellma (D-H) est un algorithme à clé publique utilisé pour assurer
un partage de clé secrètes

Très bien, là nous avons l'ensemble des informations cryptographiques


dont nous avions besoin pour configurer notre VPN.

4. Configuration et lancement du serveur

Il nous reste à récupérer le fichier de configuration du serveur «


server.conf » et le mettre dans lerépertoire /usr/share/openvpn/easy-
rsa/2.0/keys/
WWW.COURSNET.COM 22
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

Alors chez moi il est par défaut installé dans le répertoire


/usr/share/doc/openvpn-2.1/sample-config-files

Très bien là nous allons éditer ce fichier pour y positionner les


variables qui vont nous intéresser pour la mise en place du vpn

On édite le fichier server.conf

WWW.COURSNET.COM 23
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

On sauvegarde et on lance le service par le script contenu dans /etc/init.d/

Parfait tout marche comme on veut c’est vraiment informatique ça

Excellent openvpn est au niveau des sockets démarrés.

Il ne reste plus qu'à s'occuper des clients sous Windows maintenant.

A noter également que nous pouvons avoir des clients Linux et c'est
pratiquement la même manipulation.

WWW.COURSNET.COM 24
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

VIII. Configuration d’un serveur NFS


1. Installation de NFS
Sur Fedora, normalement tous les utilitaires permettant la mise en place
d'un réseau via nfs sont installés. On peut le vérifier avec la commande :
$ rpm -qi nfs-utils

Si vous obtenez en retour un message du type : « le paquetage nfs-utils


n'est pas installé », vous pouvez installer nfs-utils avec la commande :
# yum install nfs-utils

2. Configuration de NFS coté serveur


Vous devez éditer le fichier /etc/exports, et y ajouter une ligne du type :

/chemin/dossier-de-partage @ip-de-client(rw) , @ipde-client2


exemple : /root/partage 192.168.1.10(rw) ….

3. Configuration de NFS coté client


En premier lieu il vous faut créer un dossier qui va contenir le partage
dans /mnt ou /media par exemple. Ensuite vous pouvez monter le dossier
directement avec la commande :
# mount -t nfs @_ip_serveur:/chemin/vers/partage /mnt/partage

Il est aussi possible de le monter à chaque démarrage, pour celà il suffit


d'éditer le fichier /etc/fstab, et d'y ajouter une ligne du type :
@_ip_serveur:/chemin/vers/partage /mnt/partage nfs
auto,user,rw 0 0

Une fois cette modification faite, vous pourrez monter toutes les
partitions contenues dans fstab en tapant la commande :
# mount -a

Vous pouvez utiliser showmount pour lister les informations de montage


d'un server NFS :
$ showmount -e <IP_du_serveur_NFS>

WWW.COURSNET.COM 25
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

Si vous souhaitez démarrer le serveur NFS au démarrage, utilisez :


# chkconfig nfs on
# chkconfig rpcbind on

IX. Configuration d’un serveur IPTABLE

1. La table filter

Iptables fonctionne selon un système de tables, ces tables sont composées


de chaîne. Dans le cadre de la configuration et de l'utilisation de Netfilter
comme pare-feu, c'est la table Filter qui est utile, elle permet de filtrer les
paquets réseaux. Tout paquet entrant est analysé afin de déterminer
notamment sa source et sa destination.

Elle est composée de trois sortes de chaîne :

 INPUT : Permetd'analyser les paquets entrants. Si le paquet est


adressé au poste, il est confronté au filtre INPUT.

 FORWARD : Permet d'analyser et d'autoriser les trames à passer d'une


interface à une autre, seulement dans le cadre d'une interface réseau
servant de passerelle.

 OUTPUT : Permet d'analyser les paquets sortants. Si le paquet sort du


poste, il passera par la chaîne OUTPUT.

À cette table peut être affecté quatre politiques (policy) : DROP, LOG,
ACCEPT et REJECT.

2. Configuration du pare-feu

En tapant « sudo iptables -L », une liste de vos règles actuelles est


affichée. Si vous (ou un logiciel) n'avez encore jamais touché à iptables,
les chaines sont vides, et vous devriez voir :
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)


target prot opt source destination

Chain OUTPUT (policy ACCEPT)

WWW.COURSNET.COM 26
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

target prot opt source destination

 Si vous avez déjà modifié la configuration et que vous voulez la


réinitialiser, tapez :

sudo iptables -F
sudo iptables -X

 Autoriser le trafic entrant d'une connexion déjà établie

Pour permettre à une connexion déjà ouverte de recevoir du trafic :

# iptables -A INPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT

 Si vous utilisez une ancienne version de iptables la commande ci-dessus


peut ne pas fonctionner, dans ce cas utilisez celle-ci :

# iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT

 Permettre le trafic entrant sur un port spécifique

Pour permettre le trafic entrant sur le port 22 (traditionnellement utilisé


par SSH, vous devrez indiquer à iptables tout le trafic TCP sur le port 22
de votre adaptateur réseau.
# iptables -A INPUT -p tcp -i eth0 --dport ssh -j ACCEPT

 Cette commande ajoute une règle (-A) à la chaine contrôlant le trafic


entrant INPUT, pour autoriser le trafic (-j ACCEPT), vers l'interface (-i)
eth0 et à destination du port (--dport) SSH (on aurait pu mettre 22).

# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state
RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp
dpt:ssh

 Maintenant, acceptons tout le trafic web (www) entrant :

# iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT

 Bloquer le trafic

# iptables -P INPUT DROP


# iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere state
RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp
dpt:ssh

WWW.COURSNET.COM 27
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

ACCEPT tcp -- anywhere anywhere tcp


dpt:www

 Autoriser le trafic local

Un p'tit problème de notre configuration est que même l'interface locale


(loopback) est bloquée. Nous pourrions avoir écrit les règles de rejet
seulement pour eth0 en spécifiant -i eth0, mais nous pouvons aussi
ajouter une règle pour loopback. Par exemple, nous pourrions l'insérer en
2e position :
# iptables -I INPUT 2 -i lo -j ACCEPT

 Pour lister les règles plus en détail.

# iptables -L -v -n

 Autoriser les requêtes ICMP (ping)

# On autorise le PC a faire des pings sur des IP externes et à


répondre aux requêtes "ping"
iptables -A OUTPUT -p icmp -m conntrack --ctstate
NEW,ESTABLISHED,RELATED -j ACCEPT

# Si vous utilisez une ancienne version de iptables la commande ci-


dessus peut ne pas fonctionner, dans ce cas entrez la commande
suivante :
iptables -A OUTPUT -p icmp -m state --state NEW,ESTABLISHED,RELATED
-j ACCEPT

# On autorise les pings


iptables -A INPUT -p icmp -j ACCEPT

 Supprimer une règle

iptables -L --line-numbers
Chain INPUT (policy DROP)
num target prot opt source destination
1 DROP icmp -- anywhere anywhere
2 ACCEPT tcp -- anywhere anywhere
tcp dpt:ssh
3 ACCEPT tcp -- anywhere anywhere
tcp dpt:www
4 ACCEPT tcp -- anywhere anywhere
tcp dpt:webmin

Chain FORWARD (policy ACCEPT)


num target prot opt source destination

Chain OUTPUT (policy ACCEPT)


num target prot opt source destination
1 ACCEPT tcp -- anywhere anywhere
tcp spt:www
2 ACCEPT tcp -- anywhere anywhere
tcp spt:12345

WWW.COURSNET.COM 28
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

 Sauvegarder vos règles

sudo -s iptables-save -c

X. Configuration d’un serveur APPATCH

1. installer le paquage :
yum install httpd

2. configuration APPATCH
cd /var/www/html

creel une page HTML

nano /etc/conf/httpd.conf

3. Démarrage de http :
désactiver le parfeu

démmarer la carte réseau: service network retstart

démarrer le service : service httpd restart ou cd /etc/rc.d/init.d/httpd


restart

4. Accéder au serveur http


trois maniéres pour accéder au serveur Apache :

http:\\localhost\ - http:\\172.0.0.1 - l'adresse su serveur depuis le


naviguateur

5. Sécuriser Apache avec TLS (SSL)


Nous allons ensuite nous placer dans le répertoire d'Apache 2
(/etc/apache2) pour générer lecertificat au bon endroit :
#cd /etc/apache2
Création de la clé privée RSA :

WWW.COURSNET.COM 29
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

Cette commande va vous permettre de générer une clé RSA :


# openssl genrsa -out server.key 1024
A partir de la clé de tout à l'heure, vous allez pouvoir créer un certificat
générique pour votre organisme :
#openssl req -new -key server.key -out server.csr
Enfin, vous allez pouvoir créer le certificat utilisable par les visiteurs au
format x509 pour une certaine durée (dans cet exemple 1 an) :
#openssl x509 -req -days 365 -in server.csr -signkey server.key -
outserver.crt

Vérifiez dans le fichier /etc/apache2/ports.conf si il existe le port 443


pour le module SSL. Si ce n'est pas le cas, vous pouvez ajouter une ligne :
Listen 443
Après la création de site web , ouvrez le dans le navigateur en prenant à
considération le protocole HTTPS , Vous devriez avoir un avertissement
car ce certificat est auto-signé. Vérifiez le contenu du
certificat. Vérifiez par une analyse de trame que les informations ne sont
pas lisibles.

XI. Configuration d’un serveur FTP


Fichier de configuration :

# cd /etc/vsftpd/vsftpd.conf
annonymous-enable=YES | no (no pour se connecter avec un login et
m.d.p)
local_enable=YES
write_enable=YES
local_umask=022 les droits
ftpd_banner=Bienvenue

# service vsftpd start

# useradd client-1

# passwd client-1

# FTP { @ip de serveur FTP } sous dos ou taper @ ip de serveur FTP


sur le navigateur

WWW.COURSNET.COM 30
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

XII. Configuration d’un serveur LDAP


1. Installation des packages :
Yum install nss_ldap
Yum install openldap
Yum install openldap_servers
Yum install openldap_clients
Yum install openldap_devel

2. Création de mot de passe pour l’admin :


[root@Serv-ldap ~]# slappasswd
New password:
Re-enter new password:
{SSHA}MP0BeMJzmCoCi5olBhwcRDYJaGBFgN5K

3. Configuration du fichier slapd.conf :


#ajouter les autorisations au debut:

access to attrs=userPassword
by self write
by dn="cn=Manager,dc=domain,dc=local" write
by anonymous auth
by * none

access to *
by dn="cn=Manager,dc=domain,dc=local" write
by self write
by * read

modifier :

suffix "dc=domain,dc=local"
rootdn "cn=Manager,dc=domain,dc=local"
rootpw {SSHA}WpQkjz32Ff+AuZF93ggxt2Vt/n+kHtMU
(mot de passe generer au debut avec slappasswd)

4. Configurer le fichier ldap.conf (/etc/ldap.conf


& /etc/openldap/ldap.conf):
Editer le fichier ldap.conf
[root@Serv-ldap ~]# vi /etc/openldap/ldap.conf

# LDAP Defaults
# This file should be world readable but not world writable.
#
BASE dc=network,dc=ma

WWW.COURSNET.COM 31
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

URI ldap://Serv-ldap.network.ma

#SIZELIMIT 12
#TIMELIMIT 15
#DEREF never

5. Copier le fichier de la base de donée:


Retour au terminal -> copiez un fichier appelé DB_CONFIG qui
definit le cache :
[root@Serv-ldap ~]# cp /usr/share/doc/openldap-servers-
*/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
[root@server ~]# chown -Rf ldap:ldap /var/lib/ldap/

6. Tester de la configuration
[root@Serv-ldap ~]# slaptest -u
config file testing succeeded

7. Utilisation de chiffrementTLS
[root@Serv-ldap ~]# slaptest -u
config file testing succeeded

4-Utilisation de chiffrementTLS
[root@Serv-ldap ~]# vi /etc/sysconfig/ldap

Définir le paramètre suivant :


SLAPD_LDAPS=yes

La génération et la configuration des clés :


[root@server ~]# mkdir /etc/openldap/ssl/
[root@server ~]# openssl req -new -x509 -nodes -out
/etc/openldap/ssl/slapdcert.pem -keyout
/etc/openldap/ssl/slapdkey.pem -days 365
Generating a 2048 bit RSA private key
....................................................+++
writing new private key to '/etc/openldap/ssl/slapdkey.pem'
-----

WWW.COURSNET.COM 32
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

You are about to be asked to enter information that will be


incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished
Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]: MA
State or Province Name (full name) []: IMAD SAADI
Locality Name (eg, city) [Default City]: RABAT
Organization Name (eg, company) [Default Company Ltd]: ISTA
Organizational Unit Name (eg, section) []: TRI2B
Common Name (eg, your name or your server's hostname) []:
Server.network.ma
Email Address []: user@network.ma

Cela va créer deux clés requises dans le répertoire / etc / openldap / ssl
/, mais nous devons faire en sorte que l'utilisateur ldap puisse les lire.
[root@Serv-ldap ~]# chown -Rf root:ldap /etc/openldap/ssl
[root@Serv-ldap ~]# chmod -Rf 750 /etc/openldap/ssl

8. Demarrer le service ldap :


[root@Serv-ldap ~]# service slapd start
[root@Serv-ldap ~]# service slapd start

9. Créer la base de ldap:


[root@Serv-ldap ~]$ vi /etc/openldap/base.ldif
Définir les paramètres suivants :
dn: dc=network,dc=ma
dc: network
objectClass: top
objectClass: domain

dn: ou=People,dc=network,dc=ma
ou: People
objectClass: top
objectClass: organizationalUnit

dn: ou=Group,dc=network,dc=ma
ou: Group
objectClass: top
objectClass: organizationalUnit

WWW.COURSNET.COM 33
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

Maintenant que nous avons les informations de base pour notre


structure LDAP, nous pouvons les importés dans notre base de
données LDAP,

[root@Serv-ldap ~]# ldapadd -x -W -D


"cn=Manager,dc=network,dc=ma" –f /etc/openldap/base.ldif
Enter LDAP Password:
adding new entry "dc=network,dc=ma"
adding new entry "ou=People,dc=network,dc=ma "
adding new entry "ou=Group, dc=network,dc=ma "

10. Ajouter les entrées a la base de ldap:

ldapadd -h localhost -x -D "cn=Manager,dc=domain,dc=local" -W -


f base.ldif

11. Création d’un utilisateur et des groupes


sur LDAP :
Nous allons utiliser le scripte migrationtools pour les créer :
[root@Serv-ldap ~]# vim
/usr/share/migrationtools/migrate_common.ph

Modifier les paramètres suivants :


# Default DNS domain
$DEFAULT_MAIL_DOMAIN = "network.ma";

# Default base
$DEFAULT_BASE = "dc=network,dc=ma";

Créer les utilisateurs de votre base :


[root@Serv-ldap ~]# useradd –p userpass user
[root@Serv-ldap ~]# useradd –p user1pass user1
[root@Serv-ldap ~]# grep user* /etc/passwd > users-list

WWW.COURSNET.COM 34
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

Appliqué le scripte
[root@Serv-ldap ~]#
/usr/share/migrationtools/migrate_passwd.pl
/etc/openldap/users-list /etc/openldap/people.ldif

Créer les groupes que vous voulez utiliser par la suite:


[root@Serv-ldap ~]# groupadd tri2b
[root@Serv-ldap ~]# grep tri2b /etc/group > group-list
[root@Serv-ldap ~]$ /usr/share/migrationtools/migrate_group.pl
/etc/openldap/group-list /etc/openldap/group.ldif

Accéder aux deux fichier et assurer vous que les gid sont tous
identiques
Dès qu’on a les fichiers LDIF, nous allons les ajouter dans la
base LDAP :
[root@Serv-ldap ~]$ ldapadd -x -W -D
"cn=Manager,dc=network,dc=ma" -f /etc/openldap/people.ldif
[root@Serv-ldap ~]$ ldapadd -x -W -D
"cn=Manager,dc=network,dc=ma -f /etc/openldap/group.ldif

12. Tester la base de données LDAP


[root@Serv-ldap ~]# ldapsearch -xWD
“cn=Manager,dc=network,dc=ma” -b “dc=network,dc=ma” “cn=user”
# extended LDIF
#
...
# user, Group, network.ma
dn: cn=user,ou=Group,dc=network,dc=ma
objectClass: posixGroup
objectClass: top
cn: user
userPassword: E2NyeXB0fXG=
gidNumber: 500
# search result
search: 2
result: 0 Success
...

La syntaxe pour ajouter un utilisateur ahmed


[root@Serv-ldap ~]# vi /etc/openldap/ahmed.ldif

WWW.COURSNET.COM 35
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

Définir ces paramètres :


dn: uid=ahmed,ou=People,dc=network,dc=ma
uid: ahmed
cn: Ahmed noure
objectClass: person
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: {crypt}$6$XemGNmMU9f3FRFo/vt7Uld/gUcP/2N7/R.uw5SK.
shadowLastChange: 14846
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 501
gidNumber: 501
homeDirectory: /home/chris

La syntaxe pour ajouter un group tri2A


[root@Serv-ldap ~]# vi /etc/openldap/tri2A.ldif

Definir les paramètres :


dn: cn=tri2A,ou=Group,dc=network,dc=ma
objectClass: posixGroup
objectClass: top
cn: tri2A
userPassword: {crypt}x
gidNumber: 501

Ajouter les fichiers dans la base :


[root@server ~]# ldapadd -x -W -D
"cn=Manager,dc=network,dc=ma" -f /etc/openldap/ahmed.ldif
Enter LDAP Password:
adding new entry "uid=ahmed,ou=People,dc=network,dc=ma"

[root@server ~]# ldapadd -x -W -D


"cn=Manager,dc=network,dc=ma" -f chris-group.ldif
Enter LDAP Password:
adding new entry "cn=tri2A,ou=People,dc=network,dc=ma"

Redemarrer votre service ldap:


[root@server ~]# service ldap restart

La configuration au niveau de serveur est fini .

WWW.COURSNET.COM 36
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

13. Configuration coté client


Installer les paquets nécessaires :
Nss_ldap
openldap-clients
openldap-devel
Editer le fichier ldap.conf

[root@Cl-fed ~]# vi /etc/openldap/ldap.conf

# LDAP Defaults
# This file should be world readable but not world writable.
#
BASE dc=network,dc=ma
URI ldap://192.168.2.1 --> ici vous tapez l@ de votre serv
#SIZELIMIT 12
#TIMELIMIT 15
#DEREF never

XIII. SCRIPT LINUX

Les Syntaxe:
Boucle while
# !/bin/bash
While [ -eq | -ne |-gt | - lt ]
do
Break ( pour stoper la boucle )
Done
Case + boucle
While [ true ] ; Do
Echo ‘’ entrer un nbr svp ’’
Read nbr
case $nbr in
Val1) Echo ‘’ test1 ’’break ;;
Val2) Echo ‘’ test2’’ break ;;

WWW.COURSNET.COM 37
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

*) (ni val1 ni val2)


Echo ‘’ test3 ’’
Esac
Done
Case statement
# !/bin/bash
Echo ‘’ entrer un nbr svp ’’
Read nbr

case $nbr in
Val1) Echo ‘’ test1 ’’ ;;
Val2) Echo ‘’ test2’’ ;;
*) (ni val1 ni val2)
Echo ‘’ test3 ’’
Esac

1. REGLES IMPORTANTES :

 Les Arguments :
la commande set: permet d’affecter des valeur à ces parametres
la commande unset : permet la suppression des valeurs contenues dans ces
paramètres.
• Exemple:
set Maroc Espagne France
echo $1 $2 $3
Maroc Espagne France
** Il existe deux autres variables automatiques:
$# :qui est le nombre de paramètres ;
$0 :qui est le nom du programme.
$* L'ensembles des paramètres sous la forme d'un seul argument
$@ L'ensemble des arguments, un argument par paramètre
$? Le code retour de la dernière commande
$$ Le PID su shell qui exécute le script
$! Le PID du dernier processus lancé en arrière-plan

** Si on tappe la commande : ./script.sh $2

La résultat est : Espagne

 Les Variables :
Les Variables les plus utilies :

WWW.COURSNET.COM 38
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

$HOME, $PATH, $USER, $SHELL, $ENV,


$PWD, $HOSTNAME

Exemple :

Echo vous êtes connectez à la station


$HOSTNAME, sous le nom $USER

 Commande Echo
echo –e : autoriser l’interprétation des caractères spéciaux telles que:
\n : saut de ligne; équivalent à echo ‐ n
\c : éviter le saut de la ligne
\t : Tabulation
\b : retour arrière
echo ‘$ message’ et echo ‘’ $ message’’

 Commande Read
read –p : permetd’afficher un message avant d’entrer un argument
d’une variable.
readonly: Pour empêcher la modification d'une variable;

read –p ‘’Entrer
message’’message � Bonjour à tous !
readonly message
Echo $message � Bonjour à tous !

 Chaine de caractères
Longueur d'une chaîne de caractères :
Si l'on veut obtenir la longueur d'une chaîne
de caractères contenue dans une variable, on
utilisera la syntaxe suivante : ${#variable}

echo ${variable:5:2} extrait la sous chaine de longueur 2 à partir du


5ème caractère
echo ${variable:20}: Extrait tous les caractères à partir du 20ème
Les Préfixes :
${variable#préfixe} ou ${variable##préfixe}
Exemple :

WWW.COURSNET.COM 39
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

VAR =‘’abbbc’’
echo ${VAR#a*b} == bbc,
(car le plus petit préfixe correspondant au motif a*b soit ab).
echo ${VAR##a*b} == c
(## utilisera le préfixe le plus long à savoir abbb).

Les suffixes :
Exemple :

VAR=abbbc
echo ${VAR%b*c} =========== abb
echo ${VAR%%b*c} ==========a

Substitution et remplacement :
remplacer une chaîne de
caractères contenues dans des variables :

/
${variable motif/remplacement}

Exemple :
VAR= abab
echo ${VAR/b/d} =========== adab.
OU
echo ${VAR//b/d} =========== adab. ( toutes les occurrences du motif soient
remplacées )

 TEST :
Test –r fichier Testez les fichiers qui possèdent le droit de lecture

Test –w fichier Testez les fichiers qui possèdent le droit d’ écriture


Test –x fichier Testez les fichiers qui possèdent le droit d’exécution
Test –s fichier Testez les fichiers qui ont la taille sup à 0
Test –d fichier Testez l’existence des répertoire
Test –f fichier Testez les fichiers qui sont des fichiers ordinaire

SCRIPT + CORRECTION :
Script 1
Créer un script shell nommé "change" qui affichera la date de dernière
modification d'un fichier puis la modifiera avec l'heure actuelle et enfin

WWW.COURSNET.COM 40
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

réaffichera la date de dernière modification du fichier.


Cette procédure acceptera 1 paramètre qui sera le nom du fichier.

Lorsque vous exécuterez "change mon_fic", le 8 octobre à 15 heures 12


vous obtiendrez le résultat:

avant : -r--r--r-- 1 user group 40 Fev 3 2001 mon_fic


après : -r--r--r-- 1 user group 40 Oct 8 15:12 mon_fic
AVANT=$(ls -l $1)
touch $1
APRES=$(ls -l $1)
echo "Avant : "$AVANT
echo "Apres : "$APRES

Script 2 :
Créer un script shell nommé "nombreJours" qui affichera le nombre de
jours du mois courant.

"nombreJours" affichera pour février 2007 le message "28 jours en février


2007".
MOIS=$(date +"%m")
case $MOIS in
01) NOM="janvier";;
02) NOM="fevrier";;
03) NOM="mars";;
04) NOM="avril";;
05) NOM="mai";;
06) NOM="juin";;
07) NOM="juillet";;
08) NOM="aout";;
09) NOM="septembre";;
10) NOM="octobre";;
11) NOM="novembre";;
12) NOM="decembre";;
esac
ANNEE=$(date +"%Y")
case $MOIS in
01|03|05|07|08|10|12)
echo "31 jours en "$NOM" "$ANNEE;;
04|06|09|11)
echo "30 jours en "$NOM" "$ANNEE;;
02)
BISSEXTILITE=$(expr $ANNEE % 4)
if [ $BISSEXTILITE != 0 ]
then
echo "28 jours en "$NOM" "$ANNEE
else
BISSEXTILITE=$(expr $ANNEE % 100)

WWW.COURSNET.COM 41
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

if [ $BISSEXTILITE != 0 ]
then
echo "29 jours en "$NOM" "*ANNEE
else
BISSEXTILITE=$(expr $ANNEE % 400)
if [ $BISSEXTILITE != 0 ]
then
echo "28 jours en "$NOM" "$ANNEE
else
echo "29 jours en "$NOM" "$ANNEE
fi
fi
fi;;
esac

Script 3 :
Créer un script shell réalisant la création d'un répertoire "Exo3" contenant
10 fichiers nommés "Un" à "Dix". Chaque fichier contient une seule
ligne:

"Un" contient "Première ligne""


Deux" contient "Deuxième ligne"
"Dix" contient "Dixième ligne

Vérifier que le répertoire à créer n'existe pas déjà auquel cas il ne


sera pas recréé mais les fichiers si.
test -e Exo3
if [ $? != 0 ]
then
mkdir Exo3
fi
echo "Premiere ligne" >Exo3/Un
echo "Deuxieme ligne" >Exo3/Deux
echo "Troisieme ligne" >Exo3/Trois
echo "Quatrieme ligne" >Exo3/Quatre
echo "Cinquieme ligne" >Exo3/Cinq
echo "Sixieme ligne" >Exo3/Six
echo "Septieme ligne" >Exo3/Sept
echo "Huitieme ligne" >Exo3/Huit
echo "Neuvieme ligne" >Exo3/Neuf
echo "Dixieme ligne" >Exo3/Dix

Script 4 :
Créer un script shell qui réalise les opérations suivantes:
 Création sous votre répertoire "TP2" d'un sous répertoire nommé
"annéemoisjour" (20070202 pour le 2 février 2007).

WWW.COURSNET.COM 42
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

 Copie des fichiers de "Exo3" sous ce répertoire puis effacement de ces mêmes
fichiers de "Exo3".
 Création de deux fichiers sous le répertoire d'accueil (HOME) de la personne qui a
lancé le shell:
o un fichier nommé "Gros_fichier.numero_du_shell" dans lequel se trouvera
le contenu concaténé des fichiers traités
o un fichier nommé "Nom_du_script.numero_du_shell" dans lequel se
trouvera le nom des fichiers traités.

i. Vérifier que le répertoire à créer n'existe pas déjà.

REP=$(date +"%Y%m%d")
test -e $REP
if [ $? != 0 ]
then
mkdir $REP
fi
cp Exo3/* $REP
rm Exo3/*
for file in $REP/*
do
cat $file >> ~/Gros_fichier.$$
echo $file >> ~/$0.$$
done

Script 5 : (Fichier accessible en lecture )


Créer un script permettant d'afficher la liste des fichiers du répertoire /etc
accessibles en lecture.
for FILE in /etc/*
do
if test -r $FILE
then
echo $FILE
fi
done

Script 6 : (argument et paramètres )


Ecrire un fichier de commande qui donne la liste de ses paramètres, le
nombre de paramètres, le numéro du processus.
echo $* $# $$

Script 7 : Nombre de processus

ps | grep "[0-9]"|wc –l

WWW.COURSNET.COM 43
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

Script 8 : (Les Jours > La date )


A Partir de la commande date, écrire une commande qui donne

la date en français

set ‘date‘

case $1 in
Mon) Jour=Lun;;
Thu) Jour=Mar;;
Wed) Jour=Mer;;
Tue) Jour=Jeu;;
Fri) Jour=Ven;;
Sat) Jour=Sam;;
Sun) Jour=Dim;;
esac
case $2 in
Feb) Mois="Fev ";;
Apr) Mois="Avr ";;
May) Mois="Mai ";;
Jun) Mois="Juin";;
Jul) Mois="Juil";;
Aug) Mois="Aout";;
*) Mois="$2 "
esac
echo "$Jour $3 $Mois $6 $4"

Script 9: (Argument et paramètres )


Ecrire une commande qui a comme argument une autre commande,

qui exécute cette commande et envoie un message d’erreur si le code de


retour est différent de 0.
if "$@" ;then
echo "$1 correct"
else
echo "$1 incorrect"
fi

WWW.COURSNET.COM 44
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

Script 10 : (Argument et paramètres )


Ecrire une commande qui teste si elle est appelée avec trois paramètres,
sinon lit au clavier trois chaînes et dans tous les cas teste si ces trois
chaînes sont égales
if [ $# -ne 3 ]
then
#il n’y a pas trois arguments
echo "entrez trois arguments:"
read A B C;
set "$A" "$B" "$C"
fi
if test "$1" = "$2" && test "$1" = "$3"
then
echo "les trois chaines sont egales"
else
echo "les trois chaines sont differentes"
exit 2
fi

Script 11 : chaine de caractére « oui »


Ecrire une commande qui lit une chaine au clavier jusqu’à ce
que cette chaine soient oui.
a=non
while [ $a != "oui" ]
do echo entree une chaine, oui pour arreter
read a
done

Script 12 : basname et $ home


A utilisant la variable HOME et les commandes basename
et dirname, écrire une commande qui affiche la suite des catalogues allant
du catalogue privè au catalogue /, et le nom de login de l’utilisateur.
a=$HOME
while [ "$a" != / ]
do echo $a
a=‘dirname "$a"‘
done
echo /
echo le nom de login est ‘basename $HOME‘

Script 13 : N° de la commande + PATH


Ecrire un fichier .profile qui donne au prompt le numéro de

WWW.COURSNET.COM 45
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

la commande, initialise la variable HISTSIZE à 20, modifie la variable


PATH
afin que les commandes du catalogue privé et de travail puissent être
lancées
sans utiliser leurs références absolues. Comment tester que le .profile est
correct
sans se déloger ?
PS1="<\!> "
HITSIZE=20;
PATH="$PATH:$HOME:."
alias h=history
export PATH HISTSIZE
Il faut executer .profile dans le
shell courant:
$ . .profile

Script 14 : (Comparaison des arguments )


Ecrire une commande appelée avec deux arguments ref1 et
ref2 qui vérifie que tous les fichiers de ref1 ont même nom et même
contenu que ceux de ref2 (On vérifiera que ref1 et ref2 ne contiennent pas
de catalogue
if [ $# != 2 ]
then echo il faut 2 arguments;
exit 1
fi
if test -d $1 && test -d $2
then
for i in ‘ ls $1‘
do
if [ -d $1/$i ]
then
echo on ne veut pas de catalogue; exit 3
fi
if [ -e $2/$i ]
then
if [ -d $2/$i ]
then
echo on ne veut pas de catalogue; exit 3
fi
if diff $1/$i $2/$i >/dev/null
then echo $1/$i et $2/$i sont identiques
else echo $1/$i et $2/$i sont differents; exit 2
fi
else echo $1/$i existe mais pas $2/$i ; exit 3
fi
done
# il faut tester qu’il n’y ait pas d’autres fichiers dans $2
for i in ‘ls $2‘
do
if [ -e $1/$i ]
then echo "">/dev/null
else
echo un fichier en plus dans $2 : $2/$i; exit 3
fi

WWW.COURSNET.COM 46
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

done
else echo il faut 2 catalogues en argument; exit 3;
fi
echo tous les fichiers sont identiques

Script 15 : Copier Fichier


Ecrire un script qui copie tous les fichiers d'extension .txt du
repertoire courant en des fichiers de meme nom et
d'extension .txt.archive (toujours dans le repertoire courant).

#!/bin/bash
for fichier in .* *
do
set `ls -idl $fichier`
echo "$fichier $6"
done

Script 16 : 2 Nbr (+-*/) avec while


Ecrire un script qui boucle en demandant a l'utilisateur de saisir
deux variables, affiche leur somme, leur difference, leur produit et
leur quotient. Le programme s'arrete lorsque l'utilisateur saisit un
point.
#!/bin/bash
echo "Entrer deux entiers (point pour terminer)"
read p1
while test "$p1" != "."
do
read p2
echo `expr $p1 + $p2`
echo `expr $p1 - $p2`
echo `expr $p1 \* $p2`
echo `expr $p1 / $p2`
echo "Entrer deux entiers (point pour terminer)"
read p1
done

Script 17 : Factorielle d’un argument


Ecrire un script qui prend un argument et en affiche la factorielle.
Verifier que le nombre de parametres est correct.
#!/bin/bash
if test $# -ne 1
then echo "il faut un argument"
elif test $1 -eq 0 -o $1 -eq 1
then echo 1
else
produit=2

WWW.COURSNET.COM 47
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

n=$1
while test $n -ne 2
do
produit=`expr $produit \* $n`
n=`expr $n - 1`
done
echo $produit
fi

Script 18 : PGCD d’un argument


Ecrire un script qui prend deux arguments et affiche
leur pgcd. Vérifier que le nombre de paramètres est correct.
Afficher un message specifique quand l'un des deux arguments.
#!/bin/bash
if test $# -ne 2
then echo "il faut deux arguments"
elif test $1 -eq "0" -o $2 -eq "0"
then echo "arguments nuls"
else
a=$1
b=$2
while test $a -ne $b
do
if test $a -gt $b
then
a=`expr $a - $b`
else
b=`expr $b - $a`
fi
done
echo $a
fi

Script 19 : Argument des noms de fichiers


Ecrire un script qui prend en argument des noms de fichiers. Une option
-v peut egalement etre placee parmi les arguments. Si l'option est
presente, la commande affiche les caracteristiques de chaque fichier et
repertoire (format de ls –l sans entrer afficher le contenu des repertoires).
Si l'option n'est pas presente, la commande renomme chacun des fichiers
(ou repertoires) en ajoutant l'extension .old.

WWW.COURSNET.COM 48
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

#!/bin/bash
para=""
option=""
while test "$1" != ""
do
if test "$1" = "-v"
then
option="-v"
else
para="$para $1"
fi
shift
done
set $para
if test "$option" = "-v"
then
while test "$1" != ""
do
echo `ls -ld $1`
shift
done
else
while test "$1" != ""
do
mv $1 ${1}.old
shift
done
fi

Script 20 : Mathématique
Ecrire un script qui sort les valeurs successives de la suite
définie par :
u_n+1 = u_n /2 si u_n est pair,
3 * u_n +1 si u_n est impair.
La valeur de u_0 est donnée en argument, le programme s'arrête
lorsque la valeur à afficher est 1.
#! /bin/bash
u0=$1
un=$u0
while test $un -ne 1
do
echo $un
if test `expr $un % 2` -eq 0
then
un=`expr $un / 2`
else
un=`expr \( $un \* 3 \) + 1`
fi
done

echo $un

Script 21 : Jeter la poubelle –déplacer-vider.


Ecrire une commande jeter qui permet de manipuler une poubelle

WWW.COURSNET.COM 49
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

de fichiers -- un répertoire -- nommée poubelle et située à


votre racine. La commande accepte a trois options : *
jeter -l pour lister le contenu de la poubelle ;
* jeter -r pour vider la poubelle ; *
jeter fichier1 fichier2 ... pour déplacer les fichier considérés vers la poubelle.
#! /bin/bash
POUBELLE=$HOME/poubelle

if test ! -d $POUBELLE
then
mkdir $POUBELLE
fi

case $1 in
-l) echo "$POUBELLE :"
ls $POUBELLE;;
-r) echo "la poubelle se vide..."
rm -r $POUBELLE/*;;
*) mv $@ $POUBELLE;;
esac

Script 22: Argument – Fichier exécutable .


Ecrire une commande qui prend en argument un nombre quelconque de noms de
fichier et affiche pour chacun :
- son nom si c'est un fichier regulier non executable suivi de la
mention "est un fichier non executable",
- son nom si c'est un fichier regulier executable suivi de la
mention "est un fichier executable",
- la liste de tous les fichiers réguliers executables d'extension
".truc" qu'il contient si c'est un repertoire

#!/bin/bash

while test "$1" != ""


do
if test -x $1 -a -f $1
then
echo $1 "est un fichier executable"
elif test -f $1
then
echo $1 "est un fichier non executable"
elif test -d $1
then
for f in `ls $1/*.truc`
do
if test -x $f -a -f $f
then
echo $f
fi
done
fi
shift
done

WWW.COURSNET.COM 50
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

Script 23: jour/mois > Case


# !/bin/bash
jour=$(date+"%d")
mois=$(date+"%m")
anne=$(date+"%y")

Echo ‘’ entrer un nombre entre 1 et 7 qui indique un jour ‘’


Echo jour

case $jour in
1) Jour=Lun;;
2) Jour=Mar;;
3) Jour=Mer;;
4) Jour=Jeu;;
5) Jour=Ven;;
6) Jour=Sam;;
7) Jour=Dim;;
Esac
Echo ‘’ entrer un nombre entre 1 et 12 qui indique un jour ‘’
Echo mois

case $mois in
1) Mois="Fev ";;
2) Mois="Avr ";;
3) Mois="Mai ";;
4) Mois="Juin";;
5) Mois="Juil";;
6) Mois="Aout";;
*) Mois="$2 "
esac
echo "$Jour / $Mois "

Script 24: Fichier accessible en écriture


#!bin/bash
fich=/etc
for [ $fich in /etc/* ] do
if test -w $fich then
echo $fich
fi done

Script 25: Renommer les fichier d’un rép


#!bin/bash
fich = find /home/simo/Bureau -name *.txt
for [ $fich in /home/simo/Bureau ]
do
mv /home/simo/Bureau/$fich /home/simo/Bureau/$fich.docx
done

WWW.COURSNET.COM 51
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

Script 26 : Script Pratique 2013


# !/bin/bash
Echo ‘’ les user qui ont des UID <= 400 sont :
Cut –d : f1,3 /etc/passwd | grep –w [0-3].. | cut –d :f1
# !/bin/bash

Cat/etc/passwd | grep 500 > /etc/test.txt


Gawk –F : ‘{ print $1 } ‘ /etc/test.txt

XIV. Quelque Commandes Linux

La commande arp : arp permet de visualiser ou modifier la table du cache


ARP de l’interface. Cette table peut être statique et (ou) dynamique. Elle donne la
correspondance entre une adresse IP et une adresse MAC (Ethernet)
farid@Serveur:/etc$ arp -va
? (192.168.226.2) at 00:50:56:e5:08:c4 [ether] on eth0
? (192.168.226.254) at 00:50:56:e4:a2:03 [ether] on eth0
Entries: 2 Skip ped: 0 Found:

La commande route : Le routage définit le chemin .emprunté par les


paquets entre son point de départ et son point d’arrivée. La commande route
permet la configuration du routage sur un PC, switch ou routeur.
farid@Serveur:/etc$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref
Use Iface
192.168.226.0 0.0.0.0 255.255.255.0 U 1 0
0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0
0 eth0
0.0.0.0 192.168.226.2 0.0.0.0 UG 0 0
0 eth0

La Commande Netstat : permet de tester la configuration du réseau,


visualiser l’état des connexions, établir des statistiques, notamment pour surveiller
les serveurs.
farid@Serveur:/etc$ netstat –a
Proto RefCnt Flags Type State I-Node Path
unix 2 [ ACC ] STREAM LISTENING 11774
/tmp/orbit-farid/linc-64f-0-7fdc879498989

WWW.COURSNET.COM 52
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

unix 2 [ ACC ] STREAM LISTENING 11792


/tmp/orbit-farid/linc-64c-0-411483fe46585
udp 0 0 Serveur.local:domain *:*
udp 0 0 localhost:domain *:*
tcp 0 0 Serveur.local:domain *:*
LISTEN
tcp 0 0 localhost:domain *:*
LISTEN

La commande netsat –nr ou –r permet aussi d’affiche l’état des tables de routage à
l’instar de la commande route -n .

La Commande Traceroute : permet d’afficher le chemin parcouru par un


paquet pour arriver à destination.
farid@Serveur:/etc$ traceroute 192.168.1.1
traceroute to 192.168.1.1 (192.168.1.1), 30 hops max, 60 byte
packets
1 192.168.226.2 (192.168.226.2) 0.437 ms 0.089 ms 0.081 ms
2 sagembox.home (192.168.1.1) 5.396 ms 6.799 ms 16.286 m

La Commande Host : permet d'obtenir l'adresse IP d'un ordinateur .


$ host www.google.com
www.google.com is an alias for www.l.google.com.
www.l.google.com has address 209.85.135.147
www.l.google.com has address 209.85.135.99
www.l.google.com has address 209.85.135.103
www.l.google.com has address 209.85.135.104

La Commande DIG : En interrogeant la branche com, on obtient la liste des


serveurs DNS gérant les noms de domaines en .com
$ dig com. NS
...
;; ANSWER SECTION:
com. 172800 IN NS i.gtld-servers.net.
com. 172800 IN NS j.gtld-servers.net.
com. 172800 IN NS k.gtld-servers.net.
com. 172800 IN NS l.gtld-servers.net. ...

Les Commandes de routage :


Une route au réseau 192.168.0.0/24 doit être définie sur la station 1.
Pour cela, on peut utiliser la commande route :
# route add -net 192.168.0.0/24 gw 112.65.123..3

WWW.COURSNET.COM 53
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM

Commande CUT

Aperçu du fichier à analyser :

champ1 – champ2 – champ3 – champ4 – champ5 – champ6

La ligne de commande sera :

cut -d’-’ -s -f2,4 monFichier.log > fichierResultat

Analyse de la ligne de commande :

 option -d pour indiquer quel est le délimiteur


 option -s pour supprimer les lignes ne contenant pas le délimiteur
 option -f pour spécifier les champs à extraire
 monFichier.log : le fichier à analyser
 fichierResultat : fichier qui va contenir les champs extraits

WWW.COURSNET.COM 54

Vous aimerez peut-être aussi