Sunteți pe pagina 1din 78

TP: Installation d'un serveur GNU/Linux

Administration Linux de base


Nom :

Prnom :

Date :

Objectifs :

Installer un PC serveur GNU/Linux (installation en n'utilisant que le premier CD de la distribution


ou installation rseau FTP/NFS/HTTP par CD bootable spcial).
Indpendamment base de paquet RMP, DEB, KDE, Gnome ou sans interface graphique.
Debian, Suse, Mandriva ou Fedora (suivant le DVD/CD fourni ou tlcharg).

Effectuer les configurations de base Bureau / Utilisateurs,


Effectuer les mises jour, avec la configuration systme, visiter les principaux fichiers de
configuration utiles l'administration d'un serveur Linux,
Effectuer les oprations d'administration de base, en tudiant les procdures de dmarrage,
l'excution automatique, localement et distance au travers de SSH,
Appliquer les procdures d'administration, de sauvegarde,
Aprs tude des moyens mis disposition de l'administrateur, la gestion du serveur Lamp sera
aborde.

Les oprations lmentaires d'administration seront effectues la main aprs avoir parcouru les
procdures automatiques,
L'utilisation du shell (ligne de commande) sera trs largement mis en avant.

99% des commandes et des fichiers de configuration sont documents dans le Manuel Unix ,
accessible par la commande man. La recherche d'une expression dans les pages affiches fait la
vi /expressionreturn, puis touche N pour chercher plus loin (Next) ou SHIFT+N pour
chercher en arrire.
On peut aussi obtenir des informations sur une commande en l'invoquant avec comme seul argument
h (ou - -help).
Une grande partie de la formation d'un administrateur systme Unix vient de l'auto-formation grce
au manuel !

Les illustrations de ce document reprennent des vues depuis les 4


distributions (Debian, Suse, Mandriva ou Fedora) proposes.
Matriel
- CDrom d'installation d'une version GNU Linux:
- Premier CD /DVD de la distribution,
- Debian / Open Suse / Mandriva /Fedora.
- 1 PC ou machine virtuelle, avec disque dur suffisant pour l'installation (10 20 Go), compatible
Linux.
- Accs Internet pour le poste,
- Accs rseau avec serveur DHCP,
- Ce document accessible (sur PC indpendant ou papier).
Note typographique
- Ce symbole signifie une action effectuer. Les commandes d'installation, lectures.. sont lancer ou
Administration Unix /Linux
LoiselJP 2010

page 1/78

excuter,
- Ce symbole signifie une note importante,
- Ce symbole indique une information,
- Ce style de caractres azerty signifie qu'une commande, un texte sera entr sous cette forme,
- Ce style de caractres passwd utilisateur signifie qu'une commande, une ligne de texte est
saisir telle qu'indiqu,
- Les zones
laisses libre sont complter.

Rappel sur le droulement de la formation


- Jour 1
Prsentation du programme,
Principes de Linux,
Choix d'une distribution,
Le systme de fichiers / LVM,
Installation,
Les bureaux / configuration.
- Jour 2
Les comptes utilisateur / Sudo,
Les paquets / Installation de logiciels et priphriques,
Configuration du systme,
Les modes d'opration, procdure de dmarrage,
Le Cron,
SSH,
La ligne de commande Shell,
Introduction au programme Shell.
- Jour 3
Suivi des procdures,
Rle de l'administrateur / Tches d'administration,
Gestion des sauvegardes,
Scurit,
Le programme MAN,
Introduction au serveur LAMP,
Rsolution des problmes.
Conclusion

Administration Unix /Linux


LoiselJP 2010

page 2/78

1 Installation du systme
Installation rseau GNU/Linux pour un serveur.
L'adresse IP du serveur utilise pour l'installation sera prcise en sance / dfaut l'installation se
fera en DHCP,
Afin d'viter tout conflit de nom, le poste sera nomm au nom de l'administrateur qui installe le poste.
Par exemple "loiseljp" installe le poste qui portera le nom "loiseljp",
Le groupe de travail utilis sera "Workgroup",
Le mot de passe administrateur sera "azerty",
Le compte utilisateur sera "utilisateur" avec pour mot de passe "azerty".

