0% ont trouvé ce document utile (0 vote)
31 vues66 pages

Cours Linux

Le document présente un module sur le système d'exploitation Linux, abordant des sujets tels que la gestion des fichiers, des comptes, des shells, et la sécurité du système. Il inclut également des travaux pratiques et des références à des commandes essentielles pour manipuler les fichiers et gérer les utilisateurs. Les sections détaillent les commandes, leur utilisation, et les structures de fichiers associés à la gestion des utilisateurs et des groupes.

Transféré par

mrymbady525
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
31 vues66 pages

Cours Linux

Le document présente un module sur le système d'exploitation Linux, abordant des sujets tels que la gestion des fichiers, des comptes, des shells, et la sécurité du système. Il inclut également des travaux pratiques et des références à des commandes essentielles pour manipuler les fichiers et gérer les utilisateurs. Les sections détaillent les commandes, leur utilisation, et les structures de fichiers associés à la gestion des utilisateurs et des groupes.

Transféré par

mrymbady525
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Module

Système d’exploitation 1
Linux

Département Informatique
Année universitaire 2019-2020

L.M.D

Mr. LMD ENS


Table des matières
I. Gestion des fichiers ......................................................................................................................... 3
II. Gestion des comptes ..................................................................................................................... 11
III. Les shells .................................................................................................................................... 19
IV. Sécurité du système .................................................................................................................. 30
V. Les processus ................................................................................................................................. 35
VI. Gestion des imprimantes .......................................................................................................... 39
VII. Les systèmes de fichiers ............................................................................................................ 40
VIII. Configuration et compilation du noyau .................................................................................... 47
Travaux pratiques .................................................................................................................................. 48
1. TP n°1......................................................................................................................................... 49
2. TP n°2......................................................................................................................................... 51
3. TP n°3......................................................................................................................................... 53
4. TP n°4......................................................................................................................................... 56
5. Mini-projet : TP n°5 ................................................................................................................... 60
IX. Référence de la ligne de commandes ....................................................................................... 62
Correction des travaux pratiques .......................................................................................................... 65
1. Corrections des exercices du TP n°1.................................................... Erreur ! Signet non défini.
2. Corrections des exercices du TP n°2.................................................... Erreur ! Signet non défini.
3. Corrections des exercices du TP n°3.................................................... Erreur ! Signet non défini.
4. Corrections des exercices du TP n°4.................................................... Erreur ! Signet non défini.

Mr. LMD ENS


I. Gestion des fichiers

Généralités

Fichiers désignés par un nom pouvant comporter un nombre maximum de caractères allant de
14 à 255 suivant le type de système de fichiers utilisé.

Système d'extensions non géré en propre par Linux mais par les services et applications.

Extension Service ou application


.c Fichier source en langage C
.cpp Fichier source en langage C++
.h Fichier d'entête en langage C ou C++
.java Fichier source en langage java
.class Classe java compilée
.o Fichier objet généré par compilation
.a Bibliothéque statique
.so Bibliothéque dynamique
.sh Script shell
.gz ou .z Fichier compressé au moyen de gzip
.bz2 Fichier compressé au moyen de bzip2
.jpeg, .jpg, .gif, .png, ... Fichiers image
.txt Fichier texte
.pdf Fichier Adobe Acrobat Reader
.htm ou .html Pages Web en langage HTML
.php Script en langage php
.ps Fichiers Postscript
.tar Archive au format tar
.tgz Archive au format tar compressée par gzip
.deb Paquetage (installeur) Debian
.rpm Paquetage RedHat

Manipuler des fichiers et des répertoires

 ls : Affichage de la liste des fichiers et/ou répertoires d'un répertoire.

Mr. LMD ENS


ls : Liste des seuls noms des fichiers et répertoire dont le nom
ne commence pas par le caractère '.'.

ls -l : Liste de toutes les informations disponibles sur les fichiers


et répertoires dont le nom ne commence pas par le caractère '.'.

Sept colonnes dans l'affichage détaillé :

1. Type de fichier et autorisations (Répertoire repèré par un d en première lettre, lien


symbolique par un l en première lettre)
2. Nombre de liens matériels ou nombre de blocs pour un répertoire
3. User propriétaire
4. Groupe propriétaire
5. Taille en octets
6. Date et heure de la dernière modification (jour si + de 6 mois)
7. Nom du fichier

ls -al pour visualiser les attributs de tous les fichiers (même ceux dont le nom commence par
le caractère '.').

 cp : Copie d'un fichier ou d'un répertoire.


 mv : Déplacement ou changement du nom d'un fichier ou d'un répertoire.
 rm : Effacement d'un fichier ou d'un répertoire.
 unlink: Effacement d'un fichier.
 mkdir : Création d'un répertoire.

Mr. LMD ENS


 rmdir : Effacement d'un répertoire.
 pwd : Affichage du répertoire implicite.

pwd

 cd : Changement du répertoire implicite.

cd

 ln : Création d'un lien matériel ou symbolique.


o Lien matériel : Référence à un fichier (égalité entre tous les liens matériels sur
un même fichier ou un même répertoire, destruction réelle d'un fichier lorsque
le dernier lien matériel sur lui est supprimé).
o Lien symbolique: Raccourci vers un fichier (lien symbolique pendant si
suppression du fichier lié).

Mr. LMD ENS


Création de 1 lien matériel et 2 liens symboliques sur le même fichier.

Suppression du lien matériel et d'un des liens symboliques.

Suppression du fichier cible.

-> Mise en erreur du dernier lien symbolique.

Visualiser le contenu de fichiers

 cat : Affichage complet du contenu d'un fichier.

Mr. LMD ENS


Affichage du fichier /etc/mtab

 more : Affichage progressif du contenu d'un fichier.


 less : Affichage interactif du contenu d'un fichier.
 od : Affichage sous différents formats du contenu d'un fichier.

Affichage en héxadécimal

 head : Affichage du début d'un fichier.


 tail : Affichage de la fin d'un fichier.
 sort : Tri par ordre alphabétique des lignes d'un fichier texte.

Mr. LMD ENS


Tri par ordre alphabétique

Modifier le contenu de fichiers

 vi : Editeur de texte.

Rechercher des fichiers

 find : Recherche de la localisation d'un fichier dans l'arborescence de un ou plusieurs


systèmes de fichiers.

Localisation du fichier fstab en cherchant à partir de la racine

Mr. LMD ENS


(opération possiblement très longue)

 grep : Recherche des fichiers contenant une chaine de caractères.

Recherche de tous les fichiers du répertoire /etc qui contiennent la chaine agamemnon

Comparer des fichiers

 diff : Comparaison ligne par ligne de deux fichiers texte.


 cmp : Comparaison octet par octet de deux fichiers.

Commandes diverses

 split : Découpage d'un fichier texte en plusieurs fichiers texte.


 touch : Changement de la date de dernière modification d'un fichier vers la date
instantanée.

Mise à jour de la date de dernière modification du fichier [Link]


au moyen de la commande touch

 du : Calcul de la taille approximative d'un fichier ou d'un répertoire (récursivement


pour les répertoires).
 wc : Calcul du nombre de lignes, de mots et de caractères d'un fichier.

Un peu de technique

Mr. LMD ENS


Fichiers et répertoires stockés dans des fichiers.

Fichiers désignés par des descripteurs de fichiers appelés inodes.

Contenu d'un inode:

 attributs du fichier (ceux affichés par la commande ls -l),


 table d'accès aux blocs d'octets du fichier.

Par partition de stockage, une table d'inodes réservée à la gestion du système de fichiers de la
partition.
Table des inodes de taille statique -> Nombre de fichiers limité dans un système de fichiers.

Mr. LMD ENS


II. Gestion des comptes

