Académique Documents
Professionnel Documents
Culture Documents
a) Utilisateurs
Le système Linux définit un utilisateur par :
- Un login : un identifiant texte qui est unique
- mot de passe crypté. Il peut être remplacé par x et déporté dans /etc/shadow pour le cacher
(seul root peut lire) et améliorer la sécurité.
- Un identifiant numérique : l’User ID (UID) qui est unique (numéro d'utilisateur utilisé
dans les inodes1, entre autres. L’UID du super-utilisateur est 0)
- Un identifiant numérique de groupe : Group ID (GID = numéro de groupe principal) :
C’est le groupe principal de l’utilisateur (Primary Group). Il est obligatoire et est utilisé
lors de la connexion. L’utilisateur peut appartenir à d’autres groupes. Ce sont les groupes
secondaires (Secundary groups)
- Un répertoire de travail (répertoire Maison) : Habituellement /home/login
- Un shell de connexion : Par défaut c’est /bin/bash
- Fichier /etc/passwd est la base de données sur les utilisateurs.
● Exemple de ligne
:
mquinson:DcoJmNQ:1003:1003:Martin
Quinson,,,:/home/mquinson:/bin/bash
- Fichier /etc/group est la base de données sur les groupes nomme les groupes et défini les
autres groupes de l'utilisateur
● Exemple de ligne :
audio:DcoJmNQ:29:plateau,mquinson
La commande passwd :
● Rôle pour l'utilisateur : créer ou modifier son mot de passe
● Rôles pour l'administrateur :
modifier le mot de passe d'un utilisateur passwd nom_utilisateur
1
L’inode est le centre de tous les échanges entre le disque et la mémoire. L’inode est la structure
qui contient toutes les informations sur un fichier donné à l’exception de sa référence, dans
l’arborescence.
supprimer le mot de passe passwd -d nom_utilisateur
verrouiller le compte d'un utilisateur passwd -l nom_utilisateur
déverrouiller le compte d'un utilisateur passwd -u nom_utilisateur
Identités :
- Attention aux conflits entre les UID des utilisateurs locaux et externes.
Pose des problèmes de sécurité en NFS
Pose des problèmes lors de l’authentification : Voir le fichier /etc/nsswhich.conf
- id” permet d’obtenir des informations sur sa propre identité.
- S’authentifier sous un autre utilisateur (changer son identité) : commande su apache
Système multi-utilisateurs :
- “getent” permet d’obtenir des informations sur un utilisateur ou un groupe (commande
getent passwd apache et getent group src).
- “testsaslauthd” permet de vérifier l’authentification sur un service (login, ftp, …) :
commande testsaslauthd –u legond –s su –p monpass.
- La fonction crypt() est une fonction de hachage à sens unique (voir les cours de SSI)
- Cette fonction permet de crypter un mot de passe
- Il n’existe pas de fonction qui permette de revenir de la forme cryptée à la forme claire.
- Il reste possible d’attaquer le mot de passe en cryptant des mots de passes et en les
comparant à la forme cryptée.
- Alors peut-on choisir n’importe quel mot de passe ?
NON
- Il est important de bien choisir ses mots de passe
- Un mot de passe de passe doit être unique sur chaque système
- Certains mots de passes peuvent être devinés : On crypte un ensemble de mdp
préexistants, le dictionnaires anglais, français, …, les Noms de
films/acteurs/produits/personnes célèbres. La génération de mdp par des règles de
transformations (Librairies de crack)
- Un bon mdp ne doit pas :
Utiliser le dictionnaire
Indépendant de l’environnement de l’utilisateur (login name, nom réel)
Pas de nom, surnom, d’identifiant (même modifier), de mot connu, marque
Pas de date (textuelle ou numérique), de clavier
- Un bon mdp doit :
Etre composé de ponctuations, chiffres, lettres majuscules et minuscules
Avoir au moins 7 caractères (si possible 10 à 14)
Vous pouvez vous trouver un algo (mais il doit rester secret)
Changer son mdp régulièrement
Exemples
zqhYtds/965 moNpass,67$ Hg#91__bb
● On peut en générer de façon « pseudo-aléatoire »
– Utilisation de « pwgen » et de « mkpasswd »
« apg » , « passwd-gen», …
● Vérification des mots de passes :
– Utilisation de la cracklib pour vérifier les mdp
« cracklib-check »
– pam_cracklib, pam_passwdqc
b) Les Groupes
- Un Groupe est défini par :
Un identifiant [unique]: Group ID (GID)
Un nom de groupe [unique]
Un mot de passe de groupe (peut être vide)
Des membres : une liste d’utilisateurs appartenant au groupe
- Un utilisateur peut appartenir à plusieurs groupes
- Rappel : Un utilisateur appartient à au moins un groupe
À chaque fichier est associé un ensemble d’indicateurs précisant les droits d’accès au
fichier.
Pour chaque fichier il existe trois types d’utilisateurs :
• le propriétaire du fichier,
• les membres du groupe propriétaire du fichier,
• les autres utilisateurs du système.
Pour chaque fichier et par type d’utilisateur il existe trois modes principaux :
• autorisation d’écriture (w)
• autorisation de lecture (r)
• autorisation d’exécution (x)
En plus de ces neuf bits (rwx rwx rwx), Unix/Linux définit trois autres bits de permission :
SUID, SGID, t que nous présenterons plus loin.
Sous Linux il existe différents types de fichiers :
• fichier ordinaire ( )
• fichier répertoire (d)
• fichier spécial : périphérique accédé en mode caractère (c)
• fichier spécial : périphérique accédé en mode bloc (b)
• tube nommé (named pipe) (p)
• lien symbolique (l)
• socket (s)
Ainsi, à chaque fichier Linux sont associés 10 attributs (1 pour désigner le type, et
9 attributs de protection, 3 pour le propriétaire, 3 pour le groupe et 3 pour les autres
utilisateurs). L’ensemble des renseignements sur un fichier est obtenu en utilisant la
commande ls l.
Exemple
xstra> ls l /etc/passwd
ou
La protection d’un fichier ne peut être modifiée que par le propriétaire à l’aide de la
commande chmod (CHange MODe). Il existe deux modes d’utilisation de cette commande.
La première (la plus ancienne) utilise la description des protections par un nombre octal.
Exemple
rwx rw r x est représenté par le nombre octal 765. En effet, une lettre équivaut à 1, un
tiret à 0.
On a donc rwx rw r x = 111 110 101 = 765
Exemple
Cet exemple va modifier la protection du fichier toto de la manière suivante :
r x rw rwx autorisant un accès lecture et exécution au propriétaire, lecture et écriture
au groupe et un accès sans restriction aux autres (cas très rare).
xstra> chmod 567 toto
xstra> ls l toto
r x rw rwx 1 xstra staff 55 Jul 20 17:01 toto
xstra>
Exemples
chmod u w file supprime le droit d’écriture au propriétaire.
chmod g+r file file ajoute le droit de lecture pour le groupe.
chmod ug=x file file accès uniquement en exécution pour le propriétaire et
le groupe, pas de modification pour les autres.
La protection d’un fichier, ainsi que le nom du propriétaire (le vôtre) et le nom du groupe
auquel vous appartenez, sont établis à sa création et ne peuvent être modifiés que par son
propriétaire.
La commande umask permet de définir un masque de protection des fichiers (et
répertoires) lors de leur création. Cette commande se trouve en général dans le fichier
.bashrc, mais elle peut être exécutée à tout moment. Le masque est exprimé en base 8.
Exemples
xstra> umask 022
Attention
Pour les fichiers ordinaires, umask 022 donnera une protection de type rw r r , car la
possibilité d’exécution n’est pas autorisée sur les fichiers ordinaires.
Exemple
xstra> umask u=rwx,g=rx,o=rx
xstra> umask
0022
xstra> umask –S
u rwx,g rx,o rx
Dans le cas des répertoires, l’interprétation des droits est légèrement différente de celle
concernant les fichiers. Les informations concernant un répertoire sont obtenues par la
commande ls dl rept.
Exemple
ou
xstra> ls dl bin
drwx r x r x 3 xstra staff 1024 Jul 28 18:04 bin
xstra>
L’interprétation des protections pour les répertoires est la suivante :
r autorise la lecture du contenu du répertoire comme dans le cas des fichiers; permet
donc de voir la liste des fichiers qui sont dans le répertoire
x autorise l’accès au répertoire (à l’aide de la commande cd).
w autorise la création, la suppression et le changement du nom d’un élément du
répertoire. Cette permission est indépendante de l’accès aux fichiers dans le
répertoire.
Exemples
Soit un fichier f1 dans le répertoire xstra1.
1) Le répertoire xstra1 appartenant à l’utilisateur xstra1 a les protections suivantes :
drwx
Le fichier f1 de xstra1 a les protections suivantes :
rwx
Seul l’utilisateur xstra1 pourra modifier et supprimer son fichier f1.
2) Le répertoire xstra1 appartenant à l’utilisateur xstra1 a les protections suivantes :
dr x
Le fichier f1 de xstra1 a les protections suivantes :
Rwx
Seul l’utilisateur xstra1 pourra modifier son fichier f1 mais il ne pourra pas le supprimer.
En effet le propriétaire du répertoire xstra1 (l’utilisateur xstra1) n’a pas l’autorisation w
(autorisation de création, suppression, modification du nom d’un élément du répertoire).
La possibilité de suppression d’un fichier n’est donc pas fixée dans les permissions de ce
fichier, mais dans les permissions du répertoire qui le contient. Ce n’est donc pas une
permission fixée fichier par fichier. Cela pose problème, en particulier dans le répertoire
/tmp : tout utilisateur doit pouvoir créer des fichiers dans /tmp, qui a donc les
permissions rwx pour other. Chacun peut donc lire et écrire dans /tmp, et donc y créer
des fichiers. Mais chacun pourrait aussi supprimer tout fichier dans /tmp, y compris des
fichiers créés par d’autres utilisateurs ! D’où l’utilité du bit t sur un répertoire : si ce bit est
positionné, un utilisateur qui peut écrire dans le répertoire peut y créer des fichiers, mais ne
peut supprimer un fichier que s’il en est propriétaire. Le bit t apparaît à la place du bit x de
other dans la commande ls l :
xstra> ls –ld /tmp
drwxrwxrwt 11 root root 3072 May 11 15:09 /tmp
4. MODIFICATION DU PROPRIÉTAIRE ET DU GROUPE
La commande chown permet de changer le propriétaire d’un fichier. Pour des raisons de
sécurité, seul l’administrateur peut modifier le propriétaire d’un fichier ou d’un répertoire.
Cet utilisateur privilégié, appelé root, peut accéder à tous les fichiers et répertoires sans
aucune restriction et peut en modifier tous les attributs (nom, propriétaire, groupe
propriétaire, permissions, dates). Il existe toujours dans tous système Unix/Linux.
La commande chgrp permet le changement de groupe pour les fichiers ou répertoires
cités, à condition que l’utilisateur fasse partie du nouveau groupe et soit propriétaire de
ces fichiers ou répertoires.
Exemple
xstra> chgrp info f1
§ possible si j’appartiens au groupe info
xstra> chown soline f1
chown: f1: Operation not permitted
§ possible seulement pour root
Le fichier f1 appartiendra à soline et au groupe info.
Une commande équivalente (utilisable seulement par root) serait :
root> chown soline.info f1
Le choix entre le comportement System V et BSD peut donc être fixé répertoire par
répertoire par positionnement du bit SGID sur le répertoire. Ceci est réalisé par les
commandes :
chmod g+s repertoire § met le bit SGID
chmod g s repertoire § supprime le bit SGID
Si un répertoire est SGID, tout sous-répertoire créé ultérieurement héritera du bit § le
répertoire SGID, et donc du comportement BSD. Ce comportement est très adapté au
travail en groupe :
Exemple
L’utilisateur xstra fait partie du groupe staff et également du groupe reseau. Son groupe
principal est staff. Voyons ce qui se passe dans un répertoire non SGID :
xstra> umask 002
xstra> ls ld projet1
drwx rwx r x 2 xstra staff 4096 jan 22 10:0 projet1
Les autres membres du groupe réseau n’ont pas la permission de modifier le fichier prog2.c
: nous ne sommes pas dans une logique de travail en groupe pour le groupe réseau. Voyons
maintenant ce qui se passe dans un répertoire SGID :
xstra> umask u rwx,g rwx,o rx
xstra> ls ld projet2
drwx rws r x 3 xstra reseau 4096 jan 22 10:0 projet2
§ le répertoire projet2 est SGID
xstra> cd projet2
xstra> touch prog2.c
xstra> ls –l prog2.c
rwx rwx r 1 xstra reseau 0 fev 10 15:02 prog2.c
§ Le fichier prog2.c appartient au groupe reseau.
Dans ce dernier cas, tous les membres du groupe réseau pourront modifier tout fichier créé
dans ce répertoire. Le travail en groupe est très simplifié. Une discussion beaucoup plus
détaillée et très intéressante sur cette logique est disponible (en anglais) dans l’aide en ligne
au format HTML, par exemple pour la distribution Red Hat dans :
Red Hat Linux Reference Guide
System Related Reference
System Administration
Users, Groups and User-Private Groups