a - Installation personnalise de la distribution considre (lire avant


d'installer)

Langue : Europe Franais / Clavier : Franais / Niveau de scurit : standard (si ncessaire)
Partitionnement personnalis, planifi comme suit :
Si le PC possde une installation Windows, la conserver,
Si le PC possde une installation antrieure de GNU/Linux, la supprimer,
Etablir le partitionnement de la distribution installer selon la grille suivante :

Administration Unix /Linux


LoiselJP 2010

page 3/78

Partitionext3

swap

montesur/
~512Mo ~512Mo

Partition
ext3/ext4

Partition
ext3/ext4

Partitionvfat

montesur/usr
~34Go

montesur/var

montesur/home

~0.51Go

~13Go

~512Mo

Partitionext3

pasmonte

Prendre en compte qu'un disque ne peut contenir plus de 4 partitions primaires. Les trois
dernires seront donc places dans une partition tendue.
Suivant la disponibilit offerte par le poste les partitions /var et /user pourront tre tendues 5 et
10 go de mme que la partition "home" pourra tre tendue 5 go, le reste rserv la partition
vfat,
Toutes les partitions seront formates l'installation, sauf la partition vfat,
Afin d'viter toute perturbation de l'installation, une vrification de l'intgrit du CD/DVD (si
l'options est propose) sera effectue,
Suivant l'avanc de l'utilisateur, il pourra tre demand que l'installation soit effectue avec LVM
(Logical Volume Manager).

Aucun paquetage complmentaire ne sera install dans un premier temps.

(Le nom de l'hte au nom de l'utilisateur ici : "loiseljp")

(Cas d'une installation avec LVM)

Administration Unix /Linux


LoiselJP 2010

page 4/78

Suivant l'utilisation / destination certains logiciels non indispensables peuvent tre dslectionns
(ici la suite bureautique).

Dans le cas de RedHat /Fedora, il peut tre intressant d'ajouter les dpts au cours de l'installation de
base.

Cette slection des dpts au cours de l'installation peut viter de


devoir les ajouter par la suite.

Dans le cas de Debian, la slection d'un miroir rseau n'aura aucune influence sur l'installation. Cela
permettra nanmoins de configurer le systme pour rcuprer les programmes manquant sur l'Internet:
il est donc prfrable d'utiliser un miroir rseau.

Administration Unix /Linux


LoiselJP 2010

page 5/78

b - Booter le PC sur le CD
Installation par le CD1/DVD1 de la distribution publique :
Booter sur le premier CD/DVD de la distribution,
Ne mentionner que le CD 1 comme disponible de faon forcer l'installation utiliser le service
FTP/NFS/HTTP (selon la configuration disponible) la place des autres CD.
Installation par le CD spcial (net install) :
Booter sur le CD d'installation rseau,
Finir l'installation avec le protocole FTP/NFS/HTTP selon la configuration de la salle.

Suite de l'installation :
Mot de passe root : azerty*, cration de l'utilisateur "utilisateur"... suivant les consignes dfinies
en dbut de chapitre.
Si l'option est propose, ne pas activer le dmarrage d'une session automatique pour un utilisateur
Crer le programme de dmarrage (bootloader lilo ou grub si le choix est propos) en MBR.
Arriv au rsum de l'installation, passer au paragraphe suivant.

(suivant la possibilit d'en faire le choix, le bureau KDE sera choisi pour le dbutant, pour sa
ressemblance Windows, contre Gnome pour sa ressemblance au bureau Mac.)

Administration Unix /Linux


LoiselJP 2010

page 6/78

(ajouter et crer les partitions manuellement)

Quelques minutes sont ncessaires le temps que l'installation se fasse et propose le premier cran
d'accueil.
Si cet exercice est effectu dans le cadre d'un cours collectif, il est fort probable que le formateur
aura propos plusieurs supports ou distributions, profiter de ces quelques instants "libres" pour
comparer l'installation celle des voisins.

Administration Unix /Linux


LoiselJP 2010

page 7/78

c - Rsum de l'installation et fin


En fin d'installation se connecter sur le compte "utilisateur", certaines distributions admettent une
connexion sur le compte "root" (sous Linux, "root" est l'administrateur ).
* Suivant la distribution
installe,
et
l'interface
graphique (KDE, Gnome...)
choisie, aprs login, le
bureau est enfin disponible.
* Ici le bureau KDE 4 de la
distribution OpenSuse.

* Le bureau donne accs


facilement aux diffrents
menus, programmes... suivant
le paquetage logiciel install.
* Ci-contre le bureau KDE de
Mandriva.

Administration Unix /Linux


LoiselJP 2010

page 8/78

* Tout comme KDE le bureau


Gnome propose un menu.
* Ci-contre le bureau Gnome
sur Debian.

Configurer l'interface graphique : ne pas lancer automatiquement l'interface graphique au dmarrage,


Configurer le fond d'cran, l'cran de veille, la barre des taches, son comportement,
Pour les utilisateurs les plus avancs ce stade, placer un raccourci sur le bureau du navigateur de
fichier, le traitement de texte, le gestionnaire de paquetages, la corbeille, un terminal...

* Bien que d'une base diffrente, la


distribution Fedora prsente un
bureau Gnome identique celui de
l'image prcdente d'une
distribution Debian.

Administration Unix /Linux


LoiselJP 2010

page 9/78

CPost installation,
configuration

information

sur

le

matriel,

fichiers

de

Ouvrir un terminal, puis se connecter en administrateur:

* Comme dans l'image ci-dessus, aprs avoir ouvert un terminal taper "su" pour "Super Utilisateur",
taper le mot de passe (le mot de passe est tap en "aveugle").
En ralit SU veut dire Substitue User ( su utilisateur permet de changer dutilisateur) mais reste souvent "Super Utilisateur" car employ seul.

- L'invite de commande se termine alors par # indiquant le mode root.

d - Informations sur le boot et les priphriques reconnus au boot


Visualiser les messages de boot avec la commande dmesg.
On notera que tout comme pour Windows, on peut utiliser le touche [tab] pour s'aider dans le
dcouverte des commande ( l'invite de commande taper: "dme" puis la touche [tabl], le
reste de la commande ligne se rempli alors).
- La touche [tab] tape directement l'invite de commande propose toute la liste des commandes
disponibles.
Quel est le nombre de commandes disponibles?

- Dans l'exemple ci-dessous 1645 commandes sont possibles:

Comment faire dfiler la sortie de dmesg page par page ?


Le pipe "|" permet de combiner les commandes, ainsi "more" limite l'affichage des lignes les deux
combins permettent un affichage plus ais:
dmesg |more

Administration Unix /Linux


LoiselJP 2010

page 10/78

Analyser les informations de dmesg.


Comment crire la sortie de dmesg dans un fichier mess.txt?
le signe > permet de slectionner la sortie standard, ici en choisissant un fichier "mess.txt" les
informations sont alors enregistres dans le fichier:
dmesg>mess.txt

diter le fichier"mes.txt" avec l'diteur vi :


"vi" est l'diteur de texte le plus utilis, bien que peu pratique dans un premier temps, son utilisation
devient trs vite intressante.
- Lancer l'diteur:
vi

- Pour quitter "vi" taper ":q"


- Lancer l'dition du fichier "mess.txt"
vimess.txt

- Fichier spcial associ au lecteur de disquette ?

/dev/fd0

- Fichier spcial associ au lecteur CD/DVD ? :

/dev/hdc

Comment filtrer la sortie de dmesg pour afficher la frquence bus IDE ?


- La commande grep permet de filtrer... "grep" peut filtrer en cascade, on peut alors trouver la
frquence de l'ide:
dmesg|grepide|grepMHz

e - Retrouver les informations sur le matriel


* Il existe plus de 2000 commandes courantes ou couramment employes. Il serait trs difficile en
quelques heures d'en faire le tour tout comme faire le tour du systme.
Les quelques lignes qui suivent proposent donc quelques commandes qui vont permettre d'aborder et
comprendre quelque peu mieux son fonctionnement.
Il est courant d'utiliser les mmes commandes.
L'utilisation d'une commande peut-tre remplace par un "alias" de cette commande.
Ainsi:
alias ll="ls -l"

Cre une commande "ll" qui aura pour rsultat "ls -l".

Administration Unix /Linux


LoiselJP 2010

page 11/78

f - Informations sur le matriel du PC : pseudo filesystem /proc


Lister le contenu du rpertoire /proc.
La commande cd permet de se dplacer dans les rpertoires (tout comme dans Windows):
cd /proc

La commande ls permet de lister les fichiers d'un dossier:


ls
La commande ls -l liste les fichiers d'un dossier en donnant leur caractristique complte:
ls -l
alias ll="ls -l"
Crera une commande ll reprsentant ls -l.

Les rpertoires dont le nom est un numro correspondent aux numrosdesprocessus(PID).


Pour rappel: tout est fichier sous linux, les processus n'y chappent pas.

Visualiser les informations sur le CPU : cat/proc/cpuinfo


Type du processeur ?
Frquence d'horloge du processeur ?
Taille du cache ?

Visualiser les informations sur la mmoire : cat/proc/meminfo


Total de la RAM en kB ?
Capacit du swap ?

Administration Unix /Linux


LoiselJP 2010

page 12/78

g - Informations sur le matriel du PC : bus PCI


Visualiser les informations sur le BUS PCI avec la commande lspci[v]
Type de la carte graphique ?
Taille de la mmoire de la carte graphique ?

h - Dtecter les traces de l'activit du systme


Pour les distributions Mandriva et Suse:
Traces de l'activit du systme : syslog
Syslog est un service de log (enregistrement) des vnements systmes : les dmons klogd
et syslogd centralisent les demandes d'criture de messages provenant du noyau, des
modules du noyau, des autres dmons et de faon gnrale de tout processus s'excutant
dans la machine. Les critures se font dans des fichiers situs dans le rpertoire
/var/log.
Syslog assure galement un service de compression et de rotation priodique ( la semaine)
des diffrents fichiers de log.

La consultation rgulire du contenu (et de la taille) des fichiers log est une
ncessit pour un administrateur systme!!
Vrifier le statut du service syslog.
- Se connecter en root puis :
/etc/init.d/syslogstatus

Visualiser le fichier :
vi/var/log/syslog

Visualiser en continu /var/log/messages :


tailf/var/log/messages

Administration Unix /Linux


LoiselJP 2010

page 13/78

Pour les distributions Debian et Fedora:


Traces de l'activit du systme : rsyslog
Rsyslog, rsyslogd ... fonctionnent de manire identique aux commandes trouves
prcdemment pour les distributions Suse et Mandriva la seule diffrence que la
commande passe de "Syslog" "Rsyslog".
Vrifier le statut du service rsyslog.
- Se connecter en root puis :
/etc/init.d/rsyslogstatus

Visualiser le fichier :
vi/var/log/messages

Visualiser le fichier :
vi/var/log/syslog

Visualiser en continu /var/log/messages :


tailf/var/log/messages

i - Partitions et fichier /etc/fstab


Au cours des diffrentes manipulations effectues jusqu' prsent, la ligne de commande a t
explicitement donne, compter de ce chapitre, il est suppos que le principe d'diter ("#vi
nom_de_fichier"), se dplacer dans un dossier ("#cd nom_du_dossier")... est acquis.
Il est bien compris galement que l'excution des commandes s'effectuent gnralement en mode root.
Quelques commandes indispensables connatre pour manipuler les partitions disques :
Dans la gestion des disques et partition on parle alors de "monter" ou "dmonter", c'est dire associer
ou dissocier un priphrique d'un dossier afin d'en lire le contenu.

mount
umount
fuser
mkfsttype
fsck

: monter une ressource de type disque sur un point de montage (rpertoire)


: dmonter une partition (on ne peut pas dmonter une partition utilise)
: Lister les processus qui se servent d'un fichier
: Formater une partition selon le type indiqu (ext2, ext3, vfat, ...)
: Vrifier l'intgrit d'une partition (non monte) et rparer les ventuels dfauts.

Fichiers de configuration utiles :

/etc/fstab
/etc/mtab

: Liste des partitions monter au dmarrage avec toutes les options de montage
: Liste des partitions montes (information dynamique).

Vrifier les informations de montage des partitions dans le fichier /etc/fstab


On notera la commande "supermount"delaMandriva.
Administration Unix /Linux
LoiselJP 2010

page 14/78

Supermount est une fonctionnalit trs sduisante des distributions Mandriva. Dans la
plupart des autres distributions, le montage des priphriques amovibles se fait de manire
explicite. En clair, pour lire le contenu d'un CD, il faut pralablement le monter l'aide de la
commande "mount" pour lier le priphrique concern au systme. De mme, avant d'jecter le
CD, il est ncessaire de le dmonter avec la commande "umount" pour dlier le priphrique.
Avec Supermount comme sous Windows, cette liaison se fait implicitement. C'est dire qu'
l'insertion d'un CD ou d'une disquette, le mdia est instantanment mont. De mme il est
automatiquement dmont l'jection.

Modifier les options de montage de la disquette. Editer /etc/fstab(rappel:"vi/etc/fstab") :


- Rpertoire de montage :/mnt/floppy
- Type de filesystem : auto
- Options : umask=0,user,iocharset=iso885915,sync,codepage=850,noauto
vrifier la signification des options (pour cela lancer la commande "manmount"qui lancera le
manuel de la commande mount)
- Rang de dump : 0
- Rang de check : 0

En utilisant la commande fdisk, lister l'tat des partitions cres lors de l'installation. Dterminer
alors le numro de partition non monte (partition vfat):
fdiskl

- Dans l'image ci-dessus, on peut distinguer les 3 partitions primaires (sda1/sda2/sda3), la partition
tendue (sda4) et nos 3 partitions suivantes dont sda7 la partition fat.
Crer un filesystem vfat dans la partition rserve (lors de l'installation, nous avons cr une
partition non formate) :
mkfstvfat/dev/sda7

Administration Unix /Linux


LoiselJP 2010

page 15/78

Dmonter la partition /home


umount/home

Vrifier le filesystem correspondant /home (fsck)


fsck/home

Crer un rpertoire /mnt/dos


mkdir/mnt/dos

Monter la partition vfat sur ce rpertoire


mounttvfat/dev/hda7/mnt/dos

Vrifier qui utilise /mnt/dos avec fuser -av


fuserav/mnt/dos

Se dplacer dans /mnt/dos (cd)


Essayer de dmonter /mnt/dos
umount/mnt/dos

Le rsultat est occup (busy). Le dossier est en cours de visualisation, donc il ne peut tre dmont
(commande "cd /mnt/dos" utilise prcdemment).

Vrifier qui utilise /mnt/dos


fuser -av /mnt/dos
Bien videmment, root est l'utilisateur en cours!

Librer /mnt/dos(se dplacer ailleurs dans "var" ou "etc" par exemple)


Dmonter la partition lie /mnt/dos
umount/mnt/dos

- Cette fois plus de souci.

j - Fin de formation jour 1


(A raliser suivant l'avance dans le TP)
Voir les autres fichiers de configuration
Dans les exercices prcdents, nous avons vu quelques fichiers et commandes.
Lister tous les fichiers de configuration:
- La commande find permet de trouver un liste de fichiers.
En utilisant le manuel de "find" (man find), trouver la commande qui permettra de trouver tous les
Administration Unix /Linux
LoiselJP 2010

page 16/78

fichiers ".conf".
Le fichier man fait 1500 lignes! La commande "find --help" suffira certainement!
find / -name "*.conf"

- Les fichiers de configuration se comptent par dizaines et ce chiffre augmente avec chaque nouveau
paquet install.
Editer quelques fichiers (/etc/rsyncd.conf /etc/samba/smb.conf...).

Pour les plus avancs, il est possible de terminer cette premire journe, en installant diffrents
"bureaux".
- Gnome,
- KDE,
- Xfce.
Il est galement possible d'y installer des "Widgets":
Modifiez le fichier /etc/apt/source.list
vi /etc/apt/source.list
( Coller la fin du fichier:
deb http://download.tuxfamily.org/syzygy42/ feisty avant-window-navigator
deb-src http://download.tuxfamily.org/syzygy42/ feisty avant-window-navigator
( Excuter
wget -q http://download.tuxfamily.org/syzygy42/8434D43A.gpg -O- | apt-key add apt-get update
apt-get install avant-window-navigator-bzr
apt-get install gdesklets

Administration Unix /Linux


LoiselJP 2010

page 17/78

2 Administration de base
a - Grer les comptes utilisateurs
Le systme Unix/Linux permet de dfinir des utilisateurs et des groupes.
Tout utilisateur d'un systme possde :
Un identifiant d'utilisateur (UID : User Identification),
( Pour l'usage : un UID < 500 correspond un utilisateur systme; un UID >= 500 correspond un
utilisateur.

Un identifiant de groupe principal (en plus de son groupe principal, un utilisateur peut appartenir
plusieurs autres groupes secondaires) GID : Group Identification,
(Usage : GID < 500 : groupe systme; GID >= 500 : groupe utilisateur)

( La gestion des utilisateurs et des groupes peut se faire :


A la main (dition manuelle des fichiers /etc/passwd, /etc/shadow et /etc/group...)

Editer les fichiers prcdents (etc/passwd, /etc/shadow et /etc/group) puis noter les
groupes et utilisateurs

En utilisant des commandes standard d'administration : useradd, groupadd, chsh

useradd,groupaddfonctionnent simplement en ajoutant en argument le nom d'utilisateur


ou de groupe,chshlui reoit pour argument le chemin du shell (par exemple :"useradd
nouvel_user").

Crer un nouvel utilisateur"passager",


Crer un nouveau groupe de travail"visiteur",
Lister les diffrents shell (interprteurs de commande) pouvant tre affects un utilisateur
("chsh -l").
- En suivant l'exemple de l'impression cran suivante, modifier le shell de utilisateur,
- Changer celui de l'administrateur.
On notera que l'utilisateur en cours est "root", il n'est pas utile alors de taper le
nom de l'utilisateur,

Administration Unix /Linux


LoiselJP 2010

page 18/78

- En forant le passage en Root (su), on peut alors constater la modification du shell:

Replacer le shell d'origine [bin/bash] pour root.

L' ajout, la modification d'utilisateur peut se faire galement en utilisant des utilitaires graphiques:
Pour Mandriva on utilisera drakconf,drakuser,
Pour Fedora / gnome systemconfigusers,
Pour suse yast(dans un terminal),yast2,
Pour Debian gnomeusersadmin,
Lancer l'interface graphique de gestion des utilisateurs suivant l'installation.

Ajouter un utilisateur :
- Les tches planifier sont :
Administration Unix /Linux
LoiselJP 2010

page 19/78

Dterminer le nom de login, le numro UID, le groupe et le rpertoire d'accueil,


Ajouter le compte utilisateur, avec un mot de passe initial,
Eventuellement : crer le rpertoire d'accueil,
Eventuellement : mise en place de quotas, copie de fichiers de configuration de base ...
Rendre l'utilisateur propritaire de l'arborescence (chownR.../chgrpR).

Prendre quelques minutes pour explorer les commandes:


useradd, groupadd, chsh,userdel,usermod,groupdel,
Utiliser le commutateur help, ? sur les commande comme useradd,
groupadd...("usermodhelp")

Fichier /etc/passwd : liste des utilisateurs


Chaque ligne, constitue de champs spars par le caractre : , dcrit un (pseudo) utilisateur :
login:mot_de_passe_crypt:UID:GID:commentaire:rpertoire_home:programme_lancement

Le mot de passe se trouve dans le fichier passwd. Le fichier passwd n'est accessible qu'au
systme et l'administrateur (root). Cependant, les mots de passe sont dsormais crypts.
Pour des raisons de scurit, le mot de passe crypt ne figure plus dans le fichier passwd, mais dans le
fichier shadow.
Visualiser le fichier /etc/passwd (vi, cat, ...).
Quels sont les droits d'accs du fichier /etc/passwd ? :
lsl/etc/passwd

(-rw--r--r--r root)
Quels sont les droits d'accs du fichier /etc/shadow ? :
lsl/etc/shadow

(-r-------- root)

Fichier /etc/shadow : gestion des mots de passe des utilisateurs


Chaque ligne (champs spars par des : ) dcrit le mot de passe d'un utilisateur et des informations
sur les dates de cration, d'expiration.
Rechercher dans le manuel en ligne la description des champs du fichier /etc/shadow.
("manshadow")

Quel est le rang du champ donnant le nombre de jours durant lesquels le mot de passe est encore
valide ?

Fichier /etc/group : liste des groupes


Chaque ligne (champs spars par des : ) dcrit un groupe:
nom_groupe:x:GID:liste_des_membres
Administration Unix /Linux
LoiselJP 2010

page 20/78

Visualiser le fichier /etc/group (vi, cat, ...).


Nota : il existe un fichier /etc/gshadow, qui joue le mme rle que /etc/shadowpour les groupes,
mais le champ mot de passe n'est plus utilis pour la gestion des groupes.

Ajouter/Supprimer un groupe
Le plus simple pour supprimer un groupe est de supprimer la ligne correspondante dans le fichier
/etc/group.
Consulter l'aide en ligne sur la commande groupadd("mangroupadd"),
Utiliser "groupadd" pour ajouter le groupe tpadmin (2222) :
groupadd -g 2222 tpadmin

Vrifier la modification dans le fichier /etc/group


Ajouter la main le groupe tp(2223) en ditant directement le fichier /etc/group.

Ajouter/Supprimer - Verrouiller/Dverrouiller un utilisateur


Le plus simple pour supprimer un compte utilisateur est de supprimer les lignes lies ce compte dans
les fichiers concerns (/etc/passwd, /etc/shadow et /etc/group), et de grer la main la
suppression ventuelle ou l'archivage de ses donnes sur disque.
La commande adduser (prsente sur beaucoup de distributions de GNU/Linux) n'est pas standard :
mieux vaut utiliser la commande useradd.
Ajouter l'utilisateur guest

: UID = 1111

avec la commande useradd.

Vrifier la cration du compte guest dans les fichiers /etc/passwd,/etc/shadow et


/etc/group. Observer les valeurs par dfaut des options non prcises : groupe, home, shell ...
Modifier la main (diter /etc/passwdsous vi) le groupe de l'utilisateur guest : remplacer le
GID existant par celui du groupe users.
Changer rcursivement le groupe du rpertoire de connexion de guest :
chgrpRusersguest

Donner un mot de passe l'utilisateur guest : passwdguest.


Activer la deuxime console (ALT + F2)
Se connecter comme utilisateur guest,
Revenir dans la premire console (root) (ALT + F1),
Administration Unix /Linux
LoiselJP 2010

page 21/78

Verrouiller le compte guest : passwdlguest,


Activer la troisime console (ALT + F3),
Tenter une connexion guest,
Revenir dans la premire console (root) (ALT + F1),
Dverrouiller le compte guest : passwduguest.

Correction automatique des incohrence


Dans certains cas, on peut dtecter et corriger rapidement des incohrences entre fichiers de
configuration en utilisant :
pwck (password check), pour vrifier les fichiers passwd et shadow,
grpck (group check), pour vrifier les fichiers group et gshadow.
Lancer les commandes pwck et grpck. Observer les rsultats ventuels.

Administration Unix /Linux


LoiselJP 2010

page 22/78

b - Donner des droits un utilisateur: la commande Sudo


Sous Windows, un petit programme, comme CPAU, peut tre utilis pour autoriser un utilisateur
excuter un programme ou une commande ("runas" en ligne de commande). Sous Linux, il existe un
programme quivalent: "sudo".
Avant de procder aux diffrents essais, vrifier l'installation de la commande. Pour cela, depuis une
console taper la commande "sudo". Pass sans argument, un rsum de son utilisation s'affiche.
Si la commande n'est pas trouve, l'installer:
- Par l'interface graphique, par le menu "Systme", lancer le programme d'ajout /
suppression de logiciel, (Synaptic, Yumex, Yast, Package Manager...)
- Sous Mandriva, utiliser "urmpi sudo",
- Sous Fedora, Redhat... "yum install sudo",
- Sous Debian ou toute version utilisant les paquets "deb", utiliser " apt-get
install sudo",
- Sous Suse "rpm -ivh sudo".

"sudo" (Substitute User DO, certains pense Super User Do, d'autres disent Switch User Do, la
premire dfinition semble l'emporter) autorise une liste d'utilisateur excuter un certain
nombre de commande partir d'un fichier "/etc/sudoers".
L'diteur "visudo" est tout particulirement prvu pour la modification et la visualisation de ce fichier.
Lancer "visudo".
En lisant les explications contenues dans le fichier:
- Donner tous les droits l'utilisateur "utilisateur",
- Donner les droits de crer et supprimer un utilisateur "passager" (utilisateur cr lors de
l'exercice prcdent).

Administration Unix /Linux


LoiselJP 2010

page 23/78

3 Ajout suppression de programmes


Sur Redhat / Fedora, dans certains cas, par mesure de scurit, le rseau n'est pas activ. Ceci
est notamment perceptible lorsque l'ajout de dpts au cours de l'installation n'est pas coch.
L'installation de nouveaux paquets peut ncessiter d'activer le service rseau.
La commande suivante se chargera de dmarrer l'interface:
/etc/init.d/networking start

a - Installer des paquets


L'installation et la gestion des paquets est l'un des points principaux de l'utilisation d'une distribution
Linux.
Le logiciel de gestion de ces paquets utiliseront des sources partir de CDrom, DVD ou encore de sites
Internet dpts, souvent appels simplement "dpt".
Les premiers dpts visibles sont ceux du DVD. Il est possible de disposer de plusieurs dpts de ce
type avec un contenu vari suivant les distributions. Mais aucun d'eux, mme les normes DVD double
couche (comme pour suse), n'inclut tous les paquets, ainsi il est ncessaire de disposer des dpts en
ligne dans la mesure du possible.
Ces dpts pourront tre grs directement dans le fichier sources.list ("etc/apt/sources.list" pour
Debian), la commande "zipper" sous Suse permet d'ajouter les dpts ("zipper ar <url>"), "drak-rpmedit-media" sous Mandriva s'acquittera de cette tche, enfin on utilisera "yum" sous Fedora avec
l'option --enablerepo ou --disablerepo.
Voici diffrents liens de dpts:
http://fr.opensuse.org (lien "Dpts de paquets"):
- http://download.opensuse.org/distribution/11.2/repo/oss/
- http://download.opensuse.org/distribution/11.2/repo/non-oss/
- http://download.opensuse.org/update/11.2/
Pour la distribution Debian, tant donn le principe communautaire, une recherche sur Internet sera
ncessaire. http://www.debian.org sera d'un grand secours. Voici quelques lignes d'un sources.list
Ddebian:
- deb http://ftp.fr.debian.org/debian/ etch main
- deb-src http://ftp.fr.debian.org/debian/ etch main
- deb http://security.debian.org/ etch/updates main contrib non-free
- deb-src http://security.debian.org/ etch/updates main contrib non-free
- deb http://ftp.fr.debian.org/debian/ stable main contrib non-free
- deb-src http://ftp.fr.debian.org/debian/ stable main contrib non-free
- deb http://www.debian-multimedia.org etch main
Pour Mandriva un choix de miroirs sera propos avec "drak-rpm-edit-media".

Administration Unix /Linux


LoiselJP 2010

page 24/78

Evidemment, une connexion Internet est ncessaire pour l'utilisation de dpts externes.
- Commencer par vrifier la connexion par un moyen quelconque (" ifconfig", "ping google.fr",
"Firefox" ou " Iceweasel").

Par l'interface graphique, il est facile de configurer le rseau.


De nombreuses distributions proposent aujourd'hui Iceweasel comme navigateur en lieu et place de
Firefox (ce qui est en dfinitive le mme programme).

b - Les frontends d'installation de paquets Yumex Synaptic...


Les frontends permettent de faire la liaison entre l'interface graphique et le logiciel de gestion des
paquets (tudis au chapitre suivant).
On les trouvera sous le nom de Yumex, Synaptic, Ksynaptics, Yast, Package Manager.

Administration Unix /Linux


LoiselJP 2010

page 25/78

Simple d'utilisation, il suffira alors de slectionner le paquet dsir pour installer le paquet voulu.
La mise jour, l'ajout de dpts se fera trs simplement.

A ce stade de la formation sur les bases de Linux, la dpendance des paquets ne sera pas traite.
- La dpendance des paquets correspond la ncessit d'installer un paquet afin que celui slectionn
la base puisse fonctionner: sous Windows, il est parfois ncessaire d'installer un runtime. Les
dpendances jouent le mme rle.

c - Les commandes de gestion des paquets


Dans le cas de dbutant, le frontend est souvent une solution simple d'emploi. Dans le cadre de
Administration Unix /Linux
LoiselJP 2010

page 26/78

l'administration, il sera souvent prfr l'utilisation de la ligne de commande.


On distingue deux grands types de paquets. Les paquets DEB et les paquets RPM.
Les distributions Suse, Fedora et Mandriva utiliseront des paquetages base RMP alors que Debian
utilise des paquets DEB.
Les commandes apt/dpkg (Debian)
Les commandes apt sont des extensions au systme DEB dveloppes pour les distributions base et
drives de Debian:
La commande "apt-get -h" permettra d'avoir trs vite une ide des commutateurs possibles.
- Ainsi:
- apt-get update met jour la liste des paquets disponibles liste dans le sources.list,
- apt-get install installe le(s) paquet(s) indiqu(s),
- apt-get remove supprime le(s) paquet(s) indiqu(s),

Quant dpkg, c'est un outil d'installation; de cration et de suppression de paquets Debian. Tout
comme apt-get, dpkg est contrl entirement en ligne de commande et possde un frontend trs
pratique: "aptitude".

Administration Unix /Linux


LoiselJP 2010

page 27/78

L'utilisation de dpkg demande quelques informations supplmentaires. L'utilisateur dsirant l'utiliser


pour l'installation/suppression de paquets, devra lire le manuel associ ("man dpkg").
Une commande intressante est notamment noter: " dpkg -l" qui permet d'obtenir les liste des
paquets installs. avec une sortie vers une fichier, cela devient trs intressant dans le cas
d'administration de poste ("dpkg -l > liste_des_fichiers.txt").

Commandes rpm/urpm (Mandriva)


Les commandes urpm sont des extensions au systme RPM dveloppes par Mandriva et distribues
sous licence GPL :
urpmi : installer un paquet (install)
urpmq : demander des infos (query)
urpme : supprimer un paquet (erase)
urpmf : quels sont les paquets qui contiennent un fichier donn (file)
Certaines distributions (Suse) peuvent utiliser des variantes de cette commande. Ce qui donne:
- rpm --install : installer un paquet
- rpmquery : demander des infos
- rpm -e : supprimer un paquet
Tous les fichiers de configuration et de donnes du systme rpm sont rangs dans le rpertoire
/var/lib/rpm/ ; ceux du systme urpm sont dans /var/lib/urpmi.

Commandes yum (RedHat / Fedora)


Les distributions Redhat/Fedora bien qu'utilisant les paquets RPM possdent leur propre systme
d'installation et lecture de lecture de paquet: YUM.
La commande yum ("yum --help" pour plus d'information), a un comportement sensiblement identique
"rpm" trouv dans Mandriva.
- La commande sera ainsi disponible pour le lecture de paquet, listes alors qu'une installation partir
d'un dpt se fera par le commande "yum" ("yum install").

Commandes Yast (Suse)


La distribution Suse utilise les paquets RPM mais possde son propre systme d'installation et lecture
de lecture de paquet: Yast.
La commande yast ("yast --help" pour plus d'information), a un comportement sensiblement
identique "rpm" trouv dans Mandriva.
- La commande sera ainsi disponible pour la lecture de paquet, lister les paquets. Une installation
partir d'un dpt se fera par la commande "yast" ("yast -i").

Administration Unix /Linux


LoiselJP 2010

page 28/78

Suivant le distribution installe, excuter les oprations suivantes:


Lancer l'interface graphique de gestion des paquets (Yumex, Synaptic, Ksynaptics, Yast),
Mettre jour la liste des paquets disponibles.

Lister tous les paquets installs :


1) rpm -q -a
2) rpmquery -a
3) dpkg -l

Pour Suse, Fedora


Pour Mandriva
pour Dedian

Comment visualiser la sortie prcdente page par page ?


1) rpmqa|more
2) rpmquery a|more
3) dpkgl|more
Comment savoir si le paquet "telnet" est install ?
1)
2)
3)

rpmqa|greptelnet,urpmqYtelnet
rpmquerya|greptelnet
dpkgl|greptelnet

Si ce n'est pas encore fait, installer le paquet "telnet".


1)
2)
3)

rpmiitelnet
rpmitelnet
aptgetinstalltelnet

4)
5)

