Vous êtes sur la page 1sur 24

Unix/Linux : Fichiers, Répertoires

et Droits d’Accès
Utilisateurs, Groupes et Droits
Avancés
Un utilisateur : Définition
¤ C’est quoi un utilisateur Linux?
¤ Un individu qui utilise les ressources de la machine, peut s’y
connecter, éditer des fichiers, lire les emails.
¤ Il a un nom de login et un password.
¤ Peut avoir un répertoire home et un ensemble de fichiers.

¤ Les informations des utilisateurs sont sauvegardées dans le système


sous la formes de comptes (accounts).

¤ Les comptes fournissent un moyen de distinction entre les


différents utilisateurs sur un système.
¤ Mais un compte peut aussi être un compte système.
¤ Pas pour un individu.
¤ Possédé et utilisé par des daemons pour réaliser des tâches systèmes.

¤ Un compte et plus qu’un nom de login : c’est un environnement.


Utilisateurs : Caractéristiques
¤ Chaque utilisateur d’un système Linux est inscrit dans une base de
données locale ou dans un annuaire réseau. Un compte utilisateur
représente bien une personne qu’une application (Apache, lp,…)

¤ Les caractéristiques d’un compte utilisateur :


Login Nom de l’utilisateur (ou de l’application)
Mot de passe Utilisé lors de la connexion pour authentifier l’utilisateur
UID Un numéro qui identifie l’utilisateur
GID Un numéro spécifiant le groupe principale de l’utilisateur
Commentaire
Répertoire de Son répertoire HOME
connexion
Shell Le plus souvent un véritable shell, activé en début de
session en mode texte

¤ L’UID 0 est réservé à l’administrateur root. L’utilisateur root a tous les droits sur le
système.
Groupes
¤ Quand un fichier est crée, il est automatiquement la propriété d’un
utilisateur et d’un groupe.

Exemple : -rw-rw-r-- airaj staff /home/airaj/test

¤ /etc/group est le fichier qui définit les groupes. Aperçu :


¤ airaj:x:500:800:Mohammed AIRAJ:/home/airaj:/bin/bash
¤ staff:x:800
Le groupe principal de l’utilisateur airaj est staff.
Un utilisateur peut être membre de plusieurs groupes.

¤ Le groupe propriétaire d’un fichier est le groupe principal de l’utilisateur


qui l’a crée.

¤ Pourquoi les groupes?


¤ Permettent une organisation flexible des fichiers.
¤ Permettent à un nombre arbitraire d’utilisateurs de partager des
fichiers de façon transparente.
Les commandes
useradd, userdel Ajout, destruction d’un compte utilisateur

groupadd, groupdel Ajout, destruction d’un compte groupe

passwd Modifie le mot de passe d’un compte

id Affiche les identités d’un compte

su Réalise une connexion secondaire, on doit déjà


être connecté.
Exemple (user connecté airaj) : $ su – root
Je suis connecté en tant que airaj et je voudrais
réaliser une connexion en tant que root

chgrp Change le groupe propriétaire d’un fichier ou


d’un répertoire(chgrp group fichier ou répertoire)

chown Change le propriétaire d’un fichier ou


répertoire(chown user.group fichier ou répertoire)
Création d’un utilisateur : commande
useradd et passwd
# useradd –g staff -m airaj

Création du compte utilisateur airaj membre du groupe principal


staff

L’option –m, permet de créer le répertoire HOME de l’utilisateur


airaj

en utilisant les valeurs définies dans le système de fichiers.

(définies dans /etc/default/useradd, /etc/login.defs)

# useradd -D : affiche les valeurs par défaut.

# passwd airaj

Permet d’entrer le mot de pass pour l’utilisateur airaj

NB : Les commandes précédées par #, signifie faut avoir des droits d’administrateurs.
Commande useradd
# useradd –u 1001 –g lp –G news,mail –c commentaire –d /user/myusername
-m -s /bin/bash myusername

¤ La commande useradd permet de créer un compte utilisateur.

¤ Cette commande crée un compte utilisateur myusername.

¤ Son uid est 1001.

¤ Son groupe principale (gid) est lp, il fait partie également des
groupes news et mail (groupes secondaires). On suppose qu’ils
sont déjà crées.

¤ Le champs commentaire contient la chaîne commentaire.

¤ Son répertoire de connexion (home) est /user/myusername. Ce


répertoire sera crée (option –m).

¤ Son shell est le shell Bash.


userdel

# userdel airaj
Supprime le compte utilsateur airaj du système, sans supprimer
le répertoire home de l’utilisateur.