Consultation des informations de compte

 id : Affichage des informations d'identité d'un utilisateur.

id sur l'utilisateur en cours et sur root

 groups : Affichage des groupes auxquels appartient un utilisateur.

groups sur l'utilisateur en cours et sur root

 finger : Affichage des informations disponibles sur un utilisateur.

Mr. LMD ENS


finger sur l'utilisateur en cours et sur root

Stockage des utilisateurs et des groupes d'utilisateurs

Utilisateurs référencés stockés dans le fichier /etc/passwd

Une ligne par utilisateur décrit par sept champs séparés par des ':' :

 login (en clair),


 mot de passe (crypté),
 numéro d'utilisateur (UID),
 numéro de groupe (GID),
 description,
 répertoire de base,
 shell de connexion.

UID : Identificateur numérique généralement unique et supérieur à 100.


0: UID de root.
1 à 99: UID réservés aux services du système d'exploitation.
UID définissables arbitrairement en dehors de cette contrainte.

Désactivation d'un compte par le placement d'un * à la place du mot de passe dans le fichier
/etc/passwd.

Problème : Fichier /etc/passwd entièrement lisible par tous les utilisateurs y compris les mots
de passe cryptés.
-> Informations en clair utilisables pour un décryptage accessibles à un hacker éventuel
possèdant un compte.

Mise en place d'un système de masquage (shadow) avec stockage des mots de passe cryptés
(avec d'autres informations) dans le fichier /etc/shadow non lisible par les utilisateurs
banalisés.
Remplacement des mots de passe par des x dans le fichier /etc/passwd. Maintient des autres
informations.

Dans le fichier /etc/shadow, une ligne par utilisateur décrit par neuf champs séparés par des ':'
:

Mr. LMD ENS


 login (en clair),
 mot de passe (crypté),
 date de dernière modification du mot de passe (en jours depuis le 1er janvier 1970),
 délai avant la prochaine modification possible après un changement de mot de passe
(en jours),
 délai avant l'obligation de changer de nouveau de mot de passe après un changement
sinon expiration du compte (en jours),
 délai d'avertissement avant une modification obligatoire,
 délai avant désactivation après une expiration,
 date de désactivation,
 reservé.

Dans le fichier /etc/shadow, désactivation d'un compte par le placement d'un !! devant le mot
de passe.

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
dhcp:x:101:101::/nonexistent:/bin/false
syslog:x:102:102::/home/syslog:/bin/false
klog:x:103:103::/home/klog:/bin/false
cupsys:x:100:106::/home/cupsys:/bin/false
messagebus:x:104:107::/var/run/dbus:/bin/false
haldaemon:x:108:108:Hardware abstraction layer,,,:/var/run/hal:/bin/false
hplip:x:105:7:HPLIP system user,,,:/var/run/hplip:/bin/false
nico:x:1000:1000:Nico,,,:/home/nico:/bin/bash

Exemple de fichier /etc/passwd avec utilisation de shadow


nico : Utilisateur créé à l'installation du système

root:$1$cJtWmhbX$1iCfb31CvckZiVDeae0Zx.:1[Link]
daemon:*:1[Link]
bin:*:1[Link]

Mr. LMD ENS


sys:*:1[Link]
sync:*:1[Link]
games:*:1[Link]
man:*:1[Link]
lp:*:1[Link]
mail:*:1[Link]
news:*:1[Link]
uucp:*:1[Link]
proxy:*:1[Link]
www-data:*:1[Link]
backup:*:1[Link]
list:*:1[Link]
irc:*:1[Link]
gnats:*:1[Link]
nobody:*:1[Link]
dhcp:!:1[Link]
syslog:!:1[Link]
klog:!:1[Link]
cupsys:!:1[Link]
messagebus:!:1[Link]
haldaemon:!:1[Link]
hplip:!:1[Link]
nico:$1$tgS/4j6v$D9dP0cyqc6QydDOQDAiPm.:1[Link]

Fichier /etc/shadow correspondant


au fichier /etc/passwd précédent

Groupes référencés stockés dans le fichier /etc/group

Une ligne par groupe décrit par quatre champs séparés par des ':' :

 nom du groupe,
 mot de passe (crypté) (généralement il n'y en a pas),
 numéro de groupe (GID),
 liste des utilisateurs (représentés par leurs noms séparés par des virgules).

En cas d'utilisation du masquage shadow, remplacement des mots de passe par un x et


utilisation d'un fichier /etc/gshadow au même format que le fichier /etc/group mais non lisible
par tous les utilisateurs.

root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:nico
tty:x:5:
disk:x:6:
lp:x:7:cupsys

Mr. LMD ENS


mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:cupsys,nico
fax:x:21:
voice:x:22:
cdrom:x:24:haldaemon,nico
floppy:x:25:haldaemon,nico
tape:x:26:
sudo:x:27:
audio:x:29:nico
dip:x:30:nico
www-data:x:33:
backup:x:34:
operator:x:37:
list:x:38:
irc:x:39:
src:x:40:
gnats:x:41:
shadow:x:42:
utmp:x:43:
video:x:44:nico
sasl:x:45:
plugdev:x:46:haldaemon,nico
staff:x:50:
games:x:60:
users:x:100:
nogroup:x:65534:
dhcp:x:101:
syslog:x:102:
klog:x:103:
crontab:x:104:
ssh:x:105:
lpadmin:x:106:nico
messagebus:x:107:
haldaemon:x:108:
slocate:x:109:
scanner:x:110:cupsys,nico
nico:x:1000:
admin:x:111:nico

Exemple de fichier /etc/group avec utilisation de shadow

root:*::
daemon:*::

Mr. LMD ENS


bin:*::
sys:*::
adm:*::nico
tty:*::
disk:*::
lp:!::cupsys
mail:*::
news:*::
uucp:*::
man:*::
proxy:*::
kmem:*::
dialout:!::cupsys,nico
fax:*::
voice:*::
cdrom:!::haldaemon,nico
floppy:!::haldaemon,nico
tape:*::
sudo:*::
audio:*::nico
dip:*::nico
www-data:*::
backup:*::
operator:*::
list:*::
irc:*::
src:*::
gnats:*::
shadow:*::
utmp:*::
video:*::nico
sasl:*::
plugdev:!::haldaemon,nico
staff:*::
games:*::
users:*::
nogroup:*::
dhcp:x::
syslog:x::
klog:x::
crontab:x::
ssh:x::
lpadmin:x::nico
messagebus:x::
haldaemon:x::
slocate:x::
scanner:!::cupsys,nico
nico:!::
admin:!::nico

Mr. LMD ENS


Fichier /etc/gshadow correspondant
au fichier /etc/group précédent

Gestion des utilisateurs

 useradd : Création d'un utilisateur, du répertoire de base associé (avec autorisations) et


copie des fichiers de configuration dans ce répertoire.
Compte créé sans mot de passe et non activé.
 userdel : Suppression d'un utilisateur.
Répertoire de base non supprimé.
 usermod : Modification des caractéristiques d'un utilisateur.

Travail direct possible sur les fichiers /etc/passwd et /etc/shadow.

 pwck : Vérification de la cohérence des fichiers /etc/passwd et /etc/shadow.

Gestion des groupes

 groupadd : Création d'un groupe.


 groupdel : Suppression d'un groupe.
 groupmod : Modification des caractéristiques d'un groupe.

Travail direct possible sur les fichiers /etc/group et /etc/gshadow.

 grpck : Vérification de la cohérence des fichiers /etc/group et /etc/gshadow.

Gestion des mots de passe

 passwd : Modification du mot de passe d'un utilisateur.

Exemple

Création d'un groupe


Création d'un utilisateur en le plaçant dans le groupe
Affectation d'un mot de passe à l'utilisateur
(utilisation des paramètres optionels par défaut)

Mr. LMD ENS


 Ligne ajoutée au fichier /etc/passwd:
fermi:x:1001:1001::/home/fermi:/bin/sh
 Ligne ajoutée au fichier /etc/shadow:
fermi:$1$OiUYxLOq$97N3L1zEHtnjalbwceUyl0:1[Link]
 Ligne ajoutée au fichier /etc/group:
physiciens:x:1001:fermi
 Ligne ajoutée au fichier /etc/gshadow:
physiciens:!::fermi

Mr. LMD ENS


III. Les shells

Shell : Environnement d'utilisation en ligne de commandes.

Exemples :

 sh (Bourne shell)
 bash (Bourne again shell)
 csh (C shell)
 ksh (Korn shell)
 ...

Beaucoup de caractéristiques communes.

bash: Shell usuellement configuré par défaut avec Linux.

Existence d'un fichier de configuration pour chaque shell, commun à tous les utilisateurs,
généralement sous /etc, modifiable par l'administrateur système et utilisé chaque fois qu'un
shell est lancé.

Existence possible d'un fichier de configuration, pour chaque shell, pour chaque utilisateur,
stocké sous la racine du répertoire de base de l'utilisateur, modifiable par lui et utilisé après le
fichier de configuration commun.

Différents noms pour ces fichiers pour les différents shells et les différentes distributions.

Variable d'environnement

Variable gérée au sein d'un shell. Caractérisée par un nom et une valeur.

 set : Commande d'affichage de la liste des variables d'environnement et de leurs


valeurs.

BASH=/bin/bash
BASH_ARGC=()
BASH_ARGV=()
BASH_COMPLETION=/etc/bash_completion
BASH_COMPLETION_DIR=/etc/bash_completion.d
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="3" [1]="1" [2]="17" [3]="1" [4]="release"
[5]="i486-pc-linux-gnu")
BASH_VERSION='3.1.17(1)-release'
COLORTERM=
COLUMNS=112
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-Sg21DwlViV
,guid=2e97ed4427821775e98ecac831163200

Mr. LMD ENS


DESKTOP_SESSION=default
DIRSTACK=()
DISPLAY=:0.0
DM_CONTROL=/var/run/xdmctl
EUID=1000
GROUPS=()
GS_LIB=/home/nico/.fonts
GTK2_RC_FILES=/etc/gtk-2.0/gtkrc:/home/nico/.gtkrc-2.0:
/home/nico/.kde/share/config/gtkrc-2.0
GTK_RC_FILES=/etc/gtk/gtkrc:/home/nico/.gtkrc:
/home/nico/.kde/share/config/gtkrc
HISTCONTROL=ignoredups
HISTFILE=/home/nico/.bash_history
HISTFILESIZE=500
HISTSIZE=500
HOME=/home/nico
HOSTNAME=agamemnon
HOSTTYPE=i486
IFS=$' \t\n'
KDE_FULL_SESSION=true
KDE_MULTIHEAD=false
KONSOLE_DCOP='DCOPRef(konsole-7429,konsole)'
KONSOLE_DCOP_SESSION='DCOPRef(konsole-7429,session-1)'
LANG=fr_FR.UTF-8
LANGUAGE=fr_FR:fr:en_GB:en
LESSCLOSE='/usr/bin/lesspipe %s %s'
LESSOPEN='| /usr/bin/lesspipe %s'
LINES=33
LOGNAME=nico
LS_COLORS='no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;
35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:tw=30;
42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;
31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;
31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;
31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;
35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;
35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mov=01;35:*.mpg=01;
35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;
35:*.xcf=01;35:*.xwd=01;35:*.flac=01;35:*.mp3=01;35:*.mpc=01;
35:*.ogg=01;35:*.wav=01;35:'
MACHTYPE=i486-pc-linux-gnu
MAILCHECK=60
OPTERR=1
OPTIND=1
OSTYPE=linux-gnu
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:
/bin:/usr/bin/X11:/usr/games
PIPESTATUS=([0]="0")
PPID=7429

Mr. LMD ENS


PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}:
${PWD/$HOME/~}\007"'
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
PS2='> '
PS4='+ '
PWD=/home/nico
SESSION_MANAGER=local/agamemnon:/tmp/.ICE-unix/7371
SHELL=/bin/bash
SHELLOPTS=braceexpand:emacs:hashall:histexpand:interactive-comments:monitor
SHLVL=2
SSH_AGENT_PID=7314
SSH_AUTH_SOCK=/tmp/ssh-vZUzct7278/agent.7278
TERM=xterm
UID=1000
USER=nico
WINDOWID=41943047
XCURSOR_THEME=kubuntu
XDM_MANAGED=/var/run/xdmctl/xdmctl-
:0,maysd,mayfn,sched,rsvd,method=classic
_=set
i=/etc/profile.d/[Link]
langfile=/root/.i18n