yuminstalltelnet
yyastitelnet

PourRedHat/Fedora
PourSuse

Comment lister les fichiers appartenant au paquet "telnet"?


Exemple: dpkgLtelnet
Comment dsinstaller le paquet "telnet"? Effectuer l'opration.
Installer les paquets ssh serveur et client (les paquets installer sont: opensshserveropenssh
clientspour Mandriva, ssh pour Debian, openssh pour Fedora et Suse):
* Ces paquets peuvent tre installs, ils seront ncessaire ultrieurement
Lister les fichiers du paquet ssh serveur ("opensshserver"...appliquer la commande utilise
prcdemment avec Telnet)

Administration Unix /Linux


LoiselJP 2010

page 29/78

Vrifier que le service sshd est bien dans lanc au dmarrage de la machine :
chkconfiglistsshd

Lancer le service ssh (<=> lancer le serveur sshd )

/etc/init.d/sshstart
(peutexietersouscetteforme/etc/inti.d/sshdstart)

* Le service ssh devra imprativement tre install, il sera n/cessaire ultrieurement.

A propos de paquets RMP ou DEB


Par dfaut chaque distribution son type de paquet associ. Des outils permettent de faire la passerelle
entre les deux. ainsi "Alien" sous Debian convertira les paquets RPM en DEB en une simple ligne
de commande, aussi bien que l'inverse pour une autre distribution.
La commande taper dans "alien" (au besoin installer Alien puis trouver cette commande l'aide
de "-?") est :