# userdel –r airaj
L’option –r supprime aussi le répertoire home de l’utilisateur.

¤ Peut pas supprimer un compte si son utilisateur est connecté ou


si l’utilisateur a un processus démarré.
usermod
¤ usermod modifie les fichiers d’un compte utilisateur.

¤ Syntaxe : usermod [options] LOGIN

¤ La commande a plusieurs options, y parmi :

¤ -a : Ajout de l’utilisateur aux groupes supplémentaires. Marche uniquement avec


l’option –G.

¤ -d : Le nouveau répertoire home de l’utilisateur.

¤ -e : La date quand un compte utilisateur sera désactivé.

¤ -f : Le nombre de jours après expiration qu’un compte sera désactivé de façon


permanente.

¤ -g : Le nom du groupe primaire de l’utilisateur.

¤ -G : La liste des groupes auxiliaires auquels l’utilisateur est membre.

¤ -l : Le nom du login de l’utilisateur.


Particularité des distributions!!!
¤ Famille Redhat/Fedora/CentOS

system-config-users Outil graphique de gestion des utilisateurs


passwd L’option --stdin permet de changer un mot de
passe en automatique
useradd L’option –m est par défaut

¤ Famille Debian/Ubuntu
useradd L’option –m n’est pas par défaut

adduser Ajout d’un utilisateur, respecte la charte


Debian
addgroup Ajout d’un groupe, respecte la charte
Debian

passwd La commande Debian ne connaît pas


l’option --stdin
Unix/Linux : privilèges utilisateurs
sudo
¤ Grâce à la commande sudo, des commandes nécessitant à priori les
prérogatives de root, peuvent être exécutées par un compte ordinaire.

¤ Le fichier /etc/sudoers décrit qui peut activer une commande avec


sudo et sous quelle identité.

¤ Syntaxe : Qui hôte = (identité) commande [,…]

¤ Exemple : airaj ALL = (root) /usr/bin/useradd, /usr/bin/usermod


¤ L’utilisateur airaj peut activer les commandes useradd et usermod
avec les droits de root.

¤ Mot de passe : Par défaut, la commande sudo demande le mot de


passe de l’utilisateur. Le mot-clé NOPASSWD si précède les
commandes, alors le mot de passe n’est pas demandé

¤ Exemple : %admins ALL = (root) NOPASSWD: /usr/bin/useradd

¤ Remarque : un groupe est précédé du caractère %


sudo : /etc/sudoers
/etc/sudoers : Les alias
¤ Pour simplifier l’écriture d’un fichier, on définit des alias, en
spécifiant la catégorie de l’alias en 1ère colonne.

¤ Exemple, dans le fichier /etc/sudoers, définir :

#Alias

Users_Alias ADM_USERS = airaj, tester

Runas_Alias OPERATOR = root

Cmd_Alias USER_CMDS = /usr/bin/useradd,


/usr/bin/usermod

#Exemple d’utilisation

ADM_USERS ALL = (OPERATOR) USER_CMDS


Unix/Linux : Droits avancés
Les utilisateurs et les droits : avancé
¤ Le sticky bit : Par défaut un répertoire accessible en écriture à un
ensemble d’utilisateurs permet à l’un d’entre eux de détruire les
fichiers d’un autre utilisateurs!. Avec le sticky bit il faut être
propriétaire d’un fichier pour avoir le droit de le détruire.

¤ Les droits d’endossement (SUID, SGID) pour un exécutable : Ils


servent à augmenter les privilèges des utilisateurs. Par exemple,
le droit Set-UID (SUID pour Set owner User ID up on execution ) sur
un binaire exécutable permet à l’utilisateur de l’application
correspondante d’avoir les mêmes droits d’accès que le
propriétaire du binaire. Le droit Set-GID (SGID) permet
d’endosser les droits du groupe auquel est affilié le binaire.

¤ Exemple : le fichier /etc/shadow n’est en théorie accessible qu’à


root. Or, tout utilisateur a accès en écriture à ce fichier lorsqu’il
change son passwd grâce à la commande /usr/bin/passwd.
Cela est dû au fait que cette commande, détenue par root
possède le droit SUID et donne de fait à tous les utilisateurs les
mêmes droits que root pendant l’exécution de paswd.
Les utilisateurs et les droits : avancé
¤ Le droit SGID pour un répertoire : Lorsque l’on crée un fichier il est
automatiquement affilié à son groupe principal. Si l’on crée un fichier
dans un répertoire qui possède le droit SGID, son groupe sera identique à
celui du répertoire.