Exemple de résultat d'exécution de la commande set

Désignation de la valeur d'une variable par utilisation de son nom précédé d'un $.

echo HOSTNAME -> HOSTNAME, le nom de la variable


echo $HOSTNAME -> agamemnon, la valeur de la variable

Configuration d'une variable en tapant son nom suivi d'un égal suivi de la valeur (sans
espace).

Mr. LMD ENS


Quelques variables caractéristiques

 HOME : Répertoire de base d'un utilisateur (dynamique)


 LOGNAME : Login de l'utilisateur en session (dynamique)
 PATH : Ensemble des chemins de recherche des applications lancées (séparés par des
:)
 PS1 : Prompt
 PWD : Répertoire courant (dynamique)
 SHELL : Nom du shell courant (dynamique)

~ : Répertoire de base d'un utilisateur (dynamique)

Caractères joker

Utilisation possible de caractères "joker" dans les lignes de commandes pour désigner
plusieurs fichiers en une seule commande.

 * : Toute suite de caractères


 ? : Un seul caractère quel qu'il soit

Pipes

Le caractère | entre deux commandes permet d'exécuter la première commande en envoyant


son résultat d'exécution en tant que paramètres d'entrée de la seconde.

Mr. LMD ENS


ls | sort
Liste des fichiers du répertoire courant envoyée
à la commande sort pour tri par ordre alphabétique puis affichage

Redirection des sorties et des entrées

Renvoi des résultats en sortie vers un fichier avec écrasement de celui-ci au moyen du
caractère > placé entre la commande et le nom de fichier.

Renvoi des résultats en sortie en ajout à la fin d'un fichier au moyen des caractères >> placés
entre la commande et le nom de fichier.

Obtention des données demandées au clavier par la commande depuis le contenu d'un fichier
au moyen du caractère < placé entre la commande et le nom de fichier.

Sauvegarde des résultats de la commande date dans le fichier [Link]


Ajout à la fin du fichier [Link] des résultats de la commande who

Visualisation du contenu du fichier [Link]

Exécution des commandes en arrière plan

Exécution d'une application en arrière plan en ajoutant un & à la fin de la ligne de commande
de lancement.

Mr. LMD ENS


Lancement en arrière plan de l'éditeur de textes "kwrite"
Ligne de commande encore utilisable

kwrite

Lancement classique
Ligne de commande bloquée sur l'application jusqu'à sa terminaison

 nohup : Commande permettant de lancer une application en arrière plan de manière à


la rendre insensible aux déconnexions de session.

Interruption d'un shell

exit : Interruption du shell en exécution.

Scripts shell

Script shell : Fichier de commandes en langage shell (fichier texte rendu exécutable par
exécution de la command chmod +x script_shell).

Mr. LMD ENS


Syntaxe

 # pour placer une ligne en commentaire.


 Affectation d'une variable : var=valeur ou var="valeur" si la valeur comporte des