Placer ici la commande:

Administration Unix /Linux


LoiselJP 2010

page 30/78

4 Configuration du systme.
Tout programme ncessite une configuration.
Les fichiers de configuration sont reconnaissables leur extension .conf.
Lister les fichiers de configuration:
find / -name *.conf

On remarquera que leur nombre est consquent. Il n'est pas possible de tous les tudier. Ce chapitre se
limitera donc l'tude d'un lment en particulier: le service rseau. La gestion des services sous Linux
est drive de celle d'Unix System V.

a - Le service rseau
Remarque : les cartes rseaux font partie des rares priphriques qui ne suivent pas le principe Unix
all is file !! Sous Linux, les cartes rseaux Ethernet sont identifies par le symbole eth0, eth1, ...
Fichiers de configuration
Les principaux fichiers qui permettent de configurer le rseau sont :
/etc/hosts
: table des correspondance adresse IP <-> nom de machine et
alias,
/etc/resolv.conf
: domaine DNS par dfaut et adresse IP des serveurs DNS
contacter,
/etc/nsswitch.conf
: dcrit quels mcanismes mettre en oeuvre pour satisfaire la
rsolution de noms de machine en adresses IP.
Le format de ces fichiers est document dans la section 5 du manuel :
man5hosts
man5resolv.conf
man5nsswitch.conf

Pour les distributions de GNU/Linux compatibles RedHat, il existe de plus des fichiers de configuration
dans le rpertoire /etc/sysconfig :
/etc/sysconfig/network contient des informations sur la configuration rseau :
NETWORKING
:yes ou no,
HOSTNAME
:nom (FQDN) de la machine,
GATEWAY
:adresse IP de la passerelle,
GATEWAYDEV
:optionnel, identification de la carte rseau pour accs la passerelles,
(eth0, eth1, ...)
NISDOMAIN
:optionnel, nom du domaine NIS.
/etc/sysconfig/networkscripts/ifcfgeth0
DEVICE=eth0
BOOTPROTO=dhcp
IPADDR=192.168.1.22
NETMASK=255.255.255.0
NETWORK=192.168.1.0
BROADCAST=192.168.1.1
ONBOOT=yes
HWADDR=a0:1c:0f:5a:7e:56
...
Administration Unix /Linux
LoiselJP 2010

contient le paramtrage de la carte rseau eth0

page 31/78

Commandes
/etc/init.d/network start|stop|restart|status :

pour dmarrer|arrter|redmarrer|interroger

le rseau

ifconfig
route
netstat

: configurer les interfaces rseau, ou obtenir des informations sur leur fonctionnement
: afficher/modifier la table de routage
: obtenir des informations sur l'tat du rseau

Redmarrer le service network


Examiner les informations correspondantes dans /var/log/messages
Examiner le contenu du fichier /etc/sysconfig/network(sur debian le fichiers est:
/etc/network/interfaces)
Lancer la commande ifconfig[a]
Lancer la commande route
Lancer la commande netstata
Visualiser le fichier /etc/hosts
Visualiser le fichier /etc/resolv.conf
Visualiser le fichier /etc/nsswitch.conf
D'autres fichiers de configuration, plus consquents, seront abords lors des derniers chapitres:
"Introduction aux serveurs LAMP".

Administration Unix /Linux


LoiselJP 2010

page 32/78

5 Les modes d'opration, procdure de dmarrage.


Seul et unique process lanc par le kernel, init a pour tche de lancer chacun des process, y compris les
diffrents daemons et les sessions de login sur les consoles texte, pour aboutir un systme configur.
Il doit aussi collecter les zombies (process orphelins) et grer l'arrt du systme. Quand le kernel est
excut, au boot, il charge les drivers de priphriques pour lesquels il a t configur puis il lance
/sbin/init , lequel prend en charge la suite des oprations, les path /bin/init et /etc/init sont aussi
compils dans le noyau).
Par la suite le kernel n'interviendra plus que pour rpondre aux appels systme. La plupart des
distributions procurent un init similaire dans son approche l'init d'Unix System V.
Ainsi init est le premier process lanc, il est le pre de tous les autres process.
Si pour une raison indtermine le kernel ne pouvait excuter init , il excuterais /bin/sh et lancerait un
shell, lequel donnerait accs en qualit de root et en mode mono-utilisateur un systme non configur.
init se charge des oprations suivantes :
- Monter le fichier racine (/)
- Monter les autres systmes de fichiers tel que spcifi dans /etc/fstab
- Activer le swap
- Initialiser les services en excutant les scripts de configuration
- Activer l'cran de login sur les consoles
C'est le script /etc/inittab qui dfinit le mode dans lequel sera dmarr le systme. Il s'agit des
runlevels ou niveaux d'excution.
Les runlevels peuvent tre spcifis diffremment d'une distribution une autre. On notera cependant
que les runlevels 0, 1 et 6 sont cods en dur dans init ou dans shutdown et ne peuvent tre changs.
Le systme est dmarr dans le mode indiqu par la ligne :
id:.:initdefault:
La syntaxe de "inittab" est la suivante :
id:runlevel:action:process
Le systme tant lanc, on peut tout moment changer de runlevel aux moyen des commandes init ou
telinit suivies du runlevel souhait. Voir ce sujet les pages man init 8 et telinit 8.
La consultation de la page man inittab 5, init 8 et telinit 8 sont particulirement instructives.

a - Les runlevels (niveaux d'excution)


Les squences de dmarrage de linux sont chelonnes en "runlevels" ou niveau d'excution, ces
niveaux d'excution pourront varier lgrement d'une distribution l'autre.

Administration Unix /Linux


LoiselJP 2010

page 33/78

RedHat et Mandriva
0 Arrt systme
1 Mono-utilisateur
2 Multi user sans rseau
3 Multi user avec rseau
4 Non utilis
5 Multi user,rseau,Xwindow
6 Arrt et reboot
.

SusE
0 Arrt systme
1 Multi user sans rseau
2 Multi user avec rseau
3 Multi user, rseau, Xwindow
4 Non utilis
5 Non utilis
6 Arrt et reboot
S Mono-utilisateur

Debian
0 Arrt systme
1 Mono-utilisateur
2 Multi user sans rseau
3 Multi user avec rseau
4 Non utilis
5 Multi user,rseau,Xwindow
6 Arrt et reboot
.

* Les distributions "Slackware" proposent encore une autre squence...

b - Les scripts de dmarrage/d'arrt


Ce paragraphe n'a pas pour rle de rentrer en dtail sur le contenu des scripts (c'est le sujet d'un autre
chapitre).
- A chaque tape du dmarrage (runlevel) une srie de scripts sont excuts. Ces scripts sont placs
dans les dossiers:
- /etc/rc0.d /etc/rc6.d pour Debian, Mandriva, Redhat/Fedora,
- /etc/rc.d/rc0.d /etc/rc.d/rc6.d pour Suse .
- On distingue alors des fichiers dont les noms commencent par K et d'autres par S:

- K signifie alors Kill (tuer, arrter),


- S signifie Start (dmarrer),
Les scripts commenant par K arrtent un service, S le dmarre.
Administration Unix /Linux
LoiselJP 2010

page 34/78

- Les chiffres suivants dfinissent la priorit de dmarrage/arrt


- K10XXX arrtera le service XXX avant le service YYY en K20YYY .

Mise en place d'un script en dmarrage


Plusieurs mthodes sont possibles pour l'ajout/suppression de script au dmarrage.
- Les scripts est disponible dans le dossier /etc/init.d (suivant la distribution cela peut tre: /etc/rc.d/init.d). Il
suffit alors de placer un lien vers ce script suivant le besoin.
La mthode dcrite ici est la mthode "manuelle" celle qui sera donc la plus prise par les
administrateurs.
Crer un script vide: "essai", ("vi /etc/init.d/essai" et quitter avec ":wq")
Crer un lien symbolique ("ln -s") du script vers le dossier de runlevel dsir:
- Pour un dmarrage:
ln -s /etc/init.d/essai /etc/ rc3.d/S98essai

