Académique Documents
Professionnel Documents
Culture Documents
Objectifs du Module
propriétaire
Système d’exploitation
Open Office
MicrosoftWord
Dev Cpp
Internet
Explorer
Etc ….
Application de paie
Paint
Un S.E est aussi Une interface qui sert d’intermédiaire
entre les logiciels et l’ordinateur
INTRODUCTION :
2mins temps
100% microprocesseur
_
millisecondes temps
INTRODUCTION :
% microprocesseur
100%_
Log. C
70% _
Log. B Log. A Log. A
Log. B
50% _
Log. A Log. D Log. C Log. D
millisecondes temps
Récapitulatif ?
Récemment
INTRODUCTION
~~80% ~~20%
INTRODUCTION
Un programme informatique:
que ce soit un noyau ou un logiciel, est constitué de nombreuses lignes de code,
écrites dans un langage de programmation (le langage C dans le cas du noyau
Linux). Ce code n'est généralement pas utilisable en tant que tel. Il faut passer
par la phase de compilation qui transforme le code source en programme
exécutable, souvent appelé binaire. Il suffit d'avoir le binaire pour utiliser le
programme.
Les logiciels propriétaires sont donc les logiciels dont une licence,
souvent payante, ne donne qu'un droit limité d'utilisation. On n'a la plupart
du temps accès qu'aux binaires de ces logiciels. Certains logiciels
propriétaires sont gratuits, on les appelle alors des freewares.
(Windows est un OS propriétaire dont le code source est jalousement
gardé par Microsoft. Imaginez que c'est un peu comme le Coca-Cola :
personne ne connaît la recette de fabrication .
les quatre libertés fondamentales pour dire qu’un Système est open source:
Historique
UNIX est un système d'exploitation, créé en 1969 par Ken Thompson et Dennis
Ritchie. Sa conception a été particulièrement soignée, et apportait plusieurs
innovations, notamment le choix d'utiliser plusieurs outils simples et spécialisés,
plutôt que des logiciels complexes à tout faire. Il est l'un des systèmes
d'exploitation les plus populaires au monde, en raison du grand nombre
d'architectures qu'il supporte .
Project GNU:
Cependant, en 1991, le projet GNU n'avait toujours pas de noyau et tournait sur
des Unix propriétaires.(Stallman avait créer les programmes de base:(programme
de copie de fichier, suppression de fichier, éditeur de texte).
Système Open sources Linux
Historique (suite)
Project
Project GNU LINUX
GNU/LINUX
Il existe une très grande variété de distributions, ayant chacune des objectifs
et une philosophie particulière.
Systèmes de fichiers
Systèmes de fichiers
Systèmes de fichiers: c’est une « subdivision du disque » dur
selon un certain format.
Gestion de fichiers et répertoires
• Ext3 : est très proche de l'ext2, à une différence majeure près, la journalisation. En
effet, ext2 n'était pas journalisé, et en cas de crash disque on risquait plus
facilement une perte de données. Ce n'est plus le cas avec l'ext3.
A noter que l'ext2 et l'ext3 sont parfaitement compatibles entre eux, dans un sens
comme dans l'autre.
Gestion de fichiers et répertoires
PARTITIONEMENT DISQUE DURE
Appellation des disques Dures
L’appellation "à la Linux" est un peu plus complexe que celle de Windows.
C:
Windows D:
E:
…
hda
Linux hdb
hdc
sda
…
Gestion de fichiers et répertoires
un "gros dossier de base qui contient tous les autres dossiers et fichiers".
Sous Windows, il y a en fait plusieurs racines. "C:\" est la racine de votre disque dur
Sous Linux, il n'y a qu'une et une seule racine : "/".
Le système de fichiers sur Linux est similaire à ce que l'on retrouve dans
Windows, i.e. une structure hiérarchique dont une racine et des répertoires qui
s'y rattachent.
Contrairement au système MS-DOS, qui contient plusieurs racine :A: ,C: ,D:
,…
Sous Linux, il y a une seule racine (root) :le slash "/" .
Par exemple, Le CD-ROM est atteint par le répertoire /cdrom.
/home/khalil/
Gestion de fichiers et répertoires
/ ( root)
bin
dev var
home tmp root lib
invite ("prompt")
pippo@localhost
P :~$
pippo : le premier élément est votre pseudonyme.
localhost : ça c'est le nom de l'ordinateur sur lequel vous êtes en train de travailler.
La ligne d'invite de commandes se lit donc ’pippo’ chez ‘localhost
: : c'est un séparateur.
$ : ce dernier symbole est très important, il indique votre niveau d'autorisation sur
la machine. Il peut prendre 2 formes différentes :
Si vous n'avez aucune réponse, c'est que vous êtes dans un dossier qui
ne contient aucun fichier ou dossier.
LES PARAMETRES
Les paramètres sont des options que l'on écrit à la suite de la commande.
Exemples de paramètres:
pippo@localhost :~$ ls -a
HISTORIQUE DES COMMANDES
Pour retrouver les commandes qu’on a déjà tapé, sans devoir les réécrire à
nouveau, on utilise les flèches haut ( ) ou ( ) de notre clavier.
:P
Effacer le contenu de la console .
Commande ls
La commande ls ( list): Affiche la liste des fichiers dans le répertoire courant, en
ordre alphanumérique, sauf ceux qui commencent par le caractère “.” ( sauf les
fichiers cachés)
« pour cacher un fichier sous linux, on le précède d’un « . »)
ls [options] [noms]
noms du ficher qu’on veut lister. Si ce paramètre
est absent, ls affichera les fichiers du répertoire
courant.
Exemple :
ls -l /home/pippo
Commande ls
ls a («all»: tous) Affiche tous les ls S (“size”: taille) Affiche les fichiers les
fichiers (y compris les fichiers .*) gros en premier.
Commande cd
cd [réperoire]
Si répertoire n’est pas précisé, alors le nouveau répertoire
sera le répertoire de connexion ($ home)( home c’est votre
dossier personnel).
Exemple :
pippo@localhost : /etc$
COMMANDES DE BASES : Répértoires
Commande cd
Commande cd
Remarque:
La commande cd, comme toutes les commandes utilisant des répertoires, permet de
spécifier deux types de chemins:
• Les chemins relatifs :Un chemin relatif est un chemin qui dépend du
dossier dans lequel vous vous trouvez.
Supposant que je suis dans la racine / et je
veux me déplacer au répertoire « games »
Opérations de base sur les répertoires
Opérations de base sur les répertoires
Opérations de base sur les répertoires
Commande pwd
La commande pwd (print working directory): Affiche le répertoire courant
("répertoire de travail »)
pwd
Exemple :
pippo@localhost :~$ pwd
/usr/lib/news/bin
pippo@localhost :~$cd .. pwd
/usr/lib/news
La commande pwd): peut etre utilisée lorsqu’on désire obtenir un chemin absolu sur le
répertoire courant.
Cette commande est également utilisée par les scripts pour déterminer le répertoire à
partir duquel ils sont exécutés.
COMMANDES DE BASES : Répertoires
Commande du
Exemple :
pippo@localhost :~$ cd /usr/news
pippo@localhost : /usr/news$ du
du –a : (du –ah) Affiche la taille des dossiers et des fichiers et des sous-dossier
toute l’arborescence.
du -s : Affiche juste l’espace total occupé par le dossier, et donc n’affiche pas
l’espace des sous-dossiers. ( pour plus de lisibilité du –sh, on la combine à –h)
COMMANDES DE BASES : Répertoires
Commande mkdir
La commande mkdir ( make directory )( permet de créer un répertoire s’il n’existe
pas.
On peut aussi utiliser l’option -p pour créer un répertoire même si son répertoire
parent n’éxiste pas.
Si l’un des répertoires intermedaires n’existe pas, la commande mkdir retourne un
code d’erreur (exit status) sans créer le status ( sauf si l’option –p est spécifiée)
Exemple :
Si on veut créer le répertoire /tmp/ESTM/GI mais le répertoire /tmp/ESTM/GI
n’existe pas, on devrait normalement faire ceci:
pippo@localhost :~$ mkdir /tmp/ESTM/
pippo@localhost :~$ mkdir /tmp/ESTM/GI
Si on essaie de le créer, on reçoit le message suivant:
mkdir: cannot create directory ‘/tmp/ESTM/GI ’: No such file or directory.
Commande rmdir
La commande rmdir (remove directory) permet de supprimer le répertoire spécifié
sur la ligne de commande (répertoire). Si il existe des fichiers ou des sous
répertoires, la commande retournera un code d’erreur (exit status). (Pour supprimer
un répertoire, il faut qu’il soit vide)
rmdir [-p] répertoire
-p : permet de détruire tous les sous –répertoires vides.
Commande mv
mv fichier1 repertoire.
Commande cat
La commande cat (concatenate « concaténer »: joindre des ficiers
séquentiellement) : Affiche des fichiers et /ou concatène les fichiers spécifiés sur
la ligne de commande.
cat [fichier...]
Quand elle est appelée sans options sans nom de fichier, la commande cat répète
sur la sortie standard ce qui est saisi sur l’entrée standard.
Exemples:
~$ cat fichier1 fichier2 : Concaténation des deux fichiers fichier1 et fichier2
more [fichier...]
La commande head : Affiche les n premières lignes d’un fichier, alors qu tail
affiche les dernières lignes d’un fichier.
Si n n’est pas précisé, il prend par défaut la valeur 10.
• sort nom_fichier : Tri par ordre alphabétique des lignes d'un fichier
texte.
COMMANDES DE CONSULTATIONS : Fichiers 2
Commande touch
Sous les systèmes UNIX tout élément est représenté sous forme de fichier.
(Un périphérique, un écran, une imprimante, un répertoire…. TOUT EST FICHIER)
Un répertoire est un fichier qui contient la liste des fichiers sensés être stockés dans
ce répertoire.
L'ensemble des fichiers est architecturé autour d'une unique arborescence dont la
base, appelée racine, est notée «/».
La liste des noms de fichiers est stockée à un autre endroit que leur
contenu.
Rappel:
Pour supprimer un lien
rm Nom_du_lien
Exemple : (différence entre liens physique et liens symboliques
1. Création d’un Répertoire TEST
2. .Une fois dans le dossier tests, créer un fichier « fichier » vide de 0bytes
3. Créer un lien physique « lien_pyh», qui partagera le même inode (le même contenu) que « fichier»
4. Créer un lien symbolique « lien_sym », en pointant vers le nom du « fichier »( et non vers l’inode).
Liens physiques:
Si vous supprimer le fichier d’origine, cela n’affecte pas le contenu du lien
physique.
Le contenu est supprimé quand il n’y a plus aucun fichier ( lien physique) qui y
fait référence.
Liens Symboliques
• Par taille
les fichiers qui font plus de 10 Mo
• Par Type
-type d : pour rechercher uniquement des
répertoires (directories).
Recherche de fichiers et de
répertoires
• Options des sélection des fichiers et répertoires
▫ name : recherche par nom de fichier
▫ type : recherche par type de fichier
▫ user : recherche par propriétaire
▫ group : recherche par l’appartenance à un groupe
▫ size : recherche par taille de fichier
▫ atime : recherche par date de dernier accès
▫ mtime : recherche par date de dernière modification
▫ ctime : recherche par date de création
▫ perm : recherche par autorisations d’accès
▫ links : recherche par nombre de références (links) aux fichiers
96
• Option de commande
▫ Les options de commande seront traitées pour chaque fichier
trouvé. En dehors de l’option –print qui montre le chemin
d’accès au fichier, on peut mettre en place l’option -exec
Exemple
• find . –user student –exec ls –l {}\; ( affiche le
format long de la commande ls pour les fichiers trouvés)
▫ Exemple :
find . –ok rm {} \;
Critères de recherche de noms de
fichiers
• Modèles de noms de fichier
▫ * : remplace une chaîne vide ou de longueur variable
▫ ? : remplace un caractère unique quelconque
▫ [] : représente une série ou une plage de caractère
▫ [!…] : inverse la recherche
• Exemples
▫ a* : les fichiers dont le nom commence par a
▫ a?? : fichiers en trois lettres, commençant par a
▫ [aA]* : fichiers dont le nom commence par un a minuscule ou A majuscule.
▫ [a-m]* : fichiers dont le nom commence par une lettre de la plage a-m.
▫ *[1-5] : fichiers dont le nom se termine par un chiffre de la plage 1 à 5.
Extraire, trier et filtrer des
données
grep : filtrer des données
rechercher dans un fichier texte le mot voulu et
affiche la ligne où il se trouve
• Syntaxe : grep [option] modèle_de_critères [fichier1 …]
• Les options du grep les plus utiles sont :
▫ liste des lignes se terminat par ing Dans le fichier fichier1 : ( $: fin de ligne)
grep « ing$" fichier1
▫ liste des lignes contenant "image" ou "son" dans tous les fichiers du répertoire
courant :
grep -E "(image|son)" *
sort [fichier...]
• Il est aussi possible d'utiliser 2>> pour ajouter les erreurs à la fin du
fichier
Exemple :
cut –d , -f 1 fichiers_inexistant.csv>>eleves 2>&1
< et << : lire depuis un fichier ou le clavier
• gunzip fichier.gz
ou
• bunzip2 fichier.bz2
gzip et bzip2 ne permettent de compresser qu'un seul fichier à la fois.
tar : assembler des fichiers dans une archive
• tar : permet d'assembler des fichiers dans un seul fichier avant de les
compresser.
1. Pour réunir les fichiers dans un seul gros fichier appelé archive.
Exemple:
▫ lecture : 4,
▫ écriture : 2,
▫ exécution : 1,
▫ pas de permission : 0.
136
La commande umask
• Les droits Max des fichier et répertoire
▫ Répertoire 777 (rwxrwxrwx)
▫ Fichier normal 666 (rw-rw-rw-)
• Les droits effectifs : Max - umask
▫ pour les droits des Répertoire = 777 -umask
▫ pour les droits des Fichiers = 666 -umask
• La valeur de umask est fixer par la commande
umask nombre_en_base_8
●Dans un système Linux chaque utilisateur possède un compte, ce compte a un aspect sécuritaire puisqu'il
définit les permissions et les autorisations dont dispose l'utilisateur sur les fichiers et les dossiers.
●Les comptes utilisateurs sont aussi organisés en groupe, un compte utilisateur doit appartenir au moins à un
groupe, les groupes sont utilisés pour faciliter la gestions des utilisateurs.
●Les données des comptes et des groupes utilisateurs sont stockés dans des fichiers, il est important de
connaître la structure et le contenu de ces fichiers pour superviser les utilisateurs du système
●Il existe plusieurs commandes permettant de manipuler les comptes et les groupes utilisateurs (affichage,
création, modification et suppression)
Les comptes utilisateurs
●Dans /etc il existe un ensemble de fichiers textes contenant des informations sur les comptes et les groupes
utilisateurs définies dans le système, par exemple si on veut vérifier si un utilisateur est définie sur le système il faut
le chercher dans le fichier /etc/passwd
● Le fichier /etc/passwd fournit un ensemble d'informations sur les comptes utilisateurs définies sur le système.
● Alors que le fichier /etc/shadow contient les informations sur le mot de passe des comptes utilisateurs.
Les comptes utilisateurs: le fichier /etc/passwd (1)
●Chaque ligne du fichier /etc/passwd est relative à un utilisateur, la figure suivante montre les 10 lignes du
fichier /etc/passwd
● Chaque ligne du fichier etc/passwd est composée d'un ensemble de champs séparés par deux points
Les comptes utilisateurs: le fichier /etc/passwd (2)
●Le tableau suivant décrit les différents champs du fichier /etc/passwd en prenant comme exemple la première
ligne (root:x:0:0:root:/root:/bin/bash)
login root C'est le nom utilisé par l'utilisateur pour ouvrir une
session sur le système,ce nom est affiché aussi pour
indiquer l’appartenance d'un fichier à un utilisateur (avec
ls -l)
root est le compte administrateur qui possède des
privilège d'administration sur le système
Les comptes utilisateurs: le fichier /etc/passwd (2)
Mot de passe x Anciennement les mot de passe était enregistrés dans /etc/passwd
mais pour des raisons de sécurité ils sont maintenant enregistrés dans
/etc/shadow
Le x indique que le mot de passe ne se trouve pas ici mais dans
/etc/shadow
UID (identifiant 0 Chaque compte utilisateur est identifié d'une façon unique dans le
de l'utilisateur) système par un identifiant appelé UID
L'UID est le paramètre qui définit réellement un utilisateur dans le
système
Certain UID sont spécial :0 définit le compte administrateur les UID
inférieurs à 500 (ou à 1000 dans certaine distributions) identifie les
comptes systèmes spéciaux
GID:identifiant du 0
groupe primaire C'est l'identifiant du groupe principal auquel appartient le compte
utilisatur,les groupes sont aussi identifiés par un identifiant
numérique appelé GID
Lorsqu'un utilisateur crée un fichier ce fichier appartient à
l'utilisateur (UID) et aussi à son groupe principal (GID)
Les comptes utilisateurs: le fichier /etc/passwd (3)
commentaire root Ce champ peut contenir des informations supplémentaire sur l'utilisateur
comme son nom réel ou toute autre information.
Ce champ est appelé aussi le champ GECOS (General Electric
Comprehensive Operating System ) il contient un ensemble de champ
séparés par virgule représentant des informations sur l'utilisateur comme
son nom,son numéro de téléphone ou autre informations.
L'administrateur peut changer ces informations contenues dans GECOS
avec la commande chfn et les utilisateurs peuvent afficher ces
informations avec la commande finger.
Shell /bin/bash Définit le shell qui sera utilisé par l'utilisateur lors de l'ouverture d'une
session en ligne de commande ou lorsqu'il ouvre un terminal.
L'utilisateur peut changer de shell en tapant le nom du shell qu'il souhaite
utiliser par exemple:/bin/tcsh
Les comptes utilisateurs: le fichier /etc/shadow (4)
● Le fichier /etc/shadow contient les informations relatives aux mots de passes des comptes utilisateurs
● Le tableau suivant décrit ces différents champs en prenant comme exemple la première ligne:
Sysadmin:$6$….I1:15020:5:30:7:60:15050:
Mot de passe $6$….I1 C'est le mot de passe crypté du compte,Le cryptage est
irréversible c’est à dire on ne peut pas trouver le mot de
passe à partir de la valeur crypté
Les comptes systèmes on comme valeur dans ce champ *
(les comptes systèmes seront discutés par la suite dans ce
chapitre)
Les comptes utilisateurs: le fichier /etc/shadow (4)(
Dernier 15020 Ce champ indique le nombre de jours écoulé depuis le dernier changement
changement du mot de passe.
15020 est le nombre de jours depuis 1 janvier 1970 jusqu'au jours ou le
mot de passe a été changé.
Lorsque l'utilisateur change son mot de passe cette valeur est générée
automatiquement.
min 5 Ce champ est relatif à la durée de validité du mot de passe.
Il indique pour un utilisateur ayant changer son mot de passe après
combien de jours il peut le changer de nouveau(valeur non nulle).
Une valeur nulle indique que l'utilisateur peut changer toujours son mot de
passe
max 5 Ce champ est utilisé pour forcer l'utilisateur à changer régulièrement son
mot de passe ,par exemple une valeur de 30 dans ce champ impose à
l'utilisateur de changer son mot de passe tout les 30 jours.
La valeur maximale pour ce champ est 99999 qui signifie que l'utilisateur
peut ne jamais changer son mot de passe car 99999 jours vaut 274 ans !!
Les utilisateurs ne peuvent pas voir le contenu de /etc/shadow pour des raisons de Sécurité pour cela il faut ouvrir une
session en tant qu’administrateur
Les comptes utilisateurs: afficher les informations d'un compte utilisateur
●Pour visualiser les informations concernant un compte utilisateur à partir du fichier /etc/passwd ou /etc/shadow on
peut utiliser la commande grep et afficher uniquement la ligne relative à l'utilisateur cherché
–Exemple:si on veut afficher les informations sur l'utilisateur sysadmin on écrit grep 'sysadmin' /etc/passwd
●getent est une autre commande qui permet d’afficher les informations d'un compte utilisateur à partir des fichiers
/etc/passwd ou /etc/shadow,l'avantage de getent est qu'elle peut afficher les comptes utilisateurs locaux ou ceux
définit sur un serveur réseau
–La syntaxe générale de getent est:getent base-donnée enregistrement
–Exemple:getent passwd sysadmin
Les comptes utilisateurs: afficher les informations d'ouverture de session
●Si on utilise plusieurs comptes pour ouvrir une session, on peut vérifier le compte utilisé actuellement pour
l'ouverture de session en utilisant la commande id
●La commande id sans argument affiche:le nom du compte,son ID et aussi les groupes auquel appartient le compte
courant.
●Si on passe un nom d'utilisateur comme argument à la commande id celle-ci va afficher les informations sur ce
compte utilisateur.
Les comptes utilisateurs: les comptes système
●En plus des comptes utilisateurs réguliers on trouve un ensemble de comptes système permettant de définir des
comptes pour les services s’exécutant sur le système
●Les comptes système ont un UID entre 1 et 499,alors que les comptes normaux ont un UID supérieur à 500(ou à
1000 dans certain système)
●Les informations sur les comptes systèmes sont aussi stockées dans les fichiers /etc/passwd et /etc/shadow mais
certain champ relatifs aux comptes systèmes diffèrent de ceux des comptes utilisateurs normaux
● Par exemple
–les comptes système ont la valeur /sbin/nologin dans le champ Shell du fichier /etc/passwd
–bin:x:1:1:bin:/bin:/sbin:/sbin/nologin
–Les comptes systèmes ont la valeur * dans le champ mot de passe du fichier /etc/shadow
–bin:*:15513:0:99999:7:::
Les groupes
●Les privilèges d'accès au système n'est pas définit uniquement par le compte utilisateur mais aussi par
l'appartenance à un groupe.
● Chaque utilisateur doit appartenir au moins à un groupe
●Le fichier /etc/passwd indique le groupe principal auquel appartient un compte utilisateur pour voir les autres
groupes secondaires il faut consulter le fichier /etc/group
● Le fichier /etc/group contient la liste de tous les groupes définies sur le système
● Pour afficher les informations relatives à un groupe particulier on utilise la commande grep ou getent
[sysadmin@localhost ~]$ grep mail /etc/group
mail:x:12:mail,postfix
[sysadmin@localhost ~]$ getent group mail
mail:x:12:mail,postfix
Les groupes: le fichier /etc/group
● Le fichier /etc/group contient 4 champs qui sont délimité par deux points décrivant les groupe du système
● Le fichier /etc/group a la structure suivante:
● Exemple :
mail:x:12:mail,postfix
●On peut changer le groupe propriétaire pour une arborescence de fichiers et de répertoires en utilisant
l'option -R de chgrp
–Exemple:chgrp -R games test_dir
–Définir le groupe games comme propriétaire du répertoire test_dir et de tout ces sous répertoires et
fichiers.
●Il existe aussi la commande chown qui permet de changer l'utilisateur propriétaire d'un fichier,mais cette
commande peut-être utilisée uniquement par le root
–Synatxe:chown utilisateur fichier
Ouvrir une session en tant que root
●Parfois on a besoin d'un certain privilège pour exécuter des commandes ou pour modifier des fichiers,il faut
alors ouvrir une session en tant qu'administrateur ou root.
●L'Ouverture de session directement en tant que root reste dangereux car ça peut causer des problèmes et des
dysfonctionnement pour le système en exécutant certaine commandes dont on ne sait pas le résultat. C'est pour
cette raison que le compte root est désactivé sur certaine distribution comme Ubuntu
●La solution est d’exécuter uniquement des commandes en tant que root lorsque les privilèges d'administrateur
sont demandés.
●Si le compte root est désactivé(comme pour Ubuntu) on utilise la commande sudo pour exécuter des
commandes en tant que root
●Si le compte root est activé on utilise la commande su pour basculer un compte régulier vers le compte root et
exécuter des commandes demandant les privilèges root.
L'utilisation de la commande su
●La commande su permet d’exécuter le Shell en tant qu'un autre utilisateur ,par défaut si le compte utilisateur
n'est pas spécifié alors su permet d’exécuter le Shell en tant que root.
●L'option -l de su ou – permet d'ouvrir le Shell comme si l'utilisateur est directement connecté en tant que
root
● Les commandes suivantes sont équivalentes et permettent exécuter le Shell en tant que root
–su -l root
–su -
–su –l
● Le mot de passe root vous sera demandé une fois l'une de ces commandes entrées
● Pour revenir à votre shell par défaut(compte utilisateur original) il faut utiliser la commande exit.
L'utilisation de la commande sudo
● La commande sudo permet à un utilisateur d’exécuter une commandes en tant qu'administrateur
–SYNTAXE:sudo commande
● Sudo demande à l'utilisateur de fournir son propre mot de passe et non pas celui du root.
●Exemple:pour afficher le fichier /etc/shadow il faut avoir les privilège du root on doit alors faire appel à la
commande sudo pour afficher ce fichier en tant qu'administrateur
–sudo head /etc/shadow
La commande who
● La commande who affiche la liste des utilisateurs actuellement connectés au système
La commande who
La commande w offre plus de détaille sur les utilisateurs connecté au système par rapport à la commande
●
who
[sysadmin@localhost ~]$ w
10:44:03 up 50 min, 4 users, load average: 0.78, 0.44, 0.19
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty2 - 10:00 43:44 0.01s 0.01s -bash
sysadmin tty1 :0 09:58 50:02 5.68s 0.16s pam: gdm-password
sysadmin pts/0 :0.0 09:59 0.00s 0.14s 0.13s ssh 192.168.1.2
sysadmin pts/1 example.com 10:00 0.00s 0.03s 0.01s w
●La première ligne du résultat de la commande w donne le temps écoulé depuis le démarrage du système ,le
nombre d'utilisateurs connecté et la charge moyenne (charge CPU).
La commande w
● Le tableau suivant décrit l'affichage de la commande w
●Dans certaine distribution lorsqu'on crée un nouveau utilisateur un groupe nommé groupe privé d'utilisateur (User Private
Group UPG) est créé automatiquement ce groupe aura le même nom que celui du nouveau utilisateur et aura un seul membre
qui est le nouveau utilisateur.
●Pour les distributions qui ne créent pas d'UPG les nouveaux utilisateurs auront comme groupe principal le groupe
« users »,l’administrateur peut alors créer des groupes qui seront privé pour le nouveau utilisateur,mais le plus souvent on a
besoin de créer des groupes contenant plusieurs utilisateurs qui ont besoin de collaborer.
●Les comptes utilisateurs peuvent être modifier à tout moment (les ajouter ou les retirer d'un groupe) mais un compte
utilisateur doit appartenir au moins un groupe (le groupe principal)
●Avant de créer de nouveaux utilisateurs il faut tout d'abord planifier quel utilisateur doit appartenir à quel groupe,il est
recommandé de créer les groupes en premier puis les utilisateurs car c'est plus simple côté gestion.
Création d'un groupe
●La raison principale pour créer des groupes est de permettre aux utilisateurs de partager des fichiers,par exemple ça peut
être le cas de personnes qui travaillent ensemble sur un projet et qui ont besoin de partager les documents relatifs à ce projet
Après la création ou la modification d'un groupe on peut vérifier sa configuration en consultant le fichier /etc/group
●
●La commande groupadd est exécutée par le root pour créer un nouveau groupe,elle admet comme paramètre le nom du
groupe qu'on souhaite créer, l'option -g de groupadd permet de spécifier un GID pour le groupe qu'on souhaite créer.
research:x:506:
Création d'un groupe
●Si l'option -g n'est pas utilisée la commande groupadd fournit automatiquement un GID dont la valeur sera
supérieur au plus grand GID courant se trouvant dans /etc/group.
[root@localhost ~]# grep research /etc/group
research:x:506:
[root@localhost ~]# groupadd development
[root@localhost ~]# grep development /etc/group
development:x:507:
Création d'un groupe
●On vient de voir que dans certain système un groupe UPG est créé automatiquement lors de la création d'un
nouveau utilisateur,ce groupe aura un GID supérieur à 500.
●Pour éviter les conflits entre les groupes créer manuellement et les groupes UPG on peut attribuer un GID
inférieur à 500 aux groupes qu'on va créer manuellement en utilisant l'option -r de groupadd
● Il faut noter que les GID inférieurs à 500 sont réservé pour les comptes systèmes
[root@localhost ~]# groupadd -r sales
[root@localhost ~]# getent group sales
sales:x:491:
Création d'un groupe: considérations pour les noms de groupes
●Pour nommer un groupe il faut respecter les points suivant pour que le groupe puissent fonctionner
correctement avec les autres systèmes ou services
–Le premier caractère doit être une lettre minuscule(a-z) ou le caractère sous-ligné(_)
–Le nom ne doit pas dépasser 32 caractères 'ou 16 pour certain systèmes)
–Après le premiers caractères les autres caractères peuvent être alphanumérique,sous-ligné(_) ou tiret(-)
–Le dernier caractère ne doit pas être un tiret (-)
Modification d'un groupe
●La commande groupmod peut être utilisée pour modifier le nom d'un groupe (option -n) ou son GID
(option -g).
●Le changement du nom d'un groupe n'affecte en rien appartenance des fichiers au groupes car le système
utilise le GID pour définir l'accès aux fichiers.
[root@localhost ~]# ls -l index.html
-rw-r-----. 1 root sales 0 Aug 1 13:21 index.html
[root@localhost ~]# groupmod -n clerks sales
[root@localhost ~]# ls -l index.html
-rw-r-----. 1 root clerks 0 Aug 1 13:21 index.html
Modification d'un groupe
●D'autre part si on modifie le GID du groupe tous les fichiers associé au groupe ne le seront plus et ne seront
associé à aucun nom du groupe,ils seront associé à un GID uniquement
● Ces fichiers qui ne sont pas associé à un nom de groupe sont appelé fichier « orphelin »
[root@localhost ~]# groupmod -g 10003 clerks
[root@localhost ~]# ls -l index.html
-rw-r-----. 1 root 491 13370 Aug 1 13:21 index.html
● On peut chercher ces fichiers avec find en utilisant l'option -nogroup
[root@localhost ~]# find / -nogroup
/root/index.html
Supprimer un groupe
●Pour supprimer un groupe on utilise la commande groupdel,les fichiers appartenant au groupe vont devenir
des fichiers “orphelins.
●On peut uniquement supprimer les groupes secondaires d'un utilisateur avec groupdel et non pas le groupe
principal.
● Pour supprimer un groupe on le donne comme argument pour la commande groupdel
HOME /home /home est le répertoire de base par défaut où les répertoires personnels des nouveaux
utilisateurs vont être créer.
Par exemple un utilisateur bob aura comme répertoire personnel /home/bob.
L'option -b de useradd permet de spécifier un répertoire de base (différent de celui par défaut
)où le répertoire personnel de l'utilisateur sera créé.
Ce paramètre affecte le champ suivant de /etc/passwd :
bob:x:600:600:bob:/home/bob:/bin/bash
INACTIVE -1 Cette valeur représente le nombre de jour restant après l'expiration du mot de passe avant que le
compte soit désactivé.
La valeur -1 signifie que ce champ n'est pas activé.
L'option -f de useradd permet de modifier ce paramètre
Ce paramètre affecte le champ suivant du fichier /etc/shadow
bob:pw:15020:5:30:7:60:15050:
Création d'un utilisateur:le fichier /etc/default/useradd
EXPIRE Cette valeur indique la date d'expiration du compte,par défaut cette valeur
n'est pas définie
Pour définir une date d'expiration on utilise l'option -e de useradd.Ce
paramètre affecte le champ suivant de /etc/shadow :
bob:pw:15020:5:30:7:60:15050:
SHELL /bin/bash Ce paramètre définit le shell par défaut que le nouveau utilisateur va
utiliser
Pour changer le shell par défaut on utilise l'option -s de useradd.Ce
paramètre affecte le champ suivant dans
/etc/passwd :bob:x:600:600:bob:/home/bob:/bin/bash
SKEL /etc/skel Définit le répertoire « squelette » dont le contenu sera copié dans le
répertoire personnel du nouveau utilisateur,cela permet de définir des
fichiers de configuration intiale pour le compte nouvellement créé.Pour
changer la valeur par défaut de ce paramètre on utilise l'option -k de
useradd
CREATE_MAIL_SPOOL yes « spool » est un fichier où les e-mail reçu par l'utilisateur vont être stockés
Pour ne pas créer ce fichier on place dans ce paramètre la valeur « no »
Création d'un utilisateur:le fichier /etc/default/useradd
●Pour modifier les paramètres par défaut de la commande useradd on édite directement le fichier
/etc/default/useradd ou bien une façon plus sur est d'utiliser la commande useradd -D.
●Exemple:on veut modifier le paramètre INACTIVE pour que les utilisateurs puissent utiliser leur compte
expiré durant 30 jours supplémentaires.
● UID_MIN:ce champ indique UID minimal qu'on peut attribuer à un utilisateur régulier
● UID_MAX:définit l'UID maximal qu'on peut attribuer à un utilisateur régulier
● GID _MIN:définit le GID minimale qu'on peut affecter à un groupe ordinaire
● GID_MAX:définit le GID maximal qu'on peut affecter à un groupe ordinaire
● CREATE_HOME:indique si le répertoire personnel de l'utilisateur va être créé (yes ou no)
● UMASK:spécifie les permissions par défaut sur le répertoire personnel
● USERGROUPS_ENAB:si l'UPG est utilisé ce paramètre aura la valeur yes
●ENCRYPT_METHOD:définit la méthode de cryptage du mot de passe dans /etc/shadow ce paramètre remplace
le dernier paramètre MD5_CRYPT_ENAB
Création d'un utilisateur: la commande useradd
●Le dossier personnel:dans la plupart des distributions le répertoire personnel est créé sous /home et porte le
même nom que celui de l'utilisateur, la commande useradd possède plusieurs options qui vont affecté la création
du répertoire personnel
–L'option -b:permet de spécifier le répertoire de base sous lequel le répertoire personnel va être créé par défaut
c'est /home
–L'option -d:permet de spécifier le chemin complet du répertoire personnel de l'utilisateur à créé il peut s'agir
d'un répertoire qui existe déjà
–L'option -M:ne pas créer de répertoire personnel
–L'option -m:créer le répertoire personnel cette option est nécessaire uniquement si l'option -k est utilisée
Création d'un utilisateur:la commande useradd
●Le répertoire squelette:par défaut c'est le répertoire /etc/skel on peut le modifier avec l'option -k de useradd
dans ce cas il faut utiliser l'option -m pour créer le répertoire personnel sinon useradd va échouer
Le Shell:le Shell par défaut est définit dans /etc/default/useradd on peut le modifier avec l'option -s de
●
useradd, l'utilisateur peut aussi modifier son Shell avec la commande chsh.
● Le commentaire:un commentaire peut être associé avec un nom de compte en utilisant l'option -c de useradd
Création d'un utilisateur:la commande useradd
●Lors de la création d'un utilisateur avec useradd les informations sur le compte utilisateur vont être ajoutées
automatiquement aux fichiers /etc/passwd et /etc/shadow
●Alors que les informations sur les groupes secondaires seront ajoutées aux fichiers /etc/group et
/etc/gshadow
● Il faut noter que le compte “jane” n'a pas encore de mot de passe valide
Création d'un utilisateur: la commande useradd
●En plus le fichier de file d'attente de messagerie « spool » va être créé et le répertoire personnel va être créé
aussi avec des permissions permettant uniquement à l'utilisateur “jane” d'y accéder et avec le contenu de
/etc/skel copié dedans.
Création d'un utilisateur : la commande adduser
adduser
La commande adduser, invoquée par un compte d'administration, démarre le script de
création de compte d'utilisateur :
Sont ensuite demandées, une à une, les informations à affecter au nouveau compte
d'utilisateur. Appuyer sur la touche [Entrée] du clavier enregistre l'information renseignée
et passe à la question suivante.
Supprimer un utilisateur
Exemples :
Lorsqu’un utilisateur lance une commande, un processus est créé
dont le père est le processus correspondant à l’exécution du shell.
Les Etats d’un processus
• Durant sa vie (temps entre le lancement et la sortie) un processus peut
passer par divers états :
Numéro
Signification
de signal
15 Signal de terminaison de processus.