espaces.
 read pour lire une variable au clavier.
 echo pour afficher une variable.
 Récupération des items de la ligne de commande via les codes $0, $1, $2, $3, ... dans
l'ordre de frappe et incluant le nom du shell.
Récupération de la liste complète des items avec $*.
Récupération du nombre d'items avec $#.
Récupération du PID du shell avec $$.

Exemple de script de commande : ScriptParametres

Résultat à l'exécution

 Récupération du résultat d'exécution de la dernière commande via le code $?.


0 indique "Pas d'erreur d'exécution, sortie normale".

Mr. LMD ENS


Pas d'erreur d'exécution

Erreur d'exécution

 Existence des classiques instructions de structuration if, case, for et while.

if commande
then
...
else
..
fi

Exemple

case variable in
v1|v2|...|vn)
...;;
w1|w2|...|wn)
...;;
esac

Exemple

for variable in liste

Mr. LMD ENS


do
...
done

Exemple

while commande
do
...
done

Exemple

 test : Evaluation d'une expression.


o Opérateurs sur les fichiers :
 -d E : E répertoire
 -e E : E existe
 -r E : E lisible
 -s E : E de taille non nulle
 -w E : E peut être écrit
 -x E : E exécutable
 ...
o Opérateurs de comparaison entre deux expressions de type chaine de caractères
:
 E : E non chaine vide
 E1 == E2 : E1 égal à E2
 E1 != E2 : E1 différent de E2
o Opérateurs de comparaison sur expressions numériques :
 E1 -eq E2 : E1 égal à E2
 E1 -ne E2 : E1 différent de E2
 E1 -ge E2 : E1 plus grand ou égal à E2
 E1 -gt E2 : E1 strictement plus grand que E2
 E1 -le E2 : E1 plus petit ou égal à E2
 E1 -lt E2 : E1 strictement plus petit que E2
o Opérateurs booléens :
 (E) : E est vrai
 !E : E est faux
 E1 -a E2 : E1 et E2
 E1 -o E2 : E1 ou E2

Mr. LMD ENS


Test d'égalité et test de différence
entre variable et constante numérique

Tests d'existence de fichiers

Tests de lisibilité de fichiers

Mr. LMD ENS


Tests d'accès en écriture de fichiers

Mr. LMD ENS


IV. Sécurité du système

Sécurité d'accès aux fichiers et répertoires

Autorisations élémentaires

Fichiers et répertoires affectés d'autorisations.


Trois autorisations élémentaires :

 lire (r, read) : Lecture du contenu pour un fichier, listage du contenu pour un
répertoire.
 écrire (w, write) : Modification du contenu pour un fichier, création et suppression des
fichiers contenus pour un répertoire
 exécuter (x, execute) : Exécution du fichier pour les fichiers binaires exécutables et
scripts, accès contrôlé aux fichiers du répertoire pour un répertoire

Trois jeux d'autorisations pour :

 l'utilisateur propriétaire du fichier,


 le groupe propriétaire du fichier,
 tous les autres utilisateurs.

Commande ls -l pour visualiser les autorisations (première colonne)..

Affichage long du contenu d'un répertoire via la commande ls -l

10 caractères sur la première colonne :

 1:
o - : fichier ordinaire
o d : répertoire
o l : lien symbolique
o ...
 2, 3 et 4 : Autorisations pour l'utilisateur propriétaire du fichier
 5, 6 et 7 : Autorisations pour le groupe propriétaire du fichier

Mr. LMD ENS


 8, 9 et 10 : Autorisations pour tous les autres utilisateurs

Utilisateur propriétaire sur la troisième colonne.

Groupe propriétaire sur la quatrième colonne.

 chmod : Modification des autorisations sur un fichier.

chmod +x [Link] puis chmod -x [Link]


Ajout de l'autorisation d'exécution pour le propriétaire du fichier [Link].
Annulation de la modification.
(opérations réalisées par root)

chmod 777 [Link] puis chmod 644 [Link]


Configuration en rwx pour le propriétaire, le groupe
et tous les autres utilisateurs sur le fichier [Link],
rwxrwxrwx = 777 (4+2+1 4+2+1 4+2+1).
Annulation de la configuration.
(opérations réalisées par root)

 chown : Modification du propriétaire et du groupe d'un fichier.

Mr. LMD ENS


chown fermi [Link] puis chown nico [Link]
Modification du propriétaire nico vers l'utilisateur fermi.
Annulation de la modification.
(opérations réalisées par root)

chown fermi:physiciens [Link] puis chown nico:nico [Link]


Modification du propriétaire et du groupe
vers l'utilisateur fermi et le groupe physiciens.
Annulation de la modification.
(opérations réalisées par root)

 chgrp : Modification du groupe d'un fichier.

Mr. LMD ENS


chgrp physiciens [Link] puis chgrp nico [Link]
Modification du groupe root vers le groupe physiciens.
Annulation de la modification.
(opérations réalisées par root)

 umask : Choix des droits par défaut affectés à un fichier ou un répertoire lors de sa
création.

Le sticky bit

Appliqué aux répertoires : Limitation du droit de suppression d'un fichier du répertoire à son
seul utilisateur propriétaire même si les autorisations sont en rwx pour le groupe et les autres
utilisateurs.

Appliqué aux exécutables : Conservation en mémoire après exécution pour en accélérer une
nouvelle exécution.

Utilisation de chmod pour configurer le sticky bit.

Affichage du caractère 't' à la place du 'x' en 9ème caractère des autorisations.

Mr. LMD ENS


Utilisation de la commande chmod 1777 sur un répertoire
pour y placer le sticky bit et les autorisations en "contrôle total".
Impossible à l'utilisateur fermi de détruire un fichier pour lequel
les autorisations le permettent tant que le sticky bit reste
placé sur le répertoire.

Les droits d'endossement

Droit d'endossement : Droit d'exécuter un fichier de telle manière que l'identité endossée pour
l'exécution soit celle du propriétaire (SUID) ou du groupe (SGID) du fichier et non celle de
l'utilisateur qui lance le fichier.
-> Fichier autorisé à réaliser ce qui est autorisé à son propriétaire ou à son groupe propriétaire
même si l'utilisateur n'y correspond pas.

Utilisation de chmod pour configurer les droits d'endossement.

Affichage du caractère 's' à la place du 'x' en 3ème caractère des autorisations si configuration
SUID.
Affichage du caractère 's' à la place du 'x' en 6ème caractère des autorisations si configuration
SGID.

Mr. LMD ENS


V. Les processus

Affichage des processus en cours

 ps : Affichage de l'état instantané des processus en cours.

ps
Résultat d'exécution de ps -lfA

 top : Affichage régulièrement remis à jour des processus en cours de fonctionnement.

top

Lancement de procesus

 nohup : Lancement d'un processus de manière que la fermeture de session n'entraine

Mr. LMD ENS


pas l'arrêt du processus.
 nice : Affectation de priorité lors du lancement d'un processus.
 renice : Réaffectation de priorité lors du fonctionnement d'un processus.

Interruption d'un processus

 kill : Terminaison forcée d'un processus.

Affichage des processus en cours.


Lancement de kedit en tâche de fond.
Réaffichage des processus : kedit présent avec l'ID 2425.
kill du processus 2425.
Réaffichage des processus : kedit terminé.

Planification de processus

 at : Lancement de commandes à l'heure indiquée.


 atq : Affichage de la liste des travaux en attente d'exécution.
 atrm : Suppression d'un travail en attente d'exécution

Mr. LMD ENS


Fichier de commandes à planifier

Programmation d'un fichier de commandes.


Affichage de la file d'attente des travaux en attente

Résultat après exécution

 batch : Exécution de commandes lorsque la charge processeur est inférieure à une