- Pour un arrt:
ln -s /etc/init.d/essai /etc/rc3.d/K98essai

La suppression du script se fait simplement en reprant le script dans le dossier runlevel puis en le
supprimant ("rm script_a_supprimer").

c - Optimisation des systmes: ne pas surcharger inutilement un


serveur.
Le souci de chaque jour pour une socit est l'optimisation de ses systmes.
L'interface graphique est l'un des soucis majeurs. La perte de mmoire peut tre de quelques Mo
plusieurs centaines de Mo suivant l'interface graphique utilise (Xfce, Xcfe, Gnome, KDE...).
* N'est-ce pas ce qui a t mis en avant avec "Microsoft 2008 server Core" en supprimant partiellement
l'interface graphique?
Trouver la mmoire occupe par le systme:
- Depuis une console la commande "top" donne la mmoire en temps rel occupe,
De nombreux serveurs sont installs dsormais sans interface graphique, dans certains cas, l'option
d'installation sans interface graphique n'est pas disponible, il faut alors indiquer dans inittab de ne pas
charger cette interface:
Editer le fichier inittab,
Trouver la ligne fixant le runlevel par dfaut, (id:X:initdefault:),
Modifier la ligne de manire fixer le runlevel par dfaut au dmarrage Multi utilisateur, avec le
rseau et sans interface graphique:
- init 3 pour Fedora, Mandriva,
Administration Unix /Linux
LoiselJP 2010

page 35/78

- init 2 pour Suse,


- init 2 Debian est plac 2 par dfaut, ce qui pose l'obligation de supprimer les scripts gdm
et/ou kdm pour ne pas lancer le serveur X (Xorg).
Redmarrer le poste avec la commande init,
init 6
Dans certains cas, malgr ce passage en runlevel 2/3, l'interface graphique est lance, c'est le cas de
gdm ou kdm (Gnome Desktop manager, Kde Desktop Manager), il peut tre alors ncessaire de
supprimer manuellement le script de dmarrage:

* Ne pas supprimer les scripts en rc4.d et rc5.d, ils peuvent encore s'avrer utiles!
Agir de mme si S*kdm est existant,
Aprs l'ventuelle suppression de ces scripts perturbateurs, redmarrer avec "init 6".
Depuis le dmarrage en mode console Multi utilisateur, avec rseau, se connecter en tapant le login
et mot de passe.

Trouver la mmoire occupe par le systme:


- Depuis une console la commande "top" donne la mmoire en temps rel occupe,
La commande "ps" associe au commutateur "-x" donnera la liste des processus en cours:
Administration Unix /Linux
LoiselJP 2010

page 36/78

- Visionner les processus en cours page par page:


ps -x | more

Redmarrer l"interface graphique, procder aux squences d'initialisation suivantes:


- init 3, init 4, init 5.
- Dans le cas de Debian, le runlevel 4 n'tant pas utilis, init 5 peut tre lanc directement.

Grer le dmarrage/arrt des services par ligne de commande


Il existe un programme update-rc.d qui place ou supprime automatiquement les services des runlevels.
Ajout dun service au dmarrage, avec les options par dfaut :
update-rc.d MonService defaults

(Ajout dun service en modifiant sa priorit (ex : 90) :


update-rc.d MonService defaults 90
(Suppression dun service au dmarrage
update-rc.d -f MonService remove
Ou :
update-rc.d MonService stop 0 1 2 3 4 5
(L'administration Linux a pour avantage d'tre totalement contrlable, l'administrateur veut ce contrle,
cette commande, bien pratique, reste peu utilise.

Administration Unix /Linux


LoiselJP 2010

page 37/78

6 Planifier des tches : Cron


Unix intgre un dmon "crond" qui est charg de planifier le lancement de tches avec une priodicit
rglables la minute, l'heure et le jour.
crond gre pour chaque utilisateur un fichier crontab, qui dcrit la priodicit de lancement et les
actions lancer.
On trouve galement des fichiers crontab utiliss pour la maintenance priodique de la machine
(id=root) qui sont dans les rpertoires /etc/cron.daily, /etc/cron.hourly,
/etc/cron.monthly et /etc/cron.weekly.
Consulter les information sur le format du fichier crontab :
man 5 crontab
diter le fichier crontab par la commande crontabe
vous tes sous vi : taper i pour passer en mode insertion et entrer les lignes suivantes
SHELL=/bin/sh
MAILTO=root
#
0,5,10,15,20,25,30,35,40,45,50,55****rootecho`date`>>/root/h
quitter vi en sauvegardant (:wq)

Quel est le rsultat de ce fichier crontab ?

Visiter le fichier "/root/h"pour constater les modifications apportes au fichier crontab.

Administration Unix /Linux


LoiselJP 2010

page 38/78

7 SSH
SSH est un moyen de connexion distante scuris et crypt (Secure SHell). La connexion s'effectue par
change automatique de clef cryptes.
Sur Redhat / Fedora, dans certains cas, par mesure de scurit, le rseau n'est pas activ.
L'installation de nouveau paquet peut ncessiter d'activer le service rseau.
Les paquets ncessaire pour utiliser SSH sont:ssh/openssh/opensshserveropensshclients(il
sont diffrents en fonction des distribution)
Si ce n'est pas encore fait, les installer suivant la distribution:
1)urpmiopensshserveropensshclients
2)rpmiopensshserveropensshclients
3)aptgetinstallssh

4)ysatiopenssh

Sur Suse le dmon sshd devra tre lanc pour une utilisation distante
Lancer sshd:
/etc/init.d/sshd

SSH est un des moyens de contrle distance les plus utiliss, certains logiciels sous Microsoft
Windows tels que Putty (freeware) permettent de faire l'interface entre les deux systmes.

Les commandes en ligne sont les seules disponibles.


Administration Unix /Linux
LoiselJP 2010

page 39/78

Trouver l'adresse IP du poste:


ifconfig
Se connecter sur l'adresse IP fournie en cours de sance:
ssh ip_distante
Trouver le nom de la machine distante:
uname -a
La taille de la mmoire du poste distant:

Les commandes les plus utilises:

at - excute une action une heure dfinie,


awk - langage de programmation pour traiter des fichiers,
cat - liste le contenu d'un fichier,
cd - changement de rpertoire,
chgrp - change un fichier de groupe,
chmod - change les droits d'accs un fichier,
chown - changement de propritaire d'un fichier,
cp - copie de fichiers,
cut - coupe une chane (surtout utilis dans les scripts),
date - affiche/modifie la date,
df - affiche l'espace disponible,
diff - affiche la diffrence entre 2 fichiers,
du - indique l'espace disque utilis,
egrep - recherche dans un fichier,
find - recherche de fichiers,
ftp - transfert de fichiers,
grep - recherche dans un fichier,
history - liste des dernires commandes utilises,
kill - arrter un process,
sh ou ksh ou rsh - appel d'un shell (interprteur de commandes),
ln - cre un lien sur un fichier,
lp ou lpr - redirection vers l'imprimante,
lpstat - information sur les imprimantes,
ls - liste des fichiers,
mail; mailx - affiche et envoie des messages,
man - commande aide sur une commande,
mkdir - cre un dossier,
more - affiche un fichier page page,
mv - dplace un fichier,
passwd - changer le mot de passe,
ps - listage des process,
pwd - affiche le chemin du dossier en cours,
rlogin user - changement d'utilisateur,
rlogin -l user machine - connexion sur une autre machine,
rm - dtruit un fichier,
rmdir - dtruit un dossier,
rsh -l user machine - excute une commande sur une machine distante,

Administration Unix /Linux


LoiselJP 2010

page 40/78

rusers - liste les utilisateurs connects au rseau, (Pas installe par dfaut. A installer pour tre utilise)
set - afficher les variables d'environnement,
sh - appel du shell de base (Bourne shell sous Unix),
sort - trie les ligne d'un fichier,
tar - sauvegarde / compresse,
tee - duplique un flux de donnes,
telnet - connexion un autre systme,
vi - diteur systme,
w ou who ou whoami - liste les utilisateurs connects au systme,
write - envoie un message un utilisateur du systme.

Administration Unix /Linux


LoiselJP 2010

page 41/78

8 La ligne de commande Shell


Certains administrateurs pensent tort ou raison, que l'emploi de l'interface graphique est inutile. Les
choses sont probablement discutables.
Mais il reste une chose indiscutable: qui peut le plus peut le moins. L'administrateur sachant utiliser la
ligne de commande ne sera pas perturb par l'interface graphique. L'inverse est moins vident.
De plus en plus de serveurs sont directement installs sans interface graphique. Les distributions telles
que Debian proposent ce type d'installation.
Les exercices prcdents ont propos de nombreuses commandes, dont un large rappel des commandes
utiles avec SSH.
Sous linux tout est utilisable en ligne de commande. Plusieurs interprteurs de commande sont
disponibles: SH et Bash sont les plus utiliss:
Lister les diffrents shell. Cette commande le permet: chsh -l (commande vue durant l'tude des
utilisateurs).
Dans ce chapitre, sans quitter le shell, quelques nouvelles commandes vont tre apportes. Plusieurs
nouveau paquets vont alors tre installs ces paquets servirons lors des prochains exercices.

a - Installation de Webmin
Webmin est un logiciel permettant la gestion d'un poste Linux au travers d'une interface Web. Son
utilisation sera vue ultrieurement.
Sous Debian
Pour installer Webmin des lignes devront tre ajoutes "/etc/apt/sources.list",
- deb http://ftp.fr.debian.org/debian/ etch main
- deb-src http://ftp.fr.debian.org/debian/ etch main
- deb http://ftp.fr.debian.org/debian/ stable main contrib non-free
- deb-src http://ftp.fr.debian.org/debian/ stable main contrib non-free
Mettre jour apt-get ("apt-get update"),
Tlcharger le paquet Webmin, dans le dossier /tmp ,
cd /tmp
wget http://heanet.dl.sourceforge.net/sourceforge/webadmin/webmin_1.5102_all.deb

Installer les paquets ncessaires au fonctionnement de Webmin,


apt-get install libnet-ssleay-perl libauthen-pam-perl libio-pty-perl libmd5perl apt-show-versions

Installer webmin,
Administration Unix /Linux
LoiselJP 2010

page 42/78

dpkg -i webmin_1.510-2_all.deb

Il est possible (mme courant) de rencontrer des erreurs lors d'installation suivre alors les
indications:
apt-get -f install
Sous RedHat / Fedora / Suse /Mandriva
Sur Redhat / Fedora, dans certains cas, par mesure de scurit, le rseau n'est pas activ.
L'installation de nouveau paquet peut ncessiter d'activer le service rseau.
Tlcharger le Webmin, dans le dossier /tmp ,
cd /tmp
wget http://download.webmin.com/download/yum/webmin-1.510-1.noarch.rpm

Installer webmin,
rpm -i webmin-1.510-1.noarch.rpm

Vrifier le fonctionnement de Webmin

Administration Unix /Linux


LoiselJP 2010

page 43/78

Il est possible que le chemin de connexion Webmin soit http://adresse_ip:1000 ou encore


http://localhost:10000

b - Installation du serveur http (Apache), de son serveur de page