¤ SUID s’applique pour les fichiers binaires, SGID pour les fichiers binaires et
répertoires, Sticky Bit pour les répertoires

¤ Le droit de modifier les droits : Un administrateur peut modifier le


propriétaire d’un fichier.

¤ Les droits en octal : 4000 pour SUID, 2000 pour SGID et 1000 pour Sticky bit

¤ Equivalent en symbolique : s.
u+s pour SUID, g+s pour SGID, et o+t pour Sticky bit.

¤ Si vous affichez les droits avec ls -l : le sticky bit est représenté par t si les
droits d’exécution existent pour others (ex : drwxrws--t), T sinon. De même
pour les SUID et SGID, s si les droits d’exécution existent, S sinon.
Exemple (suite)
¤ Exemple : supposons que vous souhaitiez appliquer les droits de
SUID et SGID à un fichier nommé testme qui devrait être lisible et
exécutable par le propriétaire et le groupe, et lisible par les
autres. Vous entrez chmod 6554 testme à l'invite de commandes
ou chmod ug+srx,o+r testme

¤ Ceci indique que le fichier a les droits SUID (4) et SGID (2)
attribuées (pour un total de 6 dans le premier nombre).

¤ Il précise également que le propriétaire et le groupe ont les droits


de lecture (4) et d'exécution (1) attribuées (pour un total de 5
dans les deuxième et troisième nombres).

¤ Il précise également que les autres sont autorisés à lire (4) le


fichier, mais ne sont pas en mesure de le modifier ou de
l'exécuter (pour un total de 4 dans le dernier nombre).
Exemple
¤ Permettre à un programme de s’exécuter en utilisant les droits du
propriétaire du programme
Exemple : Un programme qui s’exécute
avec les droits de son propriétaire

$ chmod 4755 my_exec

¤ Permettrait à my_exec de s’exécuter avec les droits du


propriétaire de ce fichier.

¤ Le propriétaire peut lire, écrire et exécuter.

¤ Le groupe peut lire et exécuter

¤ Others peuvent lire et exécuter.

Résultat : Quiconque exécute ce fichier, ce fichier s’exécutera avec


les droits de son propriétaire, et non de celui qui l’a lancé.
Exemple : Un programme qui s’exécute avec les
droits du groupe propriétaire

$ chmod 2755 my_exec

¤ Permettrait à my_exec de s’exécuter avec les droits du groupe


propriétaire de ce fichier.

¤ Le propriétaire peut lire, écrire et exécuter.

¤ Le groupe peut lire et exécuter

¤ Others peuvent lire et exécuter.

Résultat : Quiconque exécute ce fichier, ce fichier s’exécutera avec


les droits du groupe propriétaire, et non du groupe de celui qui l’a
lancé.
Exemple : Un programme qui s’exécute avec les
droits du propriétaire et du groupe propriétaire

$ chmod 6755 my_exec

¤ Permettrait à my_exec de s’exécuter avec les droits du


propriétaire et du groupe propriétaire de ce fichier.

¤ Le propriétaire peut lire, écrire et exécuter.

¤ Le groupe peut lire et exécuter

¤ Others peuvent lire et exécuter.

Résultat : Quiconque exécute ce fichier, ce fichier s’exécutera avec


les droits de son groupe propriétaire et ceux de son propriétaire, et
non de ceux de celui qui l’a lancé.
Droits Description Effet sur les fichiers Effet sur les répertoires
SUID Set User ID, Un fichier binaire avec Rien
s’applique un SUID défini, est
aux fichiers toujours exécuté avec
binaires le UID de son
propriétaire.

SGID Set Group Quand un utilisateur Quand un utilisateur crée un fichier


ID, peut démarre un fichier dans un répertoire qui a un SGID défini,
s’appliquer exécutable avec un le propriétaire du fichier est le
aux fichiers SGID défini, l’utilisateur propriétaire du compte (c’est normal).
binaires l’exécute en tant que Néanmoins le groupe propriétaire du
membre du groupe répertoire parent est assigné comme
propriétaire du fichier groupe propriétaire au nouveau fichier

Sticky Bit Rien Quand un Sticky Bit est assigné à un


répertoire, les utilisateurs peuvent
supprimer uniquement les fichiers dont
ils sont propriétaires dans ce répertoire.
C’est la négation de l’effet d’avoir des
droits write sur un répertoire, qui
permettent à un utilisateur de
supprimer des fichiers dans un
répertoire dont il est pas le propriétaire.

Vous aimerez peut-être aussi