valeur limite.
 crontab : Planification de commandes répétitives gérées par le programme cron.

Mr. LMD ENS


Fichier de programmation cron pour deux commandes répétitives.
Exécution toutes les minutes de la commande date
avec sauvegarde du résultat d'exécution dans un fichier texte.
Exécution de la commande who à la 30ème minute de la 12ème heure
du 1er jour de chaque 1er mois d'une année.

Programmation du fichier précédent.


Affichage des commandes cron en cours.
Résultat au bout de quelques minutes.

Démon

Démon : Processus fonctionnant en tâche de fond. Généralement, processus lié au système


(Exemple : httpd, inetd, smbd, lpd, xdmcpd, bind, ...).

Mr. LMD ENS


VI. Gestion des imprimantes

Commandes d'impression

lpd : Démon d'impression sous UNIX (lpd, Line Printer Daemon).

Fonctionnement client-serveur local ou via réseau.

Imprimantes nommées /dev/lp<n>.

Existence d'une (ou plusieurs) file(s) d'attente (spool) d'impression par imprimante pour les
jobs en attente. Files d'attente des différentes imprimantes stockées dans le répertoire
/var/spool/lpd.

 lpr : Soumission d'un travail d'impression à une imprimante.


 lpq : Affichage de la file d'attente d'impression d'une imprimante.
 lprm : Suppression d'un travail d'impression de la file d'attente d'une imprimante.
 lpc : Contrôle d'une imprimante.
o Commencement et arrêt de l'envoi des travaux d'impression.
o Activation et désactivation.
o Changement dans l'ordre des travaux dans la file d'attente.

Installation d'une imprimante

Configuration des imprimantes stockée dans le fichier /etc/printcap.

Configuration manuelle de ce fichier non recommandée.


-> Utilisation d'un assistant.
Exemple printtool, assistant en mode graphique d'origine RedHat disponible pour les
distributions RedHat et Debian et leurs dérivées.

Mr. LMD ENS


VII. Les systèmes de fichiers

Visualisation d'une arborescence unique de répertoires implantée sur / faisant penser à


l'existence d'un seul système de fichiers.

En réalité, union possible de plusieurs arbres correspondant à des systèmes de fichiers


différents situés sur des disques ou même des ordinateurs différents.

Montage de la racine de chaque arborescence sur un répertoire vide (ou non) d'une
arborescence déja montée.
-> Construction d'une arborescence logique.

Avantages de cette organisation :

 Souplesse
 Extensibilité
 Gestion des disques amovibles
 ...

Création de chaque système de fichiers dans une partition elle-même située sur un ou
plusieurs disques (ou supports de stockage).

Gestion d'un grand nombre de systèmes de fichiers:

 ext2, ext3 : Linux natif


 swap : Mémoire virtuelle pour Linux
 msdos : FAT16 (MsDos)
 umsdos : MsDos étendu pour une meilleure compatibilité avec Linux (noms longs,
UID, GID, ...).
 vfat : FAT32 (Windows)
 ntfs : NTFS (Windows NT)
 smb : Partage Lan Manager
 nfs : Partage nfs
 iso9660 : Système de fichiers des CDRom
 ...

Partitions désignées par des fichiers "device" hébergés dans le répertoire /dev.

Un type spécial de partition, linux-swap, mémoire virtuelle pour le système (non directement
utilisable).

Disques IDE

Deux disques au maximum par interface IDE, généralement deux interfaces IDE par machine.

 /dev/hda et dev/hdb disques master et éventuellement slave de la 1ère interface IDE.


 /dev/hdc et dev/hdd disques master et éventuellement slave de la 2ème interface IDE.

Mr. LMD ENS


 2 lettres par 2 lettres pour les éventuelles interfaces suivantes.

Par disque IDE, au maximum quatre partitions toutes principales sauf éventuellement une
partition étendue pouvant contenir autant de volumes logiques que souhaité.

 /dev/hd<x>1 à /dev/hd<x>4 : Partitions principales ou étendue du disque /dev/hd<x>.


 /dev/hd<x>5 à /dev/hd<x><n> : Volumes de la partition étendue du disque
/dev/hd<x>.

Disques SCSI

Jusqu'à 7 phériphériques par interface SCSI. /dev/sd<x> disques SCSI détectés.


/dev/sd<x><n> partitions sur ces disques.

Consultation de l'état instantané des systèmes de fichiers

 df : Affichage des informations relatives aux systèmes de fichiers montés (tailles


comptées en blocs de 1 Ko ou en inodes)

df

Fichier /etc/mtab des systèmes de fichiers montés au sein de l'arborescence du système.

Mr. LMD ENS


/etc/mtab

Montage d'un système de fichiers

 mount : Montage d'un système de fichiers sur un répertoire.


Options de commande:
o -t : Type de système de fichiers
o -options : Options de montage (ro ou rw, umask, dmask, ...)
o ...

Exemple: mount -t smbfs -o username=xxxx0,password=yyyy //Serveur/NomDePartage


/home/xxxx1/PointDeMontage

Configuration des systèmes de fichiers montés à l'amorçage du système

Systèmes de fichiers à monter à l'amorçage du système décrits dans le fichier /etc/fstab.

/etc/fstab

Création d'un système de fichiers

Détection automatique des disques durs réalisée par le noyau pour peu qu'il dispose des

Mr. LMD ENS


composants logiciels nécessaires.
-> Existence du fichier device /dev/hd<x>, /dev/sd<x>, ... correspondant.

 fdisk : Utilitaire de partitionnement et de définition du type de système de fichiers


associé à une partition.

fdisk /dev/hdd : Lancement de fdisk sur le disque esclave


de la seconde interface IDE.

Mr. LMD ENS


m : Affichage de toutes les options possibles.

n : Création d'une nouvelle partition.


Choix d'une partition principale, en position 1 parmi les 4 possibles,
débutant du cylindre 1 pour une taille de 512 Mo.

t puis w : Choix du type de la partition créée


et enregistrement du nouveau shéma de partitionnement.
6 pour une partition de type FAT16.

Mr. LMD ENS


Liste de tous les types possibles.

Etat du disque hdd après création d'une deuxième partition principale.

 mkfs : Utilitaire de création d'un système de fichiers dans une partition.

Mr. LMD ENS


mkfs : Création des systèmes de fichiers
associés aux 2 partitions /dev/hdd1 de type FAT16 (msdos)
et /dev/hdd2 de type FAT32 (vfat)

 fsck : Utilitaire de vérification et de correction des erreurs d'une partition (et donc d'un
système de fichiers).

fsck : file check de chacune des deux partitions.

Mr. LMD ENS


VIII. Configuration et compilation du noyau

Noyau (Kernel) : Fichier exécutable composant de base du système assurant la gestion des
ressources physiques et logiques du système d'exploitation :

 Gestion des périphériques.


 Gestion des fichiers.
 Gestion des processus.

Actuellement en version 2.6.

Noyau "standard" copié au cours de l'installation de la distribution.

Sous Ubuntu 6.0, noyau situé dans le répertoire /boot.

Possibilité de configurer, de compiler et d'installer un nouveau noyau :

 Ajout d'un périphérique devant être reconnu au démarrage.


Exemple : démarrage depuis un périphérique SCSI.
 Ajout d'une nouvelle fonctionnalité au noyau.
 Retrait de composants non utilisés -> noyau moins lourd.
 installation d'un noyau plus récent.
 ...

Mr. LMD ENS


Travaux pratiques

Mr. LMD ENS


1. TP n°1

Infos système

 Quel est le système installé?


 Quelle est la distribution installée?
 Quels sont les utilisateurs en cours du système?
 Ouvrir un nouveau terminal en utilisant un autre compte.
 Fermer ce terminal.