dynamique (PHP), du serveur de base de donnes Mysql et de son
gestionnaire (PhpMyAdmin)
Installer le serveur http Apache (si ce n'est pas fait):
apt-get install apache2
rmp -i apache
urpmi apache
yum install httpd
yast -i apache2

Installer le serveur php - mysql:


apt-get install php4 php5 mysql-common mysql-client mysql-server
urpmi php4 php5 mysql-common mysql-client
yast install php mysql

Installer PhpMyAdmin:
apt-get install phpmyadmin
Administration Unix /Linux
LoiselJP 2010

page 44/78

La distribution telle que Suse n'est pas destine pour une installation comme serveur mais comme
poste de travail. Les administrateurs se dirigeront vers des distributions telles que Debian ou Redhat
pour un cet emploi.
Phpmyadmin bien qu'installable sur Mandriva ou Suse demande l'ajout de dpts, tlchargements... ce
qui dpasse un peu le sujet de ces exercices.

c - Un navigateur dans votre interprteur de commande


Installer lynx:
apt-get install lynx
rmp -i lynx
yast -i lynx
...

Il peut tre intressant depuis l'interprteur de commande d'accder une page web. Lynx est un
navigateur en mode texte. Pour le tester:
lynx debian.fr

L'interprteur de commande sh, bash ou tout autre shell parat souvent de prime abord comme
difficile utiliser. Trs vite, on constate que:
- Seules quelques dizaines de commandes sont utilises,
- Les tches, comme tout domaine d'administration sont souvent rptitives,
- Les diteur de texte sont nombreux (vi, joe, vim, ed, emacs...) mais l'utilisateur, une fois son choix
effectu, se imite souvent un seul. Il en est de mme pour les autres programmes (dont l'interprteur
de commande) ce qui diminue trs vite cette multitude de commandes,
- Il est impossible de tout connatre, --help, -?, man... (qui sera abord plus tard) sont l pour aider!

Administration Unix /Linux


LoiselJP 2010

page 45/78

9 Introduction au programme Shell


Un "script shell" est un fichier texte simple.
Il peut donc tre crit avec tout diteur de texte.
La toute premire ligne du fichier doit contenir le nom de l'interprteur utiliser (cela est valable pour
tous les langages de script). Cette ligne doit commencer par "#!" suivi de l'excutable utiliser. Pour un
shell-script bash, on aura donc en dbut de fichier :
#!/bin/bash
Le script pourra donc commencer aussi par:
#!sh
...
Ce fichier doit tre excutable. Pour cela on lui attribuera ces droits l'aide de chmod.
Si le fichier s'appelle mon_script, on peut le faire de cette manire :
chmod +x mon_script
Pour plus de dtails sur les options de chmod, utiliser "chmod --help" ou "man chmod".

a - Premier script
A prsent, on peut dans ce fichier mettre des commandes shell ou appeler des programmes comme on
le ferait dans une ligne de commande. Ensuite il sera invoqu en tapant son nom comme pour n'importe
quel autre excutable.
On peut insrer des commentaires dans un script.
Ce sont des lignes qui seront ignores par le bash. A partir d'un # tout le reste de la ligne est considr
comme un commentaire.
Se diriger dans /tmp,
cd /tmp
Crer le script "mon_script",
vi mon_script
#!/bin/bash
#Ceci est
echo Ceci
#Un autre
echo
echo Ceci

un commentaire
est affich
commentaire
est aussi affich #mais pas ce commentaire

Le rendre excutable,
chmod +x mon_script
Administration Unix /Linux
LoiselJP 2010

page 46/78

Excuter le script,
./mon_script
Un script se termine lorsque la dernire ligne a t excute. On peut toutefois forcer sa sortie avant en
utilisant la commande exit. Le code de retour du script sera celui de la dernire commande excute.
Cela moins de prciser une valeur numrique la suite de exit. C'est alors celle-ci qui sera renvoye.

b - Exemples de scripts
Les script ne peuvent contenir que quelques caractres ("mon_script" par exemple), plusieurs dizaines
de milliers de caractres.
Le dossier /etc/init.d contient de nombreux scripts que qu'il est possible de consulter:
ls -l /etc/init.d

Ouvrir quelques scripts:


vi sudo
vi ssh
...

c - Les variables spciales


Lorsqu'un script shell est excut, bash initialise certaines variables particulires qui sont alors
accessibles en lecture seule. C'est dire qu'elles ne peuvent pas tre directement modifies par une
affectation (on parle de constantes).
- La premire prdfinie est "$$" qui contient le PID du script. Ce Process ID, ou en franais
l'identifiant de processus, est un nombre qui un moment donn identifie de manire unique
une instance de programme en cours d'excution sur le systme.
Cette valeur peut servir par exemple gnrer un nom de fichier temporaire ou pour envoyer un
signal.
- Ensuite on trouve "$?" dont la valeur va changer au fil de l'excution du script. Il contiendra le
code de retour de la dernire commande excute.
Un code de retour de 0 signifie qu'il n'y a eu aucune erreur. Si cette valeur est diffrente
de 0, il s'agit d'un code d'erreur.
- La variable "$*" contient l'ensemble des valeurs passes en paramtre lors de l'excution.
- "$#" permet de connatre leur nombre.
Pour accder un paramtre en particulier, les variables positionnelles seront utilises:
$1, $2, $3, ... Pour celles aprs 9, il faut encadrer le nombre par des accolades : ${10},
${11}, ${12}, ...
- La variable $0 contient le nom du script tel qu'il a t lanc, c'est--dire avec les spcifications
de chemin ventuelles.
Se diriger dans /tmp
Crer le script "mon_script2"
vi mon_script2
Administration Unix /Linux
LoiselJP 2010

page 47/78

#!/bin/bash
echo
echo
echo
echo

Ceci
Ceci
Ceci
Ceci

est
est
est
est

le
la
le
le

nom du script : $0
ligne de parametres : $*
parametre 1 : $1
parametre 2 : $2

Le rendre excutable
chmod +x mon_script2
Excuter le script en passant 2 paramtres en ligne de commande:
./mon_script2 param1 param2
Rsultat du script

d - Raliser des tests


Pour raliser un test sur des variables ou des fichiers, on utilisera comme instruction la commande
intgre test qui permet d'oprer des comparaisons.
Voici quelques oprations courantes:
La page de manuel du programme "test" ("man test") ou celle de bash apportera des
informations complmentaires.
Quelques tests possibles :
test
test
test
test
test
test

-e /tmp/mon_script1 # /tmp/mon_script1 existe


"$VAR1" = "valeur" # La variable VAR contient la chane valeur
"$VAR1" != "$VAR2" # Les 2 variables ont des contenus diffrents
"$VAR1" -lt "3" # VAR contient un numrique infrieur 3
-n "$VAR1" # VAR contient une chane de longueur non nulle
-z "$VAR1" # VAR contient une chane de longueur nulle

Crer le script suivant "mon_script3" (sans oublier #!/bin/bash )


VAR1=$1
VAR2=$2
if [ -z "$VAR1" ]
then
Echo Vide
Else
Echo Non vide
fi
echo
if [ "$VAR1" = "$VAR2" ]
then
Echo Identique
Else
Echo Different
Administration Unix /Linux
LoiselJP 2010

page 48/78

fi

Excuter le script en passant diffrentes valeurs comme paramtre (ne pas oublier chmod +x
mon_script3):
./mon_script3
./mon_script3
./mon_script3
./mon_script3
....

rien
rien rien
valeur rien
3 4

Si on utilise des variables pour les expressions de test, il vaut mieux les mettre entre
guillemets. Car dans le cas o ces variables ne seraient pas initialises, un argument serait
manquant. Alors que de cette manire, il y a une chane vide dans le pire des cas. Ceci est
particulirement utile avec les options -n et -z.
Si on essaye de faire une comparaison arithmtique avec une des valeurs qui ne serait pas un
nombre, on obtient une erreur. La liste de ces oprations est : -eq (=), -ne (!=), -lt (<), -le (<=),
-gt (>), -ge (>=). Entre parenthses tant indiqus leurs quivalents mathmatiques.
On peut demander inverser le rsultat du test en utilisant l'oprateur de ngation ! (point
d'exclamation). On peut aussi utiliser -a et -o pour respectivement avoir un ET et un OU logique entre
plusieurs expressions. Voici un exemple :
test "$VAR" -lt 3 -o "$VAR" -ge 8

Celui-ci sera vrifi si VAR contient un numrique infrieur 3 ou bien suprieur ou gal 8.
Une version abrge de test existe. Il suffit de remplacer son nom par [ et de mettre un ] la fin de
l'expression. Cela permet de mieux faire ressortir les tests. Sur d'anciens systmes, [ tait un lien
symbolique vers l'excutable test. A prsent, les deux sont diffrents et sont intgrs au shell.

e - Les structures de contrle


Dans les scripts, il est utile de faire des tests pour n'excuter certaines parties que quand les conditions
requises sont prsentes. Cela se fait l'aide de "if". Sa syntaxe est la suivante :
if instructions
then
#1er bloc d'instructions
else
#2eme bloc d'instructions
fi

Juste aprs le if, on trouve un nombre quelconque d'instructions (pouvant tre sur plusieurs lignes).
Elles seront toutes excutes jusqu' ce qu'un "then" soit trouv. Ensuite ce qui importera est le code de
retour de la dernire instruction. Si la valeur est 0 (ce qui correspond aucune erreur pour bash) le
premier bloc d'instructions est alors excut. Dans le cas contraire, ce sera le second. Le "else"
("sinon") et le second bloc d'instructions sont facultatifs. Si le rsultat est faux et que l'on n'a pas cette
deuxime partie, rien ne sera fait. Le fi devra en tous les cas tre prsent pour indiquer la fin du bloc de
test.
Dans ce genre de situation, la commande test sera trs utile. Par exemple pour tester que la variable
Administration Unix /Linux
LoiselJP 2010

page 49/78

VAR contient la chane VALEUR (en version abrge) :


if [ "$VAR" = "VALEUR" ]
then
echo VAR contient bien VALEUR
else
echo VAR ne contient pas VALEUR
fi

Ce chapitre n'aborde que de trs loin la cration de scripts.


La cration de script peut relever du domaine de programmeur, car il existe de
nombreuses commandes et fonction possible. En voici quelques exemples:
La fonction case variante de if:
case $variable in
valeur1)
#1er bloc d'instructions
;;
valeur2)
#2me bloc d'instructions
;;
valeur3)
#3me bloc d'instructions
;;
*)
#Traitement des autres valeurs
;;
esac

La boucle While (pendant)


while instructions
do
# Traitement rpter
done
until instructions
do
# Traitement rpter
done

La boucle Until (tant que, variante de while)


until instructions
do
# Traitement rpter
done

La boucle For (pour, variante de While)


for variable in liste_de_valeurs
do
# Traitement rpter
done
for i in 1 2 3 4 5 6 7 8 9 10
do
echo $i
done

f - Fin de formation jour 2


