Vous êtes sur la page 1sur 17

3 - Architecture du système

3.1-Architecture matérielle

Il existe au moins quatre architectures matérielles courantes :


- x86 pour les ordinateurs dont les processeurs sont du type Intel (du 386 au Pentium4)
ou AMD (Athlon, Duron, Sempron) 32 bits. Cette version fonctionne aussi sur les
machines à base de processeurs 64 bits.
- x86_64 pour les ordinateurs dont les processeurs sont du type Intel ( Core2Duo,Dual
Core/Quad Core, Core i3/5/7/9, Xeon) ou AMD (Athlon 64, Sempron 64,
Opteron, Ryzen, EPYC) 64 bits. Cette version ne marche pas sur les processeurs 32 bits.
- POWERPC ou PPC est une famille de processeurs construits par IBM. Cet architecture
est utilisée principalement sur les serveurs (Powers et Blades Servers) et les stations de
travail IBM, les ordinateurs Apple (jusqu'en 2005) , des consoles de jeux (GameCube, Wii,
Xbox 360, PlayStation 3 et Wii U)

3.2 - Architecture logicielle


Un système Linux est constitué, outre du noyau, d'un certain nombre d'autres couches
logicielles, qui s'appuient les unes sur les autres. Ci-dessous une brève présentation de
ces couches :
- Le noyau encore appelé « kernel », se trouve à la base de toutes les autres
couches, puisqu'il gère quasiment tout le matériel (mémoire, disques, systèmes de
fichiers, réseau, clavier, etc.). Mais comme il n'est pas exploitable tel quel (par
exemple, il n'est pas capable d'offrir une interface utilisateur permettant de lui donner
les commandes que l'ordinateur doit exécuter) il faut au moins une interface
utilisateur.
- L’interface utilisateur encore appellée le « shell », il est capable de lire des
commandes saisies au clavier, de les exécuter et d'afficher leurs résultats à l'écran.
En général, les programmes capables de réaliser ces opérations sont appelés des
interpréteurs de commandes. Mais le shell est bien plus que cela, car il peut être
programmé, et il peut gérer les processus (en arrêter un, en lancer un autre, etc.). Il
existe plusieurs shells, mais le plus utilisé sous Linux est le shell bash.
- Des démons (« daemons » en anglais) ou services : ce sont des programmes
s’exécutant en tache de fond. Ils se lancent au démarrage d’un système d’exploitation
et résident en mémoire. Ces programmes ne sont pas lancés explicitement par un
utilisateur, mais par le processus init du système d’exploitation dont il dépend.
De ce fait la plupart des démons sont transparents pour les utilisateurs. Ils sont
dormants (boucles itératives ou fonctionnant par interruptions systèmes) jusqu'à ce
qu’un ou plusieurs événements les activent.
- Les applications qui sont aussi diverses que variées (traitement de texte, tableurs,
logiciels de dessin...). Quelques-unes de ces applications sont simplement des «
front-end » d'applications en ligne de commande, c'est-à-dire des interfaces
graphiques pour des programmes non graphiques. Ce concept permet d'avoir un
composant unique réalisant une action, utilisable en ligne de commande et donc
scriptable, et une ou plusieurs interfaces graphiques pour ce composant.
- Une interface graphique plus conviviale : XWindow. Cette couche logicielle est
constituée de plusieurs composants, dont la base est le serveur X. Le serveur X est
un programme capable de fournir les services graphiques (d'où le nom de serveur)
aux autres applications. Plusieurs implémentations concurrentes existent. L'une
d'elles est particulièrement utilisée sous Linux, puisqu'elle est libre : X.org. À vrai dire,
un serveur X ne fait pas grand chose d'autre que de réaliser des affichages sous les
ordres d'autres programmes.
-Le gestionnaire de fenêtres (Window Manager en anglais) est un de ces
composants. Il se place juste au-dessus du serveur X et prend en charge, comme
son nom l'indique, la gestion des fenêtres des applications graphiques sous X. C'est
le gestionnaire de fenêtres qui prend en charge la gestion des décorations des
fenêtres de premier niveau (c'est-à-dire des fenêtres principales des programmes).
Par exemple, il s'occupe d'afficher les bords, la barre de titre, les boutons de
réduction et de restauration, etc. des fenêtres. C'est également lui qui s'occupe du
positionnement des fenêtres, et qui donc permet à l'utilisateur de déplacer et de
réduire les fenêtres des applications graphiques.
- Des environnements graphiques complets qui en plus de fournir un gestionnaire
de fenêtres, fournissent la plupart des outils classiques que l'on est en droit d'attendre
d'un système graphique moderne. Ils comprennent des éditeurs, des outils de
configuration, des navigateurs Internet, des logiciels multimédia. Ils fournissent
aussi un cadre standard pour les applications graphiques qui savent communiquer
avec eux. Ce cadre permet d'améliorer l'intégration des diverses applications entre
elles, et c'est la raison pour laquelle on appelle souvent ces environnements des
gestionnaires de bureau. KDE et Gnome en sont des exemples.
4 – Arborescence
L'on ne pourra parler d’arborescence sans présenter ce qu'est un système de fichiers
(File System ou FS) puisqu'ils sont intimement liés. un système de fichiers définit
l’organisation des données sur un support de stockage, donc comment sont gérés et
organisés les fichiers par le système d’exploitation. Linux est, comme tout Unix, un
système d’exploitation entièrement orienté fichiers.
Tout (ou presque) est représenté par un fichier, tant les données (fichiers de données de
tout type comme une image ou un programme), que les périphériques (terminaux,
souris, clavier, carte son, etc.) ou encore les moyens de communication (sockets, tubes
nommés, etc.). On peut dire que le système de fichier est le cœur de tout système Unix.
Le système de fichiers de Linux a une structure hiérarchique. La hiérarchisation de la
disposition des données se fait à partir du répertoire racine ( / ). L’arborescence ici est
dite logique parce qu’elle est indépendante de la disposition physique des divers sous-
répertoires.

Figure1 : arborescence du système de fichiers de linux

4.1 Les principaux répertoires et leurs rôles


Le système de fichiers de Linux contient un certain nombre de répertoires et de fichiers
standards, qui ont chacun une fonction bien définie. Cette structure standard permet de
gérer tous les systèmes Linux de manière homogène :
les programmes savent où trouver ce dont ils ont besoin. Ils sont donc portables d'un
système à un autre, et les utilisateurs ne sont pas dépaysés lorsqu'ils changent de
machine.
Le tableau suivant décrit les principaux éléments de l'arborescence du système de
fichiers de Linux :

/ Répertoire racine. Point de départ de toute la hiérarchie du système de


fichiers. Le système de fichiers contenant ce répertoire est monté
automatiquement par le noyau pendant l'amorçage du système. Ce
système de fichiers est appelé système de fichiers racine (« root » en
anglais).
/boot Répertoire contenant le noyau de Linux et ses informations de symboles.
Ce répertoire est parfois le point de montage d'un système de fichiers de
très petite taille, dédié au noyau. Dans ce cas, il est recommandé que le
système de fichiers correspondant soit monté en lecture seule.
Répertoire contenant tous les fichiers spéciaux permettant d'accéder aux
périphériques. Comme on l'a vu, hormis les interfaces réseau, les
périphériques sont généralement accessibles au travers de fichiers
spéciaux. Ces fichiers permettent l'envoi et la réception des données vers
les périphériques associés, et ce de manière uniforme.
/dev Les fichiers spéciaux sont tous placés dans le répertoire /dev.
Généralement, le répertoire /dev est un système de fichiers virtuel (c'est-
à-dire un système de fichiers qui est complètement géré en mémoire par
le noyau), qui est rempli dynamiquement par le système en fonction du
matériel installé. Le répertoire /dev ne contient donc que les fichiers
spéciaux des périphériques pour lesquels le noyau dispose effectivement
d'un pilote de périphérique chargé.
Ce répertoire doit être impérativement placé dans le système de fichiers
racine.
/sbin Répertoire contenant les commandes systèmes nécessaires à l'amorçage
et réservées à l'administrateur. Ce répertoire doit être impérativement
placé dans le système de fichiers racine.
En général, seul l'administrateur utilise ces commandes.
Répertoire contenant les commandes systèmes générales nécessaires à
/bin l'amorçage. Ce répertoire doit être impérativement placé dans le système
de fichiers racine. Tous les utilisateurs peuvent utiliser les commandes de
ce répertoire.
/lib Répertoire contenant les bibliothèques partagées (« DLL » en anglais,
pour « Dynamic Link Library ») utilisées par les commandes du système
des répertoires /bin et /sbin. Ce répertoire doit être impérativement placé
dans le système de fichiers racine.
/etc Répertoire contenant tous les fichiers de configuration du système. Ce
répertoire doit être impérativement placé dans le système de fichiers
racine
Répertoire permettant de stocker des données temporaires. En
/tmp général, /tmp ne contient que des données très éphémères. Il est
préférable d'utiliser le répertoire /var/tmp. En effet, le répertoire /tmp ne
dispose pas nécessairement de beaucoup de place disponible.
/usr Répertoire contenant les fichiers du système partageables en réseau et en
lecture seule.
Répertoire contenant toutes les données variables du système. Ce
/var répertoire contient les données variables qui ne pouvaient pas être
placées dans le répertoire /usr, puisque celui-ci est normalement
accessible en lecture seule.
/var/tmp Répertoire contenant les fichiers temporaires. Il est préférable d'utiliser
ce répertoire plutôt que le répertoire /tmp/.
/Var/log Répertoire contenant les traces de tous les messages système. C'est dans
ce répertoire que l'on peut consulter les messages d'erreurs du système
et des applications.
Répertoire contenant les répertoires personnels des utilisateurs. Il est
fortement recommandé de placer ce répertoire dans un système de
/Home fichiers indépendant de ceux utilisés par le système. Cela permet de faire
des sauvegardes plus facilement, et de faire les mises à jour du système
de manière sûre, sans craindre de perdre les données des utilisateurs
Répertoire personnel de l'administrateur. Il est donc recommandé que le
/root répertoire personnel de l'administrateur soit placé en dehors de /home/
pour éviter qu'un problème sur le système de fichiers des utilisateurs ne
l'empêche de travailler.
Répertoire réservé au montage des systèmes de fichiers sur périphériques
/media amovibles (CD- ROM, disquettes, etc.). Ce répertoire peut contenir
plusieurs sous-répertoires pour chaque périphérique amovible, afin de
permettre d'en monter plusieurs simultanément.
/mnt Répertoire réservé à l'administrateur pour le montage temporaire des
systèmes de fichiers lors de leur maintenance (disques d'installation,
disques durs externes qui ne doivent pas être manipulables par les
utilisateurs, etc.).
/lost+found Répertoire contenant les données récupérées lors de la réparation d'un
système de fichiers endommagé.
/proc Répertoire contenant le pseudo système de fichiers du noyau. Ce pseudo
système de fichiers contient des fichiers permettant d'accéder aux
informations sur le matériel, la configuration du noyau et sur les
processus en cours d'exécution. “Pseudo“ parce que les données qui y
sont, sont gérées de façon dynamique.
4 – Commandes UNIX

4.1- Manipulation de fichiers et répertoires


- Lister des fichiers (ls)
ls permet d’afficher une liste de tous les fichiers du répertoire courant. Si vous souhaitez
aussi afficher les fichiers cachés, utilisez l’option -a. Si vous désirez afficher d’autres
informations, telles que la taille du fichier ou le propriétaire, utilisez l’option -l. Par
défaut, le résultat de ls est trié alphabétiquement.

ls supporte plusieurs paramètres dont voici les plus pertinents

Paramètre Signification
-l Pour chaque fichier ou dossier, fournit des informations détaillées.
-a Les fichiers cachés sont affichés (ils commencent par un point).
-d Sur un répertoire, précise le répertoire lui-même et non son contenu
-F Rajoute un caractère à la fin du nom pour spécifier le type : / pour un
répertoire, * pour un exécutable, @ pour un lien symbolique, etc.
-R Si la commande rencontre des répertoires, elle rentre dans les sous-
répertoires de manière récursive.
-t La sortie est triée par date de modification du plus récent au plus
ancien. Cette date est affichée.
-t L’ordre de sortie est inversé.
-r Affiche l’inode du fichier

- Créer des fichiers vides (touch)


Une commande pratique pour créer des fichiers vides est touch. Utilisée avec
uniquement le nom d’un fichier en argument, elle crée un fichier avec une taille nulle.
# touch fichiertest
# ls -l fichiertest

Si vous relancez la même commande sur un fichier, vous remarquez que la date de
modification a changé. Le manuel de touch vous informera qu’il est ainsi possible de
modifier complètement l’horodatage d’un fichier. Ceci peut être utile pour forcer les
sauvegardes incrémentales sur des fichiers.

- Copier des fichiers (cp)


La commande cp nom1 nom2 copie le fichier nom1 sous le nom nom2.
Syntaxe générale : # cp fic1 [fic2 ... ficn] destination
Dans le premier cas, fic1 est recopié en destination. Si destination existe, il est écrasé
sans avertissement selon le paramètre passé et selon les droits. Dans le second cas, fic1,
fic2 et ainsi de suite sont recopiés dans le répertoire destination. Les chemins peuvent
êtres absolus ou relatifs. La commande peut prendre, entre autres, les options
suivantes :

Paramètre Signification
-i Demande de confirmation de copie pour chaque fichier
-r Récursif : copie un répertoire et tout son contenu
-p Les permissions et les dates sont préservées
-f Forcer la copie

Pour copier plusieurs fichiers, utilisez la commande cp nom1 nom2 ... répertoire_cible.
Les commandes suivantes accèdent au répertoire linux, créent un répertoire bak et y
copient tous les fichiers *.odt.
# cd linux
# mkdir bak
# cp *.odt bak/
Pour copier tout un répertoire, ainsi que son contenu, utilisez cp -r. Dans l’exemple
suivant, cd sans argument permet d’aller dans le répertoire personnel. La deuxième
commande crée une copie complète du répertoire linux sous le nom linux-bak.
# cd
# cp -r linux linux-bak
- Créer des répertoires (mkdir)
La commande mkdir (make directory) permet de créer un ou plusieurs répertoires, ou
une arborescence complète. Par défaut la commande ne crée pas d’arborescence. Si vous
passez comme arguments rep1/rep2 et que rep1 n’existe pas, la commande retourne
une erreur. Dans ce cas, utilisez le paramètre –p.
# mkdir [-p] rep1 [rep2] ... [repn]

- Supprimer des répertoires (rmdir)


La commande rmdir (remove directory) permet de supprimer un ou plusieurs
répertoires. Elle ne peut pas supprimer une arborescence. Si des fichiers sont encore
présents dans le répertoire, la commande retourne une erreur. Le répertoire ne doit
donc contenir ni fichiers ni répertoires et ceci même si les sous-répertoires sont eux-
mêmes vides.
# rmdir rep1 [rep2] ... [repn]
Note : Il n’y a pas de paramètre -r (pour récursif) à la commande rmdir. Pour supprimer
une arborescence vous devrez utiliser la commande rm.

- Déplacer et renommer un fichier (mv)


La commande mv (move) permet de déplacer, de renommer un fichier, ou les deux en
même temps. Elle fonctionne comme la commande cp. Les paramètres -f et -i ont le
même effet.
Avec les trois commandes mv successives suivantes :
• txt1 est renommé en txt1.old
• txt2 est déplacé dans rep1
• txt3 est déplacé dans rep1 et renommé en txt3.old.
# touch txt1 txt2 txt3
# mv txt1 txt1.old
# mv txt2 rep1/txt2
# mv txt3 rep1/txt3.old

Notez l’existence du paramètre -u : si le fichier de destination existe avec une date plus
récente, cela vous évite de l’écraser.
- Supprimer un fichier ou une arborescence (rm)
La commande rm (remove) permet de supprimer un ou plusieurs fichiers, et
éventuellement une arborescence complète, suivant les options. La suppression est
définitive.
Syntaxe générale : # rm [Options] fich1 [fich2 …]
Les options sont classiques mais vu la particularité et la dangerosité de cette commande
il est bon de faire un rappel

Paramètre Signification
-i La commande demandera une confirmation pour chacun des fichiers à
supprimer. Suivant la version d’Unix, le message change et la réponse
aussi : y, Y, O, o, N, n, parfois toutes.
-r Le paramètre suivant attendu est un répertoire. Dans ce cas, la
suppression est récursive : tous les niveaux inférieurs sont supprimés,
les répertoires comme les fichiers.Force la suppression.
-f Force la suppression.

Dans l’ordre, les commandes suivantes suppriment un simple fichier, suppriment un


répertoire, et une arborescence de manière forcée :
# rm fic1
# rm -r rep1
# rm -rf /home/public/depots
Note : L’utilisation combinée des paramètres -r et -f bien que très utile et pratique est
très dangereuse, notamment en tant que root. Aucune confirmation ne vous est
demandée. À moins d’utiliser des outils de récupération de données spécifiques, chers et
peu performants, vos données sont irrémédiablement perdues.
Note : L’utilisation combinée des paramètres -r et -f bien que très utile et pratique est
très dangereuse, notamment en tant que root. Aucune confirmation ne vous est
demandée. À moins d’utiliser des outils de récupération de données spécifiques, chers et
peu performants, vos données sont irrémédiablement perdues.

4.2 - Rechercher un fichier (find, grep, whereis)


- find
find est une commande à la fois extrêmement puissante et complexe pour chercher des
fichiers au sein de l’arborescence du système de fichiers, à l’aide de critères, et donne la
possibilité d’agir sur les résultats retournés.
Syntaxe générale : find chemin critères options
Critères de recherche
a. –name : permet une sélection par noms de fichiers.
b. –type : permet une sélection par type de fichier.
c. –size : permet de préciser la taille des fichiers recherchés
Exemple :
# find /home –type f –name toto*
recherche dans le repertoire /home et dans toute son arborescence, tous les fichiers
ordinaires dont le nom commence par toto.

- grep
La commande grep parcourt un fichier texte à la recherche d’un motif de recherche.
Selon les options, elle affiche les lignes du fichier correspondant ou le nombre de lignes
concernées. Le motif de recherche est une expression rationnelle.
Exemple :
# grep emacs *.txt
cherche la chaîne de caractères "emacs" dans tous les fichiers *.txt du répertoire. Une
liste de toutes les lignes correspondantes (préfixées par le nom du fichier) s’affiche à
l’écran.
grep -v renvoie comme résultat toutes les lignes qui ne contiennent pas le motif de
recherche.
Exemple :
# grep -v ’^#’ configfile | cat -s > nocomments
supprime toutes les lignes qui commencent par le caractère # dans le fichier configfile.
La commande cat supprime toutes les lignes vides et le résultat est enregistré dans le
fichier nocomments.
- whereis
whereis parcourt tous les répertoires usuels pour les fichiers exécutables, les fichiers de
configuration, les pages de manuel et le code source, afin de trouver le nom de fichier
indiqué.
Exemple :
# whereis fstab
fstab : /etc/fstab /etc/fstab.pre-uuid /usr/include/fstab.h /usr/share/
➥man/man5/fstab.5.gz
5 - Utilisateurs et groupes d’utilisateurs
5.1 - Identification et authentification
L’identification, c’est savoir qui est qui, afin de déterminer les droits de la personne
qui se connecte. Un utilisateur est identifié par un login. L’authentification, c’est
apporter la preuve de qui on est, par exemple via un secret partagé entre l’utilisateur
et le système, et connus d’eux seuls. L’utilisateur est authentifié par un mot de passe.
5.2 Les utilisateurs
Un utilisateur est l’association d’un nom de connexion, le login, à un UID (User ID) et
au moins un GID (Group ID). Les UID et les GID sont en principe uniques.
L’UID identifie l’utilisateur (ou le compte applicatif) tout au long de sa connexion. Il est
utilisé pour le contrôle de ses droits et de ceux des processus qu’il a lancé. Ce sont
les UID et GID qui sont stockés au sein de la table des inodes, dans la table des
processus, etc. et non les logins.
L’utilisateur dispose des attributs de base suivants :
• un nom de connexion appelé le login
• un mot de passe
• un UID
• un GID correspondant à son groupe principal
• un descriptif
• un répertoire de connexion
• une commande de connexion
Les UID d’une valeur inférieure à 100 sont en principe associés à des comptes
spéciaux avec des droits étendus. Ainsi l’UID de root, l’administrateur, est 0. Selon
les distributions, à partir de 100, 500 ou 1000, et ce jusqu’à environ 60000, ce sont
les UID des utilisateurs sans pouvoirs particuliers.
5.3 - Les groupes
Chaque utilisateur fait partie d’au moins un groupe. Un groupe regroupe des
utilisateurs. Comme pour les logins, le GID du groupe accompagne toujours
l’utilisateur pour le contrôle de ses droits. Un utilisateur peut faire partie de plusieurs
groupes, auquel cas il faut distinguer son groupe primaire des groupes secondaires.
Les groupes ont aussi des numéros. Il existe des groupes spécifiques pour la gestion
de certaines propriétés du système et notamment l’accès à certains périphériques.
Le groupe primaire est celui qui est toujours appliqué à la création d’un fichier. Si
l’utilisateur toto a pour groupe primaire « users », alors les fichiers créés par toto
auront comme groupe d’appartenance « users ».
Un utilisateur dispose de tous les droits associés à ses groupes secondaires. Si carl
a comme groupe secondaire adm et qu’un fichier dispose des droits d’écriture pour
ce groupe, alors toto aura le droit de modifier son contenu.
La commande id permet de connaître les informations essentielles sur un utilisateur:
uid, gid, groupes secondaires.
Le fichier « comptes » sur la capture ci-dessous est créé par carl. Son propriétaire est carl
et son groupe est le groupe principal de toto : toto.

5.4 - Les fichiers de configuration


- /etc/passwd
Le fichier /etc/passwd contient la liste des utilisateurs du système local. Il est lisible par
tout le monde. Les informations qu’il contient sont publiques et utiles tant pour le
système que pour les utilisateurs. Chaque ligne représente un utilisateur et est
composée de sept champs.
Login :password : UID : GID : comment : homedir : shell

Login : le login ou nom d’utilisateur.


password : Si un x est présent, le mot de passe est placé dans /etc/shadow. Si
c’est un point d’exclamation le compte est verrouillé.
UID : le User ID.
GID : le GID, c’est-à-dire le groupe principal.
comment : un commentaire ou descriptif. C’est un champ d’information.
homedir : le répertoire de travail, personnel, de l’utilisateur. C’est le répertoire dans
lequel il arrive lorsqu’il se connecte.
shell : le shell par défaut de l’utilisateur. Mais ce peut être toute autre commande, y
compris une commande interdisant la connexion.
- /etc/shadow
Le fichier /etc/shadow accompagne le fichier /etc/passwd. C’est là qu’est stocké, entre
autres, le mot de passe crypté des utilisateurs. Pour être plus précis il contient toutes les
informations sur le mot de passe et sa validité dans le temps. Chaque ligne est
composée de 9 champs séparés par des “:“ :

bean:$2a$10$AjADxPEfE5iUJcltzYA4wOZO.f2UZ0qP/8EnOFY.P.m10HifS7J8i:13
913:0:99999:7:::
• bean : le login.
• $2a$10$AjADxPEfE5iUJcltzYA4wOZO.f2UZ0qP/8EnOFY.P.m10HifS7J8i :
le mot de passe crypté
•13913 : nombre de jours depuis le 1er janvier 1970 ou la date du dernier
changement de mot de passe ;
•0 : nombre de jours avant lesquels le mot de passe ne peut pas être changé (0 : il
peut être changé n’importe quand).
•99999 : nombre de jours après lesquels le mot de passe doit être changé.
•7 : nombre de jours avant l’expiration du mot de passe durant lesquels l’utilisateur
doit être prévenu.
•nombre de jours après l’expiration du mot de passe après lesquels le compte est
désactivé.
•nombre de jours depuis le 1er janvier 1970 à partir du moment où le compte a été
désactivé.
•réservé.

/etc/group
Le fichier /etc/group contient la définition des groupes d’utilisateurs et pour chacun la
liste des utilisateurs dont il est le groupe secondaire. Chaque ligne est composée de
quatre champs :
Group : password:GID:user1,user2,...
Group : le nom du groupe.
password : le mot de passe associé.
GID : le Group ID.
user1,user2,... : la liste des utilisateurs appartenant à ce groupe.
6 Les droits d’accès
6.1 Droits des utilisateurs
Le rôle d’un système d’exploitation est aussi d’assurer la sécurité et l’accès aux données,
ce qui est possible grâce au mécanisme des droits. Chaque fichier ou répertoire se voit
attribuer des droits qui lui sont propres, des autorisations d’accès individuelles. Lors d’un
accès le système vérifie si celui-ci est permis.
À sa création par l’administrateur, un utilisateur se voit affecter un UID (User
Identification) unique. Les utilisateurs sont définis dans le fichier /etc/passwd. De même
chaque utilisateur est rattaché à un groupe au moins (groupe principal), chaque groupe
possédant un identifiant unique, le GID (Group Identification). Les groupes sont définis
dans /etc/group. La commande id permet d’obtenir ces informations. En interne, le
système travaille uniquement avec les UID et GID, et pas avec les noms eux-mêmes.
À chaque fichier (inode) sont associés un UID et un GID définissant son propriétaire et
son groupe d’appartenance.
Vous affectez des droits pour le propriétaire (owner), pour le groupe d’appartenance
(group) et pour le reste du monde (other).
On distingue trois cas de figure :
•UID de l’utilisateur identique à l’UID défini pour le fichier. Cet utilisateur est
propriétaire du fichier.
•Les UID sont différents : le système vérifie si le GID de l’utilisateur est identique au
GID du fichier. Si oui l’utilisateur appartient au groupe associé au fichier.
•Dans les autres cas (aucune correspondance) : il s’agit du reste du monde (others),
ni le propriétaire, ni un membre du groupe.
Modification des droits
Lors de sa création, un fichier ou un répertoire dispose de droits par défaut. Utilisez la
commande chmod (change mode) pour modifier les droits sur un fichier ou un
répertoire. Il existe deux méthodes pour modifier ces droits : par la forme symbolique et
par la base 8.
Seul le propriétaire d’un fichier peut en modifier les droits (plus l’administrateur
système).
L’option -R change les droits de manière récursive.
- Par symboles
# chmod modifications Fic1 [Fic2...]
S’il faut modifier les droits de l’utilisateur, utilisez le caractère u, pour les droits du
groupe le caractère g, pour le reste du monde le caractère o et pour tous, le caractère a.
Pour ajouter des droits, on utilise le caractère +, pour en retirer le caractère -, et pour ne
pas tenir compte des paramètres précédents le caractère =.
Enfin, le droit d’accès par lui-même : r, w ou x. Vous pouvez séparer les modifications par
des virgules et cumuler plusieurs droits dans une même commande.
# ls -l
total 3
-rw-r--r-- 1 carl users 0 mar 21 22:03 fic1
-rw-r--r-- 1 carl users 0 mar 21 22:03 fic2
-rw-r--r-- 1 carl users 0 mar 21 22:03 fic3
# chmod g+w fic1
# ls -l fic1
-rw-rw-r-- 1 carl users 0 mar 21 22:03 fic1
# chmod u=rwx,g=x,o=rw fic2
# ls -l fic2
-rwx--xrw- 1 carl users 0 mar 21 22:03 fic2
# chmod o-r fic3
# ls -l fic3
-rw-r 1 carl users 0 mar 21 22:03 fic3

Par base 8
La syntaxe est identique à celle des symboles. À chaque droit correspond une valeur
octale :
• Le r vaut 4.
• Le w vaut 2.
• Le x vaut 1.
# chmod 755 fic1
# chmod 644 fic2
# ls -l fic1 fic2
-rwxr-xr-x 1 seb users 0 mar 21 22:03 fic1
-rw-r--r-- 1 seb users 0 mar 21 22:03 fic2
6.2 - Masque des droits
- Restreindre des droits automatiquement
Lors de la création d’un fichier ou d’un répertoire, des droits leur sont automatiquement
assignés. Généralement, c’est rw-r--r-- (644) pour un fichier et rwxr-xr-x (755) pour un
répertoire. Ces valeurs sont contrôlées par un masque, lui-même modifiable par la
commande umask. La commande umask prend comme paramètre une valeur octale dont
chaque droit individuel sera supprimé des droits d’accès maximum du fichier ou du
répertoire.
Par défaut, tous les fichiers sont créés avec les droits 666 (rw-rw-rw-).
Par défaut tous les répertoires sont créés avec les droits 777 (rwxrwxrwx) .
Puis le masque est appliqué.
Le masque est le même pour l’ensemble des fichiers.
Un masque ne modifie pas les droits des fichiers existants, mais seulement ceux des
nouveaux fichiers.
Le masque par défaut est 022, soit ----w--w-. Pour obtenir cette valeur, tapez umask sans
paramètre.
- Calcul de masque
Pour un fichier
Défaut
rw-rw-rw- (666)
Retirer
----w--w- (022)
Reste
rw-r--r-- (644)
Pour un répertoire
Défaut
rwxrwxrwx (777)
Retirer
----w--w- (022)
Reste
rwxr-xr-x (755)
Note : appliquer un masque n’est pas soustraire, mais supprimer des droits de ceux par
défaut, droit par droit.
Par exemple :
Défaut
Retirer
Reste
rw-rw-rw- (666)
----wxrwx (037)
rw-r----- (640)
Et non 629, ce qui est impossible en octal.

Changer de propriétaire et de groupe


Il est possible de changer le propriétaire et le groupe d’un fichier à l’aide des
commandes
chown (change owner) et chgrp (change group). Le paramètre -R change la propriété de
manière récursive.
# chown utilisateur fic1 [Fic2...]
# chgrp groupe fic1 [Fic2...]
Seul root a le droit de changer le propriétaire d’un fichier. Mais un utilisateur peut
changer le groupe d’un fichier s’il fait partie du nouveau groupe.
# chgrp video fic1
# ls -l fic1
-rwxr-xr-x 1 carl video 0 mar 21 22:03 fic1

Vous aimerez peut-être aussi