La commande man

 Tester la commande man pour obtenir de l'aide sur man.


Quelles sont les commandes susceptibles d'être documentées dans man?

Contenu de répertoires et de fichiers ascii (texte)

 Lister le contenu du répertoire /etc.


 Lister de manière détaillée le contenu du répertoire /etc.
Les fichiers nommés "passwd", "shadow", "group" et "gpasswd" sont-ils présents dans
/etc?
 Lister le contenu du répertoire /dev.
 Lister le contenu du fichier /etc/passwd.
 Lister le contenu du fichier /etc/shadow.
 Afficher par ordre alphabétique les utilisateurs définis dans le fichier /etc/passwd.
 Rechercher tous les fichiers du répertoire /etc contenant la chaine de caractères "root".
 Rechercher la localisation du fichier "stdio.h" dans le système de fichier de votre
installation.
 A l'aide de la commande "od", illustrer la différence majeure entre les types de fichier
ascii (texte) DOS, UNIX et Macintosh. Utiliser le fichier ascii
Dos [Link] fourni en lien et créer les fichiers ascii Unix "[Link]" et
ascii Macintosh "[Link]" avec le même contenu au moyen d'un éditeur texte
(Kate par exemple) puis comparer (version Macintosh si l'éditeur le permet).
Quelle est la différence?
 Utiliser les commandes de comparaison de fichiers de Linux pour tester le contenu
d'un même fichier texte en version Unix et Dos.
 Combien de lignes, de mots et de caractères comportent les fichiers "[Link]",
"[Link]" et "[Link]"?

Commandes

Déterminer les commandes permettant de réaliser les actions suivantes:

 Déterminer le répertoire par défaut dans la hiérarchie des répertoires?


 Y a t-il des fichiers, des répertoires dans ce répertoire?
 Entrer du texte dans un fichier nommé "Mon_fichier".
 Lister le contenu de "Mon_fichier".
 Lister le répertoire courant.
 Lister les répertoires /bin et /dev.

Mr. LMD ENS


 Créer sous votre répertoire deux sous-répertoires : "Source" et "Data".
 Se positionner sous "Source".
 Listez le répertoire courant.
 Revenir sous le répertoire de départ et détruire "Source".
 Créer un deuxième fichier nommé "Mon_fichier_2".
 Copier chaque fichier en nom_de_fichier.old.
 Créer un répertoire "Old".
 Déplacer les fichiers avec l'extension old vers le répertoire "Old".
 Copiez les fichiers sans extension dans le repertoire "Data".
 Sous votre répertoire de départ, créez un lien matériel "Mon_lien" équivalent à
"Mon_fichier_2".
 Lister les deux fichiers "Mon_lien" et "Mon_fichier_2" en affichant leur numéro
d'inode.
Que remarquez vous?
 Supprimer "Mon_lien".
"Mon_fichier_2" a-t-il disparu?
 Sous votre répertoire de départ, créez un lien symbolique "Mon_nouveau_lien" sur
"Mon_fichier_2".
 Lister les deux fichiers "Mon_nouveau_lien" et "Mon_fichier_2".
Que remarquez vous?
 Supprimer "Mon_fichier_2".
"Mon_nouveau_lien" a-t-il disparu?
 Quelle est la taille totale des fichiers contenus dans votre répertoire?
 Effacer tous les fichiers crées.

Mise en place d'un espace de travail pour 4 utilisateurs

Définir le lot de commandes à exécuter pour créer 4 utilisateurs en suivant les règles
suivantes:

 Création de 2 groupes.
 Les premier et deuxième utilisateurs sont membres du premier groupe.
 Les troisième et quatrième utilisateurs sont membres du second groupe.
 Le deuxième utilisateur est aussi membre du second groupe.
 Le quatrième utilisateur est aussi membre du premier groupe.
 Outre leur répertoire de travail, les utilisateurs ont accès à un répertoire commun
/home/groupe1 et/ou /home/groupe2 suivant leur groupe. Dans ce répertoire, ils
peuvent écrire, créer des fichiers mais ne peuvent pas effacer les fichiers.

1. Détaillez les étapes de création des groupes, des utilisateurs et des répertoires en
indiquant quels fichiers vous utilisez et quelles commandes vous utilisez sur ces
fichiers.
2. Modifiez les profils des utilisateurs pour qu'au login, le répertoire d'accueil sur lequel
il souhaite travailler lui soit demandé (s'il entre U, il sera sous son répertoire, s'il entre
G, il sera sous le répertoire de son groupe).
3. Parmi ces 3 valeurs: 066, 067, 077, quel umask positionneriez vous? Expliquez pour
chaque valeur quelles sont les conséquences de ce choix.

Mr. LMD ENS


2. TP n°2

Ecriture de shells

Travailler dans un répertoire nommé "TP2" créé à la racine de votre HOME.

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

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

Exercice 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"

i. Vérifier que le répertoire à créer n'existe pas déjà auquel cas il ne sera pas recréé
mais les fichiers si.

Exercice 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).
 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:

Mr. LMD ENS


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

Exercice 5

 Créer un script permettant d'afficher la liste des fichiers du répertoire /etc accessibles
en lecture.
 Créer un script permettant d'afficher la liste des fichiers du répertoire /etc accessibles
en écriture.

Exercice 6

Créer un script nommé "table" permettant d'afficher des tables de multiplication.


"table 5 10" aura pour résultat l'affichage:

0x5=0
1x5=5
2 x 5 = 10
3 x 5 = 15
4 x 5 = 20
5 x 5 = 25
6 x 5 = 30
7 x 5 = 35
8 x 5 = 40
9 x 5 = 45
10 x 5 = 50

Mr. LMD ENS


3. TP n°3

Droits d’accès

Pour cet exercice, vous créerez un utilisateur banalisé

 Vous est-il possible de faire une copie du fichier /etc/passwd? Vous est-il possible de
supprimer ou de modifier le fichier /etc/passwd?
Répeter ces tentatives en tant qu'utilisateur root.
Expliquer la situation à l’aide de la commande ls -l.
 A l’aide de la commande id, vérifier votre identité et le(s) groupe(s) au(x)quel(s) vous
appartenez.
 Créer un petit fichier texte (de contenu quelconque), qui soit lisible par tout le monde,
mais non modifiable (même pas par vous).
 Créer un répertoire nommé "Secret", dont le contenu est visible uniquement par vous
même.
Les fichiers placés dans ce répertoire sont-ils lisibles par d’autres membres de votre
groupe?
 Créer un répertoire nommé "Connaisseurs" tel que les autres utilisateurs ne puissent
pas lister son contenu mais puissent lire les fichiers qui y sont placés.
On obtiendra:
ls Connaisseurs
ls : Connaisseurs: Permission denied
cat Connaisseurs/toto
<...le contenu du fichier toto (s’il existe)...>
 Chercher dans le répertoire /usr/bin des exemples de commandes ayant la permission
SUID.
De quelle genre de commande s’agit-il?

Les utilisateurs

 Votre compte d'utilisateur est-il défini dans le fichier /etc/passwd? Pourquoi? Il y a-t-il
d'autres alternatives?
 Quel est le répertoire de connexion de l’utilisateur root?
 Quel est le shell de l’utilisateur root?
 Quelle est la particularité de l’utilisateur nobody? Et de l’utilisateur shutdown?
 Quels sont les utilisateurs définis dans /etc/passwd qui font partie du même groupe que
l’administrateur?

Redirections, méta-caractères

Le répertoire /usr/include contient les fichiers d’entête standards en langage C (stdlib.h, ...).

 Créer un répertoire nommé inc dans votre répertoire de connexion (HOME).