(A raliser suivant l'avance dans le TP)
Administration Unix /Linux
LoiselJP 2010

page 50/78

Afficher une date personnalise

* Sachant que $(date +"%m") donne le mois en cours,


* Sachant que $(date +"%d") donne le jour en cours,
* Sachant que $(date +"%y") donne l'anne mois en cours,
* Sachant que $(date +"%M") donne les minutes en cours,
* Sachant que $(date +"%H") donne l'heure en cours,
* Sachant que $(date +"%S") donne les secondes en cours,
* Les donnes peuvent tre combines: $(date +"%d-%m-%d") donne la date au format , jjmm-yyyy
(Ces informations sont retenir, elles sont susceptibles de servir durant le chapitre sur les
sauvegardes et sur la rsolution de problmes)

Crer un script d'accueil:


Qui donne pour rsultat en fonction de l'heure:

ou

S'aider des exemples donns dans les paragraphes prcdents:


Comparer les heures:
- Pour le matin:
test $(date +"%H") -lt 12

- Pour l'aprs midi:


test "$VAR" -lt 12

Pour les plus avancs, il est possible de terminer cette seconde journe en compltant votre script
d'accueil.
- Le souci premier de l'administrateur est de connatre le nombre de fichiers placs sur le serveur, la
l'occupation disque...
- Complter le script afin de personnaliser le message d'accueil suivant l'utilisateur connect, avec
l'affichage de ces donnes,
- A l'aide d'Internet, effectuer les modifications du systme afin de faire apparatre ce message lors de la
connexion SSH (un fichier de configuration.... peut-tre).

Administration Unix /Linux


LoiselJP 2010

page 51/78

10 Suivi des procdures


De nombreuses socits utilisent aujourd'hui des procdures d'installation.
Le suivi de ces procdures permet la mise en place de configuration complexes sans que le technicien
qui les applique ai un rel besoin d'en matriser tous les points, cela peut galement concerner une
harmonisation des installations (cas de fournisseur de services web, stockage...) ou encore un suivi de
procdure en cas de panne.
Dans certains cas, une procdure peut atteindre plusieurs dizaines de pages.
Voici un exemple de procdure appliquer:
Le contexte
Dans le cadre de l'amlioration des performances Internet du serveur en cours d'installation, un filtrage
Internet est mis place.
L'installation d'un serveur Squid (serveur proxy) avec un filtrage SquidGuard a t slectionn.
La procdure suivre: (La procdure ne concerne que la mise en place du squid et son systme de rapport)
Installer le programme squid et ses dpendances (adapter la distribution: apt-get install squid)
Copier le squid conf par dfaut puis le modifier suivant la procdure :
La procdure pourrait se continuer de la sorte.... ( raliser si le temps accord la manipulation le
permet)
cp /etc/squid/squid.conf /etc/squid/squid.conf.default
chmod 777 /var/spool/squid
vi /etc/squid/squid.conf

Configurer le fichier squid.conf suivant ces lignes:


Remplacer "le_nom_du_poste" suivant le nom du poste en cours
Remplacer "acl LAN_SQUID src 192.168.0.0/16" suivant le masque indiqu
##### /etc/squid/squid.conf par Loisel JP #####
http_port 3128
cache_mem 30 MB
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
access_log /var/log/squid/access.log squid
hosts_file /etc/hosts
refresh_pattern ^ftp:
1440 20%
10080
refresh_pattern ^gopher:
1440 0%
1440
refresh_pattern .
0
20%
4320
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443
# https
acl SSL_ports port 563
# snews
acl SSL_ports port 873
# rsync
acl Safe_ports port 80
# http
acl Safe_ports port 21
# ftp
acl Safe_ports port 443
# https
Administration Unix /Linux
LoiselJP 2010

page 52/78

acl Safe_ports port 70


# gopher
acl Safe_ports port 210
# wais
acl Safe_ports port 1025-65535
# unregistered ports
acl Safe_ports port 280
# http-mgmt
acl Safe_ports port 488
# gss-http
acl Safe_ports port 591
# filemaker
acl Safe_ports port 777
# multiling http
acl Safe_ports port 631
# cups
acl Safe_ports port 873
# rsync
acl Safe_ports port 901
# SWAT
acl purge method PURGE
acl CONNECT method CONNECT
acl LAN_SQUID src 192.168.0.0/16
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access allow LAN_SQUID
http_access deny all
http_reply_access allow all
icp_access allow all
cache_effective_group proxy
coredump_dir /var/spool/squid 10000 16 256
cache_dir ufs /var/spool/squid 1024 256 256
cache_mgr loiseljp@club-internet.fr
visible_hostname le_nom_du_poste
redirect_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf
#### END /etc/squid/squid.conf ####

Enregistrer / quitter
/usr/sbin/squid -zchown
chown -R root.root /var/spool/squid
/usr/sbin/squid -z
/usr/sbin/squid
/etc/init.d/squid restart

Aprs modifications
/etc/init.d/squid restart

### Cration du rapport squid


########################
Php myadmin + rapport
apt-get install phpmyadmin mysql-server

Rotation des logs et installation de l'outil de rapport :


apt-get install sarg logrotate

Configuration de cron :
mkdir /etc/cron.minutely
Administration Unix /Linux
LoiselJP 2010

page 53/78

vi /etc/crontab

Ajouter
*/10 *

* * * root

cd /

run-parts --report /etc/cron.minutrely

Enregistrer le fichier "/etc/crontab" puis crer le script "sarg"


vi /etc/cron.minutely/sarg
#!/bin/sh
/usr/sbin/sarg-reports today

Crer un lien symbolique entre le rapport Sarg et /var/www/squid-report


Relancer Squid
Vrifier la gnration du rapport toutes les 10 minutes dans /var/www/squid-report

Administration Unix /Linux


LoiselJP 2010

page 54/78

11 Rle de l'administrateur / Tches d'administration


Le rle de l'administrateur est le mme sous Linux que sous tout autre systme d'exploitation.
On y retrouve, les fonctions lies la scurit:
- Scurit des informations, perte, vol, sauvegarde,
- Entretien du serveur, mise jour, adaptation de paquets,
- Garantie des performances,
- Rsolution des problmes et pannes,
- ....

a - Pour cela il dispose:


- De moyens de connexion distante (SSH abord prcdemment avec le shell),
- D'outil d'administration comme Webmin, annuaire LDAP (tout comme Windows),

b - Webmin
Webmin permet de se connecter en protocole scuris (https) localement "https://localhost" ou
distance. La connexion utilise le port 10000 par dfaut.
Se connecter sur Webmin en utilisant le compte root avec son mot de passe.

Administration Unix /Linux


LoiselJP 2010

page 55/78

Modifier la langue par dfaut.

Gnralement seul root est pris comme administrateur Webmin.


Pour l'occasion, crer un groupe d'utilisateurs "Webmin":

Administration Unix /Linux


LoiselJP 2010

page 56/78

Convertir les utilisateurs en utilisateurs Webmin.

Ne garder que root et "utilisateur" comme utilisateurs de Webmin.

Administration Unix /Linux


LoiselJP 2010

page 57/78

Vrifier les droits accords "utilisateur":

Activer ou ractiver un service:

Activer ou ractiver kdm et/ou gdm:

Administration Unix /Linux


LoiselJP 2010

page 58/78

Vrifier la configuration du serveur:

Excuter une commande:

Administration Unix /Linux


LoiselJP 2010

page 59/78

Prendre quelques minutes pour visiter les diffrentes possibilits (par exemple les tches du cron)...

Administration Unix /Linux


LoiselJP 2010

page 60/78

12 Gestion des sauvegardes


Tout comme le rle de l'administrateur vu prcdemment et la gestion de la scurit abord au prochain
paragraphe, le souci des sauvegardes est identique celui rencontr sur les installations Microsoft.
On y trouve des solutions Raid, matriel ou logiciel, des solutions sur support externe...

a - Cration d'un systme de sauvegarde


Crer un dossier "sauvegardes" dans le dossier /home,
Crer un script effectuant une sauvegarde du dossier /home/utilisateur, cette sauvegarde portera le
nom du jour (jj-mm-yyyy),
Placer ce script dans le dossier de sauvegarde cr puis, par un lien symbolique, le placer dans
"/etc/cron/cron.daily" ("/etc/cron.daily" suivant la distribution),
La cration d'un lien symbolique se fait avec la commande "ln" puis le commutateur "-s" pour
le symbolique):
ln -s /dossier_source/origine /autre_dossier/cible_du_lien

Modifier crontab de manire ce que la sauvegarde se fasse chaque jour 23h ,


Vrifier le fonctionnement de la sauvegarde en modifiant l'heure systme ( remettre ensuite).
La commande "date ...." est utilise pour modifier la date et l'heure du systme.
Etudier la possibilit de supprimer les anciennes sauvegardes automatiquement par ce mme script.
" test -f fichier" permet de tester l'existence d'un fichier.

Administration Unix /Linux


LoiselJP 2010

page 61/78

13 Scurit
La scurit sous Linux est identique celle rencontre sous Microsoft Windows. La problmatique est
donc la mme.

a - Virus
Contrairement ce qu'il en est pens, Linux n'est pas exempt de virus, il est simplement moins
attaqu!
Il existe donc des antivirus sous Linux.
Installer ClamAv
apt-get install clamav

Le dmon freshclam ("freshclam --help") permet la mise jour de la base antivirale.


Installer le frontend ClamAv pour Kde
apt-get install klamav

Effectuer un scanne rcursif des fichiers


cd /
clascan --recursive

Stopper le scanne en cours (pour les administrateurs toujours trop presss):


CTRL+C

b - Le pare-feu: IpTables
Linux dispose d'un pare feu systme trs puissant mais assez difficile matriser. Un pare-feu mal
configur ne sert rien. Dans la trs grande majorit, les entreprises prfrent donc faire appel au
matriel pour s'acquitter de cette tche.
Installer Firestarter pour grer Iptables:

Administration Unix /Linux


LoiselJP 2010

page 62/78

Lancer Firestarter, vrifier l'autorisation d'utiliser SSH, ajouter au besoin l'autorisation pour Webmin
(https sur le port 10000):

Administration Unix /Linux


LoiselJP 2010

page 63/78

L'utilisateur suffisamment avanc pourra dcouvrir "iptables" avec les commandes:


man iptables
iptables -h
iptable -L

c - Enfermer l'utilisateur dans un dossier: Chroot


Linux propose une option trs intressante: placer le dossier racine d'un logiciel un emplacement
Administration Unix /Linux
LoiselJP 2010

page 64/78

particulier. Tout utilisateur distant ne pourra sortir de ce dossier.


Trouver les informations sur Chroot: "man chroot"

Installer Vsftp,

Dfinition de Vsftp (man vsftpd):

Trouver le fichier de configuration de Vsftp (man vsftpd):

Ouvrir le fichier de configuration et retrouver les diffrents paramtres.


listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=NO
xferlog_file=YES
ftpd_banner=/home/ma_banniere
chroot_local_user=yes

Vsftp propose mme plusieurs niveau de Chroot:


chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

Administration Unix /Linux


LoiselJP 2010

page 65/78

14 Le programme MAN
En dbut de document il a t prcis qu'une grande partie de la formation d'un administrateur Linux
provient de l'autoformation. Les manuels sont alors d'une grande utilit.
Un aide succincte est obtenue avec la commande --help ou -h -?.... mais cette aide est souvent trs
rduite et ne rpond qu'aux questions de base telles qu'argument de ligne de commande, forme de la
commande.
La manuel du programme donne une information plus dtaille.
La plupart des programmes possdent leur manuel.
Obtenir des informations sur le programme man.
man man
Il n'est pas possible de tout connatre, il existe pour la plupart des distributions plus de 25000 paquets,
avec plusieurs commandes et commutaeurs (voir dizaines de commandes) pour chaque programme.
C'est le rle des manuels que d'aider se souvenir de toutes les formes de commande.

a - Trouver des informations


Le chapitre suivant propose de dcouvrir les serveurs LAMP. La lecture des manuels peut apporter
des prcisions sur les dmons, fichiers de configuration, chemins...
Rcuprer les informations sur le redmarrage d'un serveur Apache,
man apache2

On y apprend que le processus ne se lance pas seul, qu'il ne devrait pas tre lanc directement,
on y trouve un chemin pour la documentation complte, on y dcouvre "apache2ctl" qui est le
contrleur d'interface.
Rcuprer les informations sur la configuration d'un serveur Mysql:
Rcuprer les informations sur PhpMyadmin:

Administration Unix /Linux


LoiselJP 2010

page 66/78

15 Introduction au serveur LAMP