En utilisant une seule commande, y copier les fichiers du répertoire /usr/include dont
le nom commence par std.
 Afficher la liste des fichiers de /usr/include dont le nom commence par a, b ou c.
 Modifier la commande de la question précédente pour qu'au lieu d’afficher le résultat,
celui-ci soit placé dans un fichier nommé "[Link]" de votre répertoire de connexion.

Mr. LMD ENS


 Afficher le contenu de ce fichier en utilisant la commande cat.
Copier avec cat son contenu dans un nouveau fichier nommé "Copie".
 Toujours avec cat, créer un nouveau fichier nommé "Double" formé par la mise bout à
bout (concaténation) des fichiers "[Link]" et "Copie".
Vérifier que le nombre de lignes a bien doublé à l’aide de la commande wc.
 Créer un fichier nommé "Temp" contenant une ligne de texte.
 Avec cat, ajouter la ligne "The end" à la fin du fichier "Temp”.
 En une seule ligne de commande, faire afficher le nombre de fichiers de /usr/include
dont le nom contient la lettre t.

find

 Afficher la liste des fichiers .h situés sous le répertoire /usr/include.


 Afficher la liste des fichiers plus vieux que 3 jours situés sous votre répertoire de
connexion.

head, tail, tubes

 Afficher les 5 premières, puis les 5 dernières lignes du fichier /etc/passwd.


 Afficher la 7ième ligne de ce fichier (et elle seule), en une seule ligne de commande.

tr, more, tubes

 Afficher le fichier /etc/passwd en remplaçant les caractères / par des X.


 Obtenir le résultat précédent page par page.

Contrôles d'accès

Un administrateur désire s’assurer chaque matin que tous les fichiers placés sous
$REPERTOIRE sont lisibles par tout le monde, mais non modifiables excepté par leur
propriétaire.

 Quel doit être le mode de ces fichiers et répertoires?


 Écrire un script permettant d’afficher la liste des fichiers d'un répertoire et le type de
chacun (utilisation de file et sort ) trié par type.

Flux d’E/S standards

Étudier la documentation de la commande tee.

 Écrire une commande qui affiche "Bonjour" à l’écran et en même temps crée un
fichier nommé "[Link]" dont le contenu est le même message.
 Ecrire un script qui lit une ligne de caractères sur son entrée standard et l’écrit sur sa
sortie, en passant tous les caractères en majuscules.
 Modifiez votre script pour qu’il affiche le nombre de caractères traités sur sa sortie
d’erreur.
 Créer un fichier texte quelconque. Écrire une seule commande shell qui recopie le
contenu passé en majuscule de ce fichier dans un nouveau fichier nommé "[Link]" et
affiche à l’écran le nombre de caractères traités.

Mr. LMD ENS


grep, cut, uniq, sort et tubes

Étudier la documentation des commandes cut et uniq.

 Afficher la liste des répertoires de connexion des utilisateurs déclarés dans le fichier
/etc/passwd.
 On rappelle qu’à chaque utilisateur est associé un interpréteur de commandes (shell)
lancé lors de son login. La commande correspondante est indiquée dans le 7ième
champ du fichier /etc/passwd.
Afficher en une ligne de commande le nombre d’interpréteurs de commandes
différents mentionnés dans /etc/passwd.
 On dispose d'un fichier texte [Link] contenant un petit carnet d’adresses.
Chaque ligne est de la forme "nom prenom numerotelephone". Les champs sont
séparés par des tabulations.
Répondre aux questions suivantes en utilisant à chaque fois une ligne de commande
shell:
o Afficher le carnet d’adresse trié par ordre alphabétique de noms.
o Afficher le nombre de personnes dans le répertoire.
o Afficher toutes les lignes concernant les “Dupond”.
o Afficher toutes les lignes ne concernant pas les “Dupond”.
o Afficher le numéro de téléphone (sans le nom) du premier “Dupond”
apparaissant dans le répertoire.
o Afficher le numéro de téléphone (sans le nom) du premier “Dupond” dans
l’ordre alphabétique (ordre basé sur les prénoms).

Mr. LMD ENS


4. TP n°4

cron

Mettre en place un script qui, toutes les 5 minutes, ajoute la date, l'heure et la liste des
processus en cours de fonctionnement dans un fichier nommé "[Link]".

tar

Télécharger le fichier [Link].


Il s'agit d'une archive au format tar non compressé contenant les hardcopies de fenêtres
Ubuntu-KDE. Cette archive n'inclut pas de répertoire de décompression.

 "détarer" cette archive dans un sous répertoire nommé "Fichiers" de votre


HOME.
 "tarer" le répertoire "Fichiers" en une archive nommée "[Link]".
 "tarer" le répertoire "Fichiers" en une archive compressée nommée
"[Link]".
 Quel est le rapport de tailles entre ces deux archives?
 Calculer ce rapport de tailles pour une archive de fichiers texte.

Installation de logiciels

Mesa3D

Télécharger les trois fichiers suivants:

 [Link]
 [Link]
 [Link]

"Dégziper" ces trois fichiers.


"Détarer" les trois fichiers obtenus après "dégzipage".

Un seul répertoire nommé Mesa-6.4.2 devrait avoir été restoré.


Il contient la distribution Mesa3D (compatible OpenGL) en version 6.4.2 sous la forme d'un
ensemble de fichiers source C et des fichiers de gestionnaire de projet (workspace Visual
C++, makefile pour gcc, ...) permettant de compiler ces sources sous la forme de binaires:

 MesaLib : La librairie Mesa3D


 MesaGLUt : Une bibliothèque de construction d'interface graphique pour
programme OpenGL
 MesaDemos : Des exemples d'utilisation d'OpenGL et GLUt.

 Réaliser la compilation de Mesa-6.4.2.


 Tester l'installation de Mesa-6.4.2 réalisable après compilation.
 Vérifier la bonne exécution de programmes exemples compilés.
 On donne le fichier source [Link].

Mr. LMD ENS


Télécharger, compiler et exécuter ce source en langage C.

JDK 1.6

Télécharger le fichier suivant:

 [Link]

Il s'agit du fichier d'installation du kit de développement Java version 6.

 Réaliser l'installation de ce jdk.


 Tester la version de compilateur installée.
 Tester la version de "runtime" installée.
 Compiler et exécuter le programme java [Link]

Informations système

Décrire l'environnement dans lequel vous évoluez:

 nom de la machine
 détail des disques
 programmes en fonctionnement
o les votres
o ceux des autres utilisateurs
 configuration réseau
 place utilisée dans mon répertoire
 processus les plus gourmands en fonctionnement

mount

On considère un partage Windows nommé toto sur le serveur [Link]


accessible à l'utilisateur toto du domaine w2k3. Le mot de passe associé à ce compte est
"pw01toto10".
On souhaite monter ce partage en lecture/écriture depuis une machine fonctionnant sous linux
équipé d'un client samba, pour l'utilisateur linux titi du groupe linux titi de cette machine. Le
point de montage est /mnt/titi.

 Quelle est la commande permettant de réaliser une telle opération?


 Exécutée par titi, cette commande est-elle susceptible de fonctionner sur votre poste?

Réseau

 Déterminer d'après le masque quel est le réseau utilisé en utilisant la notation binaire
pour les trois adresses suivantes.
o adresse [Link], masque par défaut
o adresse [Link], masque par défaut
o adresse [Link] cette fois avec le masque [Link]

 Considérons les deux adresses IP : [Link] et [Link]


1. Sans autre indication ces deux machines sont-elles sur le même réseau?

Mr. LMD ENS


2. Le masque précisé est [Link] : ces deux machines sont-elles sur le
même réseau?

 A quelle condition ces deux machines communiquent elles dans le cas 1 et


dans le cas 2?
 Quelle règle simple peut-on déduire pour connaître le réseau sans passer par la
notation binaire pour un masque par défaut?

 Vous devez définir les masques pour une administration réseau qui est structurée de la
façon suivante:

Des serveurs sur lesquels se trouvent des bases de données ainsi que des postes banalisés sont
répartis à Paris, Lyon, Marseille et Toulouse (environ 150 serveurs et postes locaux dans
chaque ville).
Dans chaque préfecture de département métropolitain est présente une antenne locale. Chaque
antenne est composée d'un parc entre 12 et 25 postes (un peu moins de 100 départements).
La communication entre les villes principales et les antennes départementales est assurée par
des réseaux comportant chacun 2 routeurs.

Vous disposez des adresses réseau [Link] à [Link]

 Déterminer les masques de sous réseau mis en oeuvre .


 Pour chaque masque, détailler un réseau en mettant en évidence:
o son numéro de réseau
o l'adresse du premier host
o l'adresse du dernier host
o l'adresse de broadcast

 Au hasard d'une connexion sur l'internet, la commande "tracert


[Link]" est exécutée avec pour résultat cette trace:

1 121 ms 118 ms 108 ms [Link] [[Link]]


2 110 ms 104 ms 110 ms [Link] [[Link]]
3 113 ms 113 ms 113 ms [Link] [[Link]]
4 118 ms 119 ms 119 ms [Link] [[Link]]
5 117 ms 110 ms 109 ms [Link] [[Link]]
6 124 ms 118 ms 120 ms [Link] [[Link]]
7 128 ms 130 ms 128 ms [Link] [[Link]]
8 129 ms 129 ms 128 ms [Link]
[[Link]]
9 134 ms 129 ms 130 ms [Link]
[[Link]]

La configuration réseau est la suivante :

 Adresse IP : [Link]
 Masque de sous-réseau : [Link]
 Passerelle par défaut : [Link]

 Comment aboutit-on à la machine de la ligne 1?

Mr. LMD ENS


 Quelles autres informations de routage peuvent être déduites de la trace?
 Quel est le temps moyen d'acheminement d'un paquet vers le site
[Link]?
 Ecrire un shell script nommé "Nbr" qui à partir de l'adresse d'un site compte le
nombre de routeurs traversés pour atteindre ce site.

Mr. LMD ENS


5. Mini-projet TP n°5

Administration en ligne de commande

Indiquer quelles sont les commande "ligne de commande" permettant de réaliser les
opérations suivantes dans les environnement unix et windows NT:

 Affichage de la liste des fichiers et/ou répertoires d'un répertoire.


 Copie d'un fichier
 Copie d'un répertoire.
 Déplacement d'un fichier.
 Effacement d'un répertoire.
 Changement du nom d'un fichier.
 Changement du nom d'un répertoire.
 Effacement d'un fichier.
 Effacement d'un répertoire.
 Création d'un répertoire.
 Affichage du répertoire implicite.
 Changement du répertoire implicite.
 Création d'un lien.

 Affichage complet du contenu d'un fichier.


 Affichage progressif du contenu d'un fichier.
 Tri par ordre alphabétique des lignes d'un fichier texte.
 Comparaison de deux fichiers.
 Recherche d'une chaine de caratères dans un ou plusieurs fichiers.

 Création d'un groupe d'utilisateurs.


 Suppression d'un groupe d'utilisateurs.
 Modification des caractéristiques d'un groupe d'utilisateurs.
 Création d'un utilisateur.
 Suppression d'un utilisateur.
 Modification des caractéristiques d'un utilisateur.
 Modification du mot de passe d'un utilisateur.

 Modification des autorisations sur un fichier ou un répertoire.


 Modification du propriétaire d'un fichier ou un répertoire.
 Copie de fichiers ou de répertoires avec préservation des autorisations.
 Copie de fichiers ou de répertoires avec préservation des propriétaires.
 Copie de fichiers ou de répertoires avec préservation des informations d'audit.

 Montage d'un répertoire réseau.


 Création d'un partage réseau.

 Vérification d'un système de fichiers.


 Lancement de l'utilitaire de defragmentation.
 Lancement de l'utilitaire de gestion des partition.
 Lancement de l'utilitaire de création de systèmes de fichier.

Mr. LMD ENS


 Création d'une variable d'environnement.

 Affichage de la date du système.


 Affichage de l'heure du système.

 Affichage de l'état instantané de la liste des processus en cours de fonctionnement.


 Lancement d'un programme en tant que super-user.
 Terminaison forcée d'un processus.
 Lancement de commandes à l'heure indiquée.
 Planification de commandes répétitives.
 Arrêt du système.

 Affichage de la configuration des interfaces réseau sous TCP/IP présentes dans la


machine.
 Interrogation d'un éventuel serveur DNS configuré sous TCP/IP.
 Lancement d'un client ftp en ligne de commande.

Mr. LMD ENS


IX. Référence de la ligne de commandes

Manipulation des fichiers et des répertoires

 ls : Affichage de la liste des fichiers et/ou répertoires d'un répertoire.


 cp : Copie d'un fichier ou d'un répertoire.
 mv : Déplacement ou changement du nom d'un fichier ou d'un répertoire.
 rm : Effacement d'un fichier ou d'un répertoire.
 unlink: Effacement d'un fichier.
 mkdir : Création d'un répertoire.
 rmdir : Effacement d'un répertoire.
 pwd : Affichage du répertoire implicite.
 cd : Changement du répertoire implicite.
 ln : Création d'un lien matériel ou symbolique.

Visualisation du contenu de fichiers

 cat : Affichage complet du contenu d'un fichier.


 more : Affichage progressif du contenu d'un fichier.
 less : Affichage interactif du contenu d'un fichier.
 od : Affichage sous différents formats du contenu d'un fichier.
 head : Affichage du début d'un fichier.
 tail : Affichage de la fin d'un fichier.
 sort : Tri par ordre alphabétique des lignes d'un fichier texte.

Gestion des comptes

 groupadd : Création d'un groupe.


 groupdel : Suppression d'un groupe.
 groupmod : Modification des caractéristiques d'un groupe.
 grpck : Vérification de la cohérence des fichiers /etc/passwd et /etc/shadow.
 passwd : Modification du mot de passe d'un utilisateur.
 pwck : Vérification de la cohérence des fichiers /etc/passwd et /etc/shadow.
 useradd : Création d'un utilisateur.
 userdel : Suppression d'un utilisateur.
 usermod : Modification des caractéristiques d'un utilisateur.

Modification des autorisations sur les fichiers

 chmod : Modification des autorisations sur un fichier.


 chown : Modification du propriétaire et du groupe d'un fichier.
 chgrp : Modification du groupe d'un fichier.

Gestion des processus

 ps : Affichage instantané de la liste des processus en cours.


 top : Affichage régulièrement remis à jour des processus en cours.
 su : Lancement d'un processus en tant que super-user.

Mr. LMD ENS


 nohup : Lancement d'un processus de manière que la fermeture de session n'entraine
pas l'arrêt du processus.
 nice : Affectation de la priorité lors du lancement d'un processus.
 renice : Réaffectation de la priorité au cours du fonctionnement d'un processus.
 kill : Terminaison forcée d'un processus.
 at : Lancement de commandes à l'heure indiquée.
 atq : Affichage de la liste des travaux en attente d'exécution.
 atrm : Suppression d'un travail en attente d'exécution
 batch : Exécution de commandes lorsque la charge processeur est inférieure à une
valeur limite.
 crontab : Planification de commandes répétitives gérées par le programme cron.

Mr. LMD ENS


Mr. LMD ENS
Correction des travaux
pratiques

Mr. LMD ENS


Mr. LMD ENS

Vous aimerez peut-être aussi