a - Qu'est ce qu'un serveur LAMP
Les serveurs Linux Apache Mysql Php est la forme la plus rpandue des serveurs Linux
actuellement. On estime que 80% des serveurs mondiaux Internet sont sous Linux.
La distribution telle que Suse n'est pas destine une installation comme serveur mais comme poste
de travail. Les administrateurs se dirigeront vers des distributions telle que Debian ou Redhat pour un
tel emploi.
Phpmyadmin bien qu'installable sur Mandriva ou Suse demande l'ajout de dpts, tlchargements... ce
qui dpasse un peu le sujet de ces exercices.
L'administration de serveur WEB est souvent considre comme un mtier part entire. Il est
ncessaire pour l'administrateur d'avoir des connaissances supplmentaires sur l'administration des
bases de donnes et parfois mme en programmation. Notamment pour la rsolution de problmes.

b - Le serveur LAMP
Le serveur a t install au cours du chapitre 8 "La ligne de commande Shell",
Dmarrer le serveur si ce n'est fait (vrifier avec la commande "ps -x"):
/etc/init.d/httpd start
/etc/init.d/apache2 start
...

Lancer l'interface graphique puis le navigateur Web,


"startx" ou "init 3,4,5"
Placer l'url du serveur dans la barre d'adresse:
http://localhost

ou
http://ip_de_serveur

ou
http://nom_du serveur

Il fonctionne! (la page d'accueil du serveur pourra varier)


Trouver le dossier de stockage des pages (la mthode sera aborde lors du chapitre sur
l'introduction aux serveurs Lamp):
cd /var/www
Administration Unix /Linux
LoiselJP 2010

page 67/78

Sur la distribution Suse, le dossier par dfaut est plac en /srv/www


Editer la page "index.html",
Personnaliser la page.

c - Paramtre du serveur
Chaque paramtre de serveur, chaque serveur et chaque distribution sont diffrents. Le sujet ne peut
tre trait, donc, de manire gnrale.
Les quelques points suivants traitent de modifications diverses qu'il faudra alors extrapoler pour
d'autres serveurs.
Trouver le fichier de configuration apache (man apache2), voici une mthode:
find / -name *apache*.conf

Dans le fichier apache2.conf, trouver le dossier de travail par dfaut:


serverRoot = "/etc/apache2"

Observer le dossier par dfaut puis trouver le chemin par dfaut du site:
cd /etc/apache2

Dans le cas de ce serveur, "sites-available" donnera les sites disponibles sur le serveur.
Suivant les cas, le fichier httpd.conf peut contenir le chemin par dfaut.

Trouver les fichiers d'apache2:


Administration Unix /Linux
LoiselJP 2010

page 68/78

whereis apache2

Effectuer une recherche et trouver les fichiers de configuration httpd:


find / -name *httpd*.conf

Remplacer l'original ("/etc/apache2/httpd.conf") par l'exemple par dfaut:


cp /usr/share/doc/apache2.2-common/examples/apache2/extra/httpd-default.conf
/etc/apache2/httpd.conf

Aprs observation des paramtres:


Dplacer le dossier par dfaut du serveur vers "/home/www", relancer le serveur http.

Sur le mme serveur... dans "sites-available", modification du fichier "default".


Dplacer le dossier /var/www en /home/www:
mv /var/www /home/www

Redmarrer le serveur:
/etc/init.d/apache2 restart
Administration Unix /Linux
LoiselJP 2010

page 69/78

Vrifier les chemins, donnes, ventuellement faire une modification sur le fichier
index.html de base puis vrifier le bon fonctionnement du serveur dans sa nouvelle
configuration.

d - Autres serveur
Linux propose d'autres serveurs:
- DHCP ("apt-get install dhcp3-server"),
- DNS ("apt-get install dhcp3-server"),
- FTP ("apt-get install ftp"),
- NFS ("apt-get install nfs-user-server"); partage de fichier entre systme Linux,
- POSTFIX ("apt-get install postfix"); serveur de messagerie,
- SAMBA ("apt-get install samba"); partage de fichier, serveur de domaine Windows,
- TOMCAT ("apt-get install tomcat5.5"); serveur d'application J2ee,
- ...
Ces serveurs sont grables et configurables de diverses manires dont Webmin.
Administration Unix /Linux
LoiselJP 2010

page 70/78

Administration Unix /Linux


LoiselJP 2010

page 71/78

16 Rsolution des problmes


Sous Windows, l'administrateur n'a qu'une interaction trs faible, les bugs sont corrigs par mise jour.
Mme pour une utilisation totalement diffrente, un serveur Windows ressemble trs fortement un
autre.
Dans le cas de Linux, c'est totalement diffrent, l'administrateur est libre de modifier tout ou partie des
fichiers de son serveur, de supprimer tous les paquets qu'il juge inutiles. Les possibilits de
configuration pour un mme emploi sont presque infinies. Un serveur ne ressemblera pas un autre
serveur.
Toutes ces variantes rendent les problmes tout aussi varis.
Rappel (c'est l'une des premires phrase de ce document)
Une grande partie de la formation d'un administrateur systme Unix vient de l'autoformation!

a - Les commandes utiles:


top - donne les processus en cours et leur utilisation,
ps -x - donne la liste de processus,
ls - liste les fichiers et dossier d'un dossier,
ls -l - affiche les dtails d'un dossier,
cd - positionne le dossier de travail,
pwd - donne le dossier en cours,
df - donne l'utilisation d'un disque,
chmod - change les droits sur un fichier pour un utilisateur,
chroot - permet de changer le dossier racine de travail (trs utile avec un "live cd"),
ln - cre un lien,
cp - copie,
tar ou zip compresse/dcompresse.

b - Utiliser l'aide
Man est l'outil indispensable connatre l'emploi d'une commande,
L'aide --help, -? rpond souvent aux questions d'ordre de commutateur,
Ne pas oublier Internet...
"les mans linux en franais"... pourquoi pas!

c - Cas concrets
(ce sont des cas concrets rel rencontrs)

Administration Unix /Linux


LoiselJP 2010

page 72/78

c.1 Le contexte
- Une entreprise dispose d'un serveur Linux pour y stocker ses donnes sensibles,
- Ses donnes ne reprsentent que quelques dizaines de Mo et sont stockes dans /home/sensible
- Bien qu'elle dispose de disque en miroir, une sauvegarde rgulire sur disque amovible est ncessaire.
- Un script a t mis en place dans /etc/cron.minutly pour tre excut toutes les 10 minutes. le fichier
est un script shell appel "sauvegarde".
- La sauvegarde ne s'effectue pas.
Le fichier:

Le contenu du crontab:

Quelles solutions proposer ce problme?

Administration Unix /Linux


LoiselJP 2010

page 73/78

c.2 Le contexte
- Une entreprise dispose d'un serveur Linux de gnration rcente,
- Cette socit est spcialise dans le stockage: elle stocke des dizaines de milliers de dossiers, qui
contiennent eux mme des milliers de fichiers,
- Ce serveur est quip d'un trs gros disque (plusieurs dizaines de To),
- Ce disque est sur un systme de fichier "ext3",
- Alors qu'un des clients de l'entreprise copie ces dossiers (quelques centaines de MO), un message
survient: "maximum size in node". Quelle que soit les manipulations qui ont suivi sur ce serveur le
mme message apparat, sans la possibilit d'ajouter de nouveaux fichiers.

Dterminer quoi correspond cette erreur?

Quelles solutions proposer?

c.3 Le contexte
-Dans une entreprise fournissant des serveurs ddis. Un client, a install de nombreux programmes, il
utilise trs largement son serveur Squid (abord au chapitre 10 "Suivi des procdures")....
- Il demande qu'on lui fasse un peu de nettoyage.

Actions mener:
- Supprimer les fichiers temporaires,
- Supprimer les caches (fichiers, installation, paquets devenus inutiles, Squid),
- Rinitialiser les dossiers du serveur proxy,
- Compresser les anciens logs, les supprimer ensuite.
Quelles sont les commandes?

Administration Unix /Linux


LoiselJP 2010

page 74/78

d - Fin de formation jour 3


(A raliser suivant l'avance dans le TP)
Pour les plus avancs, il est possible de terminer cette dernire journe avec ce cas de figure:
- Le poste install au cours de cette formation est destin a tre utilis comme serveur de donnes,
- L'interface graphique est devenue inutile,
- Les partitions n'ont plus une taille adapte, la taille peut varier dans l'avenir suivant l'utilisation du
poste.
Actions mener:
- Supprimer les diffrents bureaux installs pour une utilisation exclusivement en mode texte,
- Installer LVM (LVM2),
- Modifier la taille des partitions, la vole, avec LVM, afin d'optimiser la taille donne au dossier
"/home".

Administration Unix /Linux


LoiselJP 2010

page 75/78

17 Conclusion
a - Continuer dcouvrir Linux
L'application des exercices de ce document ncessite l'installation d'un poste et, donc, de disposer de place pour le mettre en
oeuvre. C'est le sujet du chapitre suivant.
Mais pour continuer dcouvrir Linux, il est possible d'utiliser des "live CD".
Avec un fonctionnement correct et une fluidit plus qu'honorable pour ce type de support, ce sont des CDrom bootables sur
lesquels se trouvent une version excutable directement depuis le CDrom. Le principe de fonctionnement de ce type de
CDrom est simple expliquer mais serait hors propos.
Il existe de nombreuses versions de Live CD. La plus connue et la plus populaire est Knoppix (http://www.knoppix.org/)
elle prsente sur un CDrom, par un jeu compression, plus de 1,4 go de programmes ce qui permet de dcouvrir le systme.
Kaella (http://kaella.linux-azur.org/) est une version francise de Knoppix. Mais presque toutes les distribution sont
disponibles en version live, on trouvera donc facilement une version d'OpenSuse, Mandriva, Ubuntu...

b - Comment mettre en oeuvre ou appliquer les exercices prcdents?


Il n'est pas vident de devoir rinstaller son poste avec une autre version logicielle chaque nouvel essai.
La solution virtuelle est un moyen trs pratique pour faire des essais avant de se lancer en grandeur relle.

Quelques exemples de virtualisation:

- Vmware propose une solution gratuite et performante (Vmware server 2.X),


- VirtualBox plus lger et abordable, cependant il propose moins de possibilits et d'outils,
- VirtualPC de Microsoft propose galement une solution simple d'emploi.

Administration Unix /Linux


LoiselJP 2010

page 76/78

c - Appliquer, r-appliquer et pratiquer


Aucune formation ne sert si elle n'est pas r-applique et pratique.
Combien existe-il de commandes Linux sur un systme simple (systme de base)?
Taper la touche "Tab" l'invite de commande pour voir combien de commandes il existe:

___________________________
_______________________

# init 0

Administration Unix /Linux


LoiselJP 2010

page 77/78

Proprit
Administration Unix /Linux
Jean Paul Loisel
56 Rue Philippe de Girard
59160 Lomme
loiseljp@club-internet.fr
06 99 15 99 00

Licence
Ce document est distribu en "Public Documentation License".
The contents of this Documentation are subject to the Public Documentation License. You may only use this
Documentation if you comply with the terms of this License.
A copy of the License is available at this mail loiseljp@club-internet.fr.
The Original Documentation is "TP: Installation d'un serveur GNU/Linux Administration Linux de base".
The Initial Writer of the Original Documentation is Jean Paul LOISEL 2010. All Rights Reserved.

Contributor(s): ______________________________________.
Portions created by ______ are Copyright _________[Insert year(s)]. All Rights Reserved.
(Contributor contact(s):________________[Insert hyperlink/alias]).

The text of this chapter may differ slightly from the text of the notices in the
files of the Original Documentation.
You should use the text of this chapter rather than the text found in the Original Documentation for Your
Modifications.

Administration Unix /Linux


LoiselJP 2010

page 78/78

S-ar putea să vă placă și