Les
bases d'UNIX et de Linux 1
L’origine
d'UNIX. 3
Les
avantages d’Unix. 3
Introduction
au système de fichiers UNIX. 5
Les
droits d'accès sur UNIX. 9
Les
utilisateurs. 9
Les
groupes. 10
Droits
sur les fichiers et dossiers. 11
Les
droits étendus. 17
Le
droit SGID.. 17
Les
principales commandes UNIX. 19
L’éditeur
VI 36
Supervision
du système. 37
Le
répertoire /proc. 42
En 1965, deux enterprises, Bell Labs, General Electric, et
le MIT (Massachussets Institute of Technology) débutent la conception d’un
système d'exploitation ambitieux, Multics
Ce projet échoue et cinq ans après cet abandon, deux
employés de Bell Labs, Dennis Ritchie et Ken Thompson, conçoivent un système
d'exploitation capable de répondre aux besoins de leur entreprise. Ce système
d'exploitation sera baptisé UNIX
En 1985 au Pays-Bas, un professeur, Adrew Tannenbaum,
conçoit Minix durant ses heures de loisirs, basé sur l’architecture UNIX. Ce
système d'exploitation à comme but de faire découvrir la programmation des
systèmes d’exploitation aux étudiants Hollandais
Cinq ans plus tard, en Finlande, un étudiant en
informatique, Linus Torvalds, découvre Minix, et décide de concevoir son propre
système d'exploitation capable de fonctionner sur son 386. Linus envoie un
message sur Internet invitant toute personne à récupérer son projet avec ses
codes source et un compilateur, afin de le modifier et lui apporter des
améliorations, avant de le redistribuer. Ce système est baptisé Linux
Bien que non certifié UNIX par l’Open Group, le noyau de Linux
est bien un clone d’UNIX dont les sources sont libres; plus de 300
distributions s'appuyent aujourd'hui sur ce système, dont parmis les plus
connues Red Hat, Mandriva, Ubuntu, Suse ou Turbo Linux en Asie . Ce nombre
laisse évidemment songeur, et pour de nombreuse personnes, cette richesse est
aussi un des talons d'Achille à l'adoption de ce système
A la différence de Linux, MAC OS X Léopard, est
partiellement propriétaire, qui vient d’être certifié par l’Open Group comme un
véritable UNIX
Aujourd’hui, Linux continue d’évoluer, financé par de
grandes sociétés, comme IBM, Google, Red Hat ou Novell. Linux Torvald participe
encore à certaines décisions importantes, comme les dates de publication de
nouvelles versions de noyau
Très modulaire et facilement portable, il peut être installé
sur de nombreuses architectures, allant du téléphone portable aux super
ordinateurs. La plupart des super ordinateurs fonctionnent avec Linux
(top500.org) sur des machines à plusieurs milliers de processeurs

Plus stable, il demande moins de redémarrage, donc moins
d’administration et de maintenance
Le modèle de sécurité par défaut est très sûr, l’utilisateur
ne peut mettre en péril le système ni y accéder de manière dérobée
La scalabilité et les performances sont importantes,
assurant un rendement optimum de la plateforme matériel utilisée
La plupart des serveurs Internet fonctionnent sous Linux /
Apache, ce qui challenge le système tant du point de vue de la charge que de la
sécurité
L’installation de nouvelles versions demande rarement des
mises à jours matériel
Peu de virus ou de spywares existent sur cette plateforme
aujourd'hui
L’interface est standardisée depuis de nombreuses années, et
se retrouve sur une grande variété de systèmes UNIX
UNIX, ou Linux, sont des environnement très utilisés dans
le monde académique, mais aussi dans le monde industriel
UNIX est le second système le plus utilisé au monde derrière
Windows, puisqu'on trouve plus de 30 millions d'utilisateurs de MAC OS X, qui
est un UNIX
On m’a parlé du coût d’acquisition… Ce n’est pas un critère,
car le TCO devrait aussi être comparé, de même que le support, ce qui difficile
à réaliser de manière objective tant les intérêts sont concurrents
Inévitablement, on arrive à l’Open Source et la GPL…Il
s’agit d’un modèle particulier présentant des avantages et des inconvénients,
répondant de manières diverses aux différentes interrogations
Sur les systèmes UNIX tout élément est représenté sous forme
de fichier. L'ensemble des fichiers est architecturé autour d'une unique
arborescence dont la base, appelée racine, est notée /
La hiérarchie des fichiers sous Unix
L'arborescence du système est complexe, mais relativement
bien ordonnée. Elle respecte généralement les règles ci-dessous
|
/
|
Répertoire à partir duquel tous les répertoires sont repérés, qu'ils
soient distants, locaux ou situés sur une autre partition
|
|
/bin
|
Binaires de base du système d’exploitation. Contient aussi les
commandes de bases utilisables à partir du shell (grep, mount, cp, etc.)
|
|
/boot
|
Contient les informations nécessaires au démarrage de la machine
ainsi que le kernel à charger
|
|
/dev
|
Device files. Fichiers faisant le lien entre le système et les
périphériques. Un fichier correspond à chaque périphérique
|
|
/etc
|
La plupart des fichiers de configuration et d’initialisation
|
|
/home
|
Contient les répertoires personnels des utilisateurs, par exemple
/home/olivier est le répertoire personnel et privé de l'utilisateur olivier.
C'est le seul endroit qui lui appartienne. Il est l’équivalent du
C:\Documents and settings\ de windows XP. En général, on configure /home sur
une autre partition à part ou sur un autre disque dur que le système pour
récupérer plus facilement les données
|
|
/lib
|
Libraries. Contient les principales bibliothèques partagées
(équivalent aux DLL de Windows)
|
|
/lost+found
|
Contient les fichiers perdus. C'est là que sont entreposés les
résultats des scandisk quand ils ont lieux
|
|
/mnt
|
les répertoires utilisés pour monter temporairement un système de
fichiers. /mnt/floppy pour la disquette, /mnt/cdrom pour le cdrom ou
/mnt/windows_c pour la partition C: de windows
|
|
/opt
|
Optional. Composants optionnels du système, comme KDE ou Gnome, ou
encore Lotus, etc
|
|
/proc
|
répertoire virtuel dont les fichiers contiennent des infos sur l'état
du système et des processus en cours d'exécution. Contrairement aux autres
répertoires, /proc est sauvegardé en mémoire et non sur votre disque dur
|
|
/root
|
répertoire personnel et privé de l'administrateur système root
|
|
/sbin
|
system binaries. Contient les commandes de base nécessaires a
l'administration système (fsck, mke2fs ...)
|
|
/tmp
|
Dossier temporaire. C'est l'équivalent du C:\windows\Temp\
|
|
/usr
|
Dossier d’installation des programmes. C'est l'équivalent de
C:\Programme Files\ Mais en plus ordonné. Veillez à allouer un espace
important à cette partition
|
|
/usr/X11R6
|
Tout ce qui concerne X-Window. Organisation similaire à /usr
|
|
/usr/bin
|
les exécutables
|
|
/usr/doc
|
la documentation sur les applications installées
|
|
/usr/etc
|
des fichiers de configuration, qui ne sont pas dans /etc/
|
|
/usr/games
|
Le répertoire d'installation de jeux
|
|
/usr/include
|
les fichiers d'en-tête pour la programmation
|
|
/usr/info
|
la doc au format GNU info
|
|
/usr/lib
|
les bibliothèques partagées (DLL) non vitales
|
|
/usr/local
|
une sous-hiérarchie qui contient des logiciels compilés sur place à
partir des sources. Organisation similaire à /usr
|
|
/usr/man
|
le manuel en ligne. Les fichiers sont compressés
|
|
/usr/sbin
|
Des exécutables pour l'administration réseau et système
|
|
/usr/share
|
Des fichiers de données système, comme des sons, des papiers peints,
des icônes, etc.
|
|
/usr/spool
|
Un lien symbolique vers /var/spool
|
|
/usr/src
|
les sources de certains logiciels, principalement le noyau de Linux
(/usr/src/linux)
|
|
/var
|
Contient des données fréquemment réécrites, comme les logs
|
|
/var/catman
|
les pages du manuel décompressées (cela se fait à la demande)
|
|
/var/lib
|
Des bases de données, des fichiers de configuration...
|
|
/var/local
|
complète /usr/local de la même façon que /var complète /usr
|
|
/var/lock
|
Des fichiers qui servent à marquer l'utilisation de certaines
ressources. Par exemple, quand un logiciel se sert du modem, il crée un
fichier ici pour le signaler.
|
|
/var/log
|
le journal (log) du système. Notamment /var/log/messages par lequel
le noyau vous tient son monologue
|
|
/var/run
|
principalement des infos sur les serveurs en fonctionnement
|
|
/var/spool
|
les spools: tout ce qui est "de passage" en attendant
d'être utilisé par un logiciel. Ca inclut entre autres le mail, les news, les
files d'attente des imprimantes...
|
|
/var/tmp
|
La corbeille de /var
|
Types de fichiers
Les systèmes UNIX définissent différents types de
fichiers :
·
Les fichiers physiques, enregistrés sur le disque dur. Il
s'agit du fichier au sens où on l'entend généralement
·
Les répertoires sont des fichiers (noeuds) de
l'arborescence pouvant contenir des fichiers ou d'autres répertoires. Un
répertoire contient au moins un répertoire parent (noté ..),
correspondant au répertoire de plus haut niveau, et un répertoire courant (noté
.), c'est-à-dire lui-même
·
Les liens sont des fichiers spéciaux permettant d'associer
plusieurs noms (liens) à un seul et même fichier. Ce dispositif permet
d'avoir plusieurs instances d'un même fichier en plusieurs endroits de
l'arborescence sans nécessiter de copie, ce qui permet notamment d'assurer un
maximum de cohérence et d'économiser de l'espace disque. On distingue deux
types de liens :
o Les liens
symboliques représentant des pointeurs virtuels (raccourcis) vers des
fichiers réels. En cas de suppression du lien symbolique le fichier pointé
n'est pas supprimé. Les liens symboliques sont créées à l'aide de la commande ln
-s selon la syntaxe suivante :
ln -s
nom_fichier_réel nom_lien_symbolique
o Les liens
physiques (aussi appelées liens durs ou en anglais hardlinks)
représentent un nom alternatif pour un fichier. Ainsi, lorsqu'un fichier
possède deux liens physiques, la suppression de l'un ou l'autre de ces liens
n'entraine pas la suppression du fichier. Plus exactement, tant qu'il subsiste
au minimum un lien physique, le fichier n'est pas effacé. En contrepartie
lorsque l'ensemble des liens physiques d'un même fichier est supprimé le
fichier l'est aussi. Il faut noter toutefois qu'il n'est possible de créer des
liens physiques qu'au sein d'un seul et même système de fichiers. Les liens
physiques sont créées à l'aide de la commande ln (sans l'option -n)
selon la syntaxe suivante :
ln
nom_fichier_réel nom_lien_physique
·
Les fichiers virtuels n'ayant pas de réelle existence
physique car ils n'existent qu'en mémoire. Ces fichiers, situés notamment dans
le répertoire /proc contiennent des informations sur le système (processeur,
mémoire, disques durs, processus, etc.)
·
Les fichiers de périphériques, situés dans le répertoire
/dev/, correspondent aux périphériques du système. Cette notion peut être
déroutant pour un nouvel utilisateur dans un premier temps
Notion de point de montage
Contrairement à Windows qui organise les disques ou les
périphériques dans des lecteurs indépendants dans l'Explorer, les fichiers d'un
système UNIX sont organisés dans une arborescence unique
Il est toutefois possible d'avoir plusieurs partitions
grâce à un mécanisme appelé montage, permettant de raccorder une
partition à un répertoire de l'arborescence principale. Ainsi le fait de monter
une partition dans le répertoire /mnt/partition rendra l'ensemble des fichiers
de la partition accessible à partir de ce répertoire, appelé point de
montage
Lorsque les données sont accessibles à partir d'un point de
montage, on dit que la partition ou le périphérique sont montés
Dans les systèmes Unix, le point de montage par défaut est
/mnt ou plus rarement /media
Par exemple, une disquette sera généralement montée en
/mnt/fd0 et un cdrom en /mnt/cdrom ou /media/cdrom. Le point de montage par
défaut des périphériques est spécifié dans un fichier de configuration
système : /etc/fstab
La commande Unix permettant de monter des répertoires est mount.
La commande inverse, qui démonte, est umount
Montage et démontage sous Unix
La commande mount permet de relier une partition ou
un périphérique à un répertoire, répertoire par lequel les données présentes sur
la partition ou le périphérique sont accessibles
Pour monter un périphérique ou une partition avec la
commande mount, il faut indiquer :
·
le type du système de fichiers par l'option -t
·
le fichier spécial représentant le périphérique ou la partition (généralement
/dev/*)
·
le répertoire de montage
Par exemple, la commande mount -t iso9660 /dev/cdrom
/media/cdrom monte le périphérique /dev/cdrom sur /mnt/cdrom en indiquant
que le système de fichier est ISO 9660
La commande mount -t vfat /dev/sda /mnt/cle monte la
clé USB avec son système de fichier VFAT dans le dossier /mnt/cle
Certaines indications peuvent être omises lorsqu'elles sont
spécifiées dans le fichier de configuration listant les points de montage par
défaut (/etc/fstab sous Linux). On peut omettre le type de système de fichiers
si la version de mount utilisée est assez « intelligente »
Lorsque le montage a réussi, une mise à jour est effectuée
dans un fichier système recensant les montages en cours (/etc/mtab)
Démontage
Pour démonter une partition ou un périphérique, il faut
utiliser la commande umount. Par exemple : umount /media/cdrom
Le démontage ne marche que si la partition n'est pas
utilisée, à savoir :
·
aucun fichier n'est en train d'être lu ou écrit sur la partition
·
aucun processus n'a son répertoire de travail sur la partition
Toute
entité (personne physique ou programme particulier) devant interagir avec un
système UNIX est authentifiée sur cette machine par un utilisateur. Ceci permet
d'identifier un acteur sur un système UNIX. Un utilisateur est reconnu par un
nom unique et un numéro unique. La correspondance nom / numéro est stockée dans
le fichier /etc/passwd

Tous
les utilisateurs UNIX n'ont pas les mêmes droits sur la machine (ils ne peuvent
pas tous faire la même chose), et ceci simplement pour des raisons de sécurité
et d'administration. Par exemple, pour éviter tout problème sur Internet,
l'utilisateur qui gère le serveur HTTP ne peut pas exécuter des commandes localement
Certains utilisateurs ne peuvent en effet pas s'authentifier
sur la machine et accéder à un interpréteur de commandes. Cela ne veut
toutefois pas dire qu'ils ne peuvent rien faire sur la machine : il leur
est possible de lire ou écrire des fichiers mais cela nécessite que le
super-utilisateur démarre un programme pour cet utilisateur. Ce mécanisme est
généralement utilisé pour les démons : le super utilisateur démarre le
démon et pour éviter que ce dernier puisse faire tout et n'importe quoi sur la
machine, il est par exemple attribué à l'utilisateur bin
Sur tout système UNIX, il y a un super-utilisateur,
généralement appelé root, qui a tous les pouvoirs. Il peut accéder
librement à toutes les ressources de la machine, y compris à la place d'un
autre utilisateur, c'est-à-dire sous son identité. En général, du moins sur les
systèmes de production, seul l'administrateur système possède le mot de passe
root. L'utilisateur root porte le numéro 0
Les autres utilisateurs (other)
Ici on parle d’utilisateurs non déclaré sur la machine, donc
ne faisant pas partie du système. Les autres utilisateurs ne doivent pas avoir
de droits criques sur le système, ni accéder à des informations sensibles
Créer un compte pour un nouvel utilisateur
useradd nom_utilisateur crée l'utilisateur le répertoire
personnel /home/nom_utilisateur, portant par défaut le nom du compte et crée
une nouvelle entrée dans les 2 fichiers fondamentaux /etc/passwd et
/etc/group. Lors de la création d’un utilisateur, un groupe par défaut est créé
qui porte le même nom que l’utilisateur, son groupe primaire
Pour attribuer un mot de passe
passwd nom_utilisateur assigne un mot de passe. Il
faudra le saisir et le confirmer. Si l’on tape passwd sans plus d’indications,
cela nous permettra de changer notre propre mot de passe
Pour
supprimer un utilisateur
userdel [-r] nom_utilisateur permet de supprimer un
utilisateur. L'option -r supprime aussi le répertoire personnel et
les fichiers de l'utilisateur. La commande supprime toute trace de
l'utilisateur dans le fichier de configuration : /etc/passwd y compris dans les
groupes d'utilisateurs auquel il aurait fait partie
Un utilisateur UNIX appartient à un ou plusieurs groupes.
Les groupes servent à rassembler des utilisateurs afin de leur attribuer des
droits communs sur des mêmes fichiers et dossiers. Par exemple, sur un système
doté d'une carte son, il y a souvent un groupe audio qui regroupe les
utilisateurs autorisés à en faire usage. Les groupes sont définis dans le
fichier /etc/group
Chaque utilisateur doit faire partie au moins d'un groupe,
son groupe primaire. Celui-ci est défini au moment de la création du compte, et
par défaut, l'utilisateur appartient à un nouveau groupe créé, portant
son nom
Dans /etc/passwd chaque utilisateur possède un groupe par
défaut, précisé par son identifiant gid dans ce fichier
L'appartenance au groupe primaire n'étant pas exclusive, tout
utilisateur peut faire partie de plusieurs autres groupes, appelés ses
groupes secondaires. Le rôle joué par le groupe primaire demeure prépondérant,
comme nous le verrons dans le système des permissions des fichiers
Pour lister tous les groupes (primaire
et secondaires) d'un utilisateur
groups nom_utilisateur
Pour créer un nouveau groupe
groupadd nom_groupe
Supprimer un groupe
groupdel nom_groupe le groupe est supprimé du fichier /etc/group
Pour ajouter un utilisateur à un
groupe
Il y'a plusieurs possibilités pour effectuer cette manipulation
On peut éditer le fichier /etc/group et d'ajouter une liste
d'utilisateurs (séparés par des virgules) sur la ligne du groupe
Plusieurs commandes font aussi l'affaire
- adduser
- utilisateur nom_group
- gpasswd
-a utilisateur nom_groupe
Pour supprimer un utilisateur d'un
groupe
gpasswd -d utilisateur nom_groupe, ou toujours
l'édition de notre fichier /etc/group
Tout fichier UNIX possède un propriétaire et des droits
donnés pour lui, pour son groupe et les autres utilisateurs
Au départ, c'est l'utilisateur qui a créé le fichier qui en
est propriétaire, mais il possible de transférer cette appartenance à un autre
utilisateur
Seul le propriétaire du fichier et le super utilisateur (root)
peuvent changer l'appartenance de ce fichier et ses droits
Seul root peut prendre l’appartenance d’un fichier, mais
un utilisateur ordinaire peut donner l’appartenance d’un de ses fichiers à un
autre utilisateur
Un fichier UNIX appartient aussi à un groupe. Ceci
donne pleinement son sens à la notion de groupe. On définit ainsi les
actions du groupe sur ce fichier
Ce groupe est souvent le groupe d'appartenance du
propriétaire, mais ce n'est pas obligatoire. Tout dépend en fait de ce
qu'on veut faire
On peut imaginer un scénario de délégation
d'administration : le super utilisateur (root) est propriétaire d'un
fichier de configuration, mais autorise tous les utilisateurs du groupe admin
(les administrateurs) à modifier ce fichier. Le fichier en question aura donc
root comme propriétaire et appartiendra au groupe admin
Rappelons que les répertoires sous UNIX sont aussi des fichiers.
Les droits sur les répertoires (mais aussi les périphériques, etc.)
fonctionnent exactement de la même façon que sur des fichiers ordinaires
Droits d'accès à un fichier
À chaque fichier est associée une liste de permissions, qui
déterminent ce que chaque utilisateur a le droit de faire du fichier
Les différents droits
Les droits sur un fichier s'attribuent sur trois
« actions » différentes possibles : la lecture (r), l'écriture
(w) et l'exécution (x). Pour les répertoires, x correspond à l'accès
au répertoire
Sur un fichier donné, ces 3 flags doivent être définis pour
son propriétaire, son groupe, mais aussi les autres utilisateurs (différents du
propriétaire et n'appartenant pas au groupe)
Seuls root et le propriétaire d'un fichier peuvent
changer ses permissions d'accès sans restriction particulière
Représentation des droits
Cet ensemble de 3 droits sur 3 entités se représente
généralement de la façon suivante : on écrit côte à côte les droits r, w
puis x respectivement pour le propriétaire (u), le groupe (g) et
les autres utilisateurs (o). Les codes u, g et o sont utilisés par les
commandes UNIX qui permettent d'attribuer les droits et l'appartenance des
fichiers
L'affichage des droits est représenté par une chaîne de 9
caractères, précédée d'un caractère, représentant le type de fichier
Lorsqu'un flag est attribué à une entité, on écrit ce flag
(r, w ou x), et lorsqu'il n'est pas attribué, on écrit un '-'
Exemple : rxwr-xr-- signifie que le propriétaire peut
lire, écrire et exécuter le fichier, mais que les utilisateurs du groupe
attribué au fichier ne peuvent que le lire et l'exécuter, et enfin que les
autres utilisateurs ne peuvent que lire le fichier
Une autre manière de représenter ces droits est sous forme
binaire grâce à une clef numérique fondée sur la correspondance entre un nombre
décimal et son expression binaire. On l’appelle aussi notation octale :
|
Binaire
|
Droit
|
Octal
|
|
000
|
---
|
0
|
|
001
|
--x
|
1
|
|
010
|
-w-
|
2
|
|
011
|
-wx
|
3
|
|
100
|
r--
|
4
|
|
101
|
r-x
|
5
|
|
110
|
rw-
|
6
|
|
111
|
Rwx
|
7
|
A l'expression binaire en trois caractères sont associés les
3 types de droits (r w x) ; il suffit donc de déclarer pour chacune des
catégories d'utilisateur (user, group, others) un chiffre entre 0 et 7 auquel
correspond une séquence de droits d'accès. Par exemple :
|
Octal
|
droit u
|
droit g
|
droit o
|
|
777
|
r w x
|
r w x
|
r w x
|
|
605
|
r w -
|
- - -
|
r - x
|
|
644
|
r w -
|
r - -
|
r - -
|
|
666
|
r w -
|
r w -
|
r w -
|
Une astuce permet d'associer rapidement une valeur décimale
à la séquence de droits souhaitée. Il suffit d'attribuer les valeurs suivantes
pour chaque type de droit :
lecture (r) >> 400
écriture (w) >> 200
exécution (x) >> 100
et d'additionner ces valeurs selon qu'on veuille ou non
attribuer le droit en correspondant.
|
propriétaire
|
groupe
|
autre
|
|
lecture
|
écriture
|
exécution
|
lecture
|
écriture
|
exécution
|
lecture
|
écriture
|
exécution
|
|
400
|
200
|
100
|
40
|
20
|
10
|
4
|
2
|
1
|
Ainsi, rwx « vaut » 7 (4+2+1), r-x « vaut » 5 (4+1) et r-- «
vaut » 4. Les droits de rwxr-xr-- sont donc équivalent à 754
Une manière directe d'attribuer les droits est de les écrire
sous cette forme et d'utiliser le code à 3 chiffres résultant avec chmod (voir
ci-après)
Utilisation
Pour voir quels droits sont attribués à un fichier, il
suffit de taper ls -l nom_du_fichier (ou ll qui est un raccourci fonctionnant
sous certaines versions de Linux)
Ex. # ls -l publipostage.doc
-rwxr-xr-- jean compta 12345 Nov 15 09:19 publipostage.doc
La sortie signifie que le fichier publipostage.doc (de
taille 12345) appartient à un utilisateur nommé jean, qu'on lui a
attribué le groupe compta, et que les droits sont rwxr-xr--- soit
autrement dit 784
On remarque qu'il y a en fait 10 caractères sur la zone de
droits
Le premier - n'est pas un droit, c'est un caractère réservé
pour indiquer le type de fichier (on aura par exemple un d à la place pour
indiquer un répertoire) selon le tableau ci-dessous
Types de fichier
Le premier caractère que l’on rencontre lorsqu’on affiche un
fichier indique s’il s’agit d’un fichier, d’un dossier ou autre, comme indiqué
dans ce tableau dans la colonne symbole. Les autres colonnes indiquent
simplement les valeurs possibles pour les droits comme expliqués jusqu’ici
|
Signification
|
Symbole
|
Propriétaire
(u)
|
Groupe (g)
|
Autres (o)
|
|
fichier régulier
|
-
|
rwx
|
rwx
|
rwx
|
|
répertoire
|
d
|
rwx
|
rwx
|
rwx
|
|
périphérique caractère
|
c
|
rwx
|
rwx
|
rwx
|
|
périphérique bloc
|
b
|
rwx
|
rwx
|
rwx
|
|
lien symbolique
|
l
|
rwx
|
rwx
|
rwx
|
|
tube nommé
|
p
|
rwx
|
rwx
|
rwx
|
|
socket locale
|
s
|
rwx
|
rwx
|
rwx
|
Changements des droits et de propriétaire
De manière générale
·
l'utilisateur qui crée un fichier en devient le propriétaire
·
le groupe primaire auquel l'utilisateur appartient au moment de
la création devient le groupe du fichier
·
Le changement de droits s'effectue avec la commande chmod
·
Le changement de propriétaire à l'aide de la commande chown
·
Le changement de groupe, à l'aide de la commande chgrp
Note : On peut changer en une fois le propriétaire et
le groupe avec chown et une syntaxe particulière
Remarques préalables
- Les droits accordés au propriétaire, au groupe et aux
autres dépendent du processus qui a créé le fichier et du masque des
droits
- D'autre part l'administrateur peut être amené à effectuer
des changement de propriété (par exemple pour permettre un travail en
groupe) et des changements de droits sur des ensembles de fichiers et de répertoires
, les étendre ou les restreindre
- root n'est pas soumis à ces restrictions, il a le pouvoir
absolu sur ... le système de fichiers. En contre-partie il peut être
considéré comme responsable de tout dysfonctionnement !
Changer les permissions sur les fichiers
·
Les droits d'accès peuvent être modifiés par le propriétaire des
fichiers ou par root (ou équivalent, d'uid 0).
·
La commande chmod (change mode) peut s'écrire de plusieurs
façons équivalentes, sur le modèle : chmod droits fichiers
Le paramètre droits permet de calculer les nouveaux droits d'accès
·
Ceux-ci peuvent s'obtenir de façon relative, par ajout
(symbole +) ou retrait (-) par rapport aux droits existants, ou bien de façon absolue,
en fixant les nouveaux droits qui remplacent les anciens (symbole =)
Ajout, retrait ou fixation des
permissions
Pour chaque fichier, on désigne par :
·
u, g et o les 3 catégories d'utilisateurs (user, group, other) et
de plus par a (=all) tous les utilisateurs
·
r,w,x les 3 attributs de chaque fichier, pour chaque catégorie
d'utilisateur
·
+ - =
l'action d'ajouter, de retirer ou de fixer un droit, qui s'applique à chaque
catégorie séparément
·
les changements, sur le modèle "à quelle(s) catégorie(s),
quelle action, quel(s) droit(s)" sont alors notés symboliquement :
[u g o a] [+ - =] [r w x]
·
par exemple chmod u+x fichier signifie "ajouter le
droit d'exécution au propriétaire du fichier"
·
on peut regrouper les catégories si on veut exercer la même
action :
chmod ug+w fichier "ajouter le droit d'exécution au propriétaire et
au groupe"
chmod go-rwx fichier "enlever tous droits d'accès à tous les
utilisateurs, sauf au propriétaire"
Notation relative (aux droits existants)
·
chmod [-R] <action-droits> fichiers
·
L'option -R (récursif) permet de modifier les permissions
de tous les sous-répertoires.
·
exemple : chmod [-R] go-rwx /home/olivier enlève tous les
permissions d'accès des fichiers du répertoire personnel de olivier (et des
sous-rép.), à tous sauf au propriétaire, c'est-à-dire olivier
Notation absolue
·
Pour chaque groupe, elle permet de fixer les nouveaux droits qui
remplacent les anciens. Si une catégorie n'est pas présente, ses anciens droits
s'appliquent.
·
chmod u=rwx,g=rw,o=r fichiers remplace les permissions
précédentes des fichiers, en les fixant à -rwxrw-r--
Attention : aucun espace dans la liste des droits, pas même autour des
éventuelles virgules
·
chmod u=rwx,g=r fichiers fixe les permissions à -rwxr--??? en ne
changeant pas les permissions précédentes du groupe other
·
chmod u=rwx,g=r,o= fichier fixe les permissions à -rwxr-----
Changer les droits s'effectue également simplement à partir
du nombre à 3 chiffres calculé comme précédemment. Ainsi, pour attribuer les
droits r-w-x (i.e. 754), il suffit d'exécuter :
chmod 754 nom_du_fichier
Changer le propriétaire
·
chown [-R] nouvel_utilisateur fichiers
Commande réservée au propriétaire actuel des fichiers ou des répertoires (et à
root)
·
L'option -R (récursif) permet d'agir sur l'ensemble des
sous-répertoires
Exemple : chown -R stage4 /home/stage1
Changer le groupe propriétaire
·
chgrp [-R] nv-groupe fichiers
Ceci doit être effectué par root ou le propriétaire, à condition que celui-ci
soit membre du nouveau groupe
Exemple : chgrp -R stage4 /home/stage1
Changer le propriétaire et le groupe propriétaire en même temps
·
Changer les 2 en même temps
chown nv-user.nv-groupe fichiers
chown new-user.fichiers
Dans ce cas, en plus, le groupe propriétaire des fichiers est changé pour le
groupe primaire du nouveau propriétaire.
Remarque importante
Le "super-utilisateur" root n'est pas soumis aux
restrictions des permissions. Une petite expérience :
1. Vérifier
que /etc/shadow est inaccessible même en lecture aux utilisateurs
2. Vérifier
que ses permissions sont --------- ou 400 en octal, seul le propriétaire root
peut lire
3. Root
supprime ce droit de lecture : chmod u-r /etc/shadow
Vérifier /etc/shadow
4. Root
peut le lire, le copier et le modifier, ce n'est bien sûr pas recommandé, mais
root peut tout se permettre (raison de plus pour ne jamais se connecter root,
sans nécessité !)
5. Mais
bonne nouvelle, root peut donc retrouver de fichiers appartenant à des
utilisateurs ayant perdu leurs droits d'accès !
Le masque de protection umask
Rappelons les règles simples de propriété qui s'appliquent à
la création d'un fichier ou d'un répertoire :
·
son propriétaire est l'utilisateur qui l'a créé
·
son groupe est le groupe primaire de ce même utilisateur
Mais quelles sont les permissions attribuées par défaut à
l'utilisateur propriétaire, au groupe propriétaire et à tous les autres ?
·
Les permissions maximales accordées par un fichier sont 666
(-rw-rw-rw-)
·
Les permissions maximales accordées par un répertoire sont 777
(-rwxrwxrwx)
On peut restreindre ces permissions lors de sa création.
C'est le rôle de la commande umask de fixer les permissions masquées,
autrement dit les droits non accordés aux fichiers et répertoires lors de
leur création
Exemple de calcul de permissions effectives, affectées lors
de la création d'un répertoire, par un utilisateur dont le masque de protection
est 027
·
777 = 111 111 111 permissions maxi = rwx rwx rwx
-
027 = 000 010 111 masque de protection
·
= 750 = 111 101 000 permissions effectives = rwx r-x ---
La commande umask
umask affiche le masque de l'utilisateur actif
Quelles sont les valeurs des masques par défaut de root et des autres
utilisateurs ?
o umask -S affiche les
permissions correspondantes au masque, sous forme symbolique
o umask
masque fixe les permissions ultérieures de création des fichiers de
l'utilisateur actif, conformément à masque, en notation octale
Attention ! le changement ne s'applique qu'à la présente session
- Pour la rendre permanente, on peut intervenir sur un
fichier profile :
- Dans le fichier profil général /etc/profile, on peut
modifier la règle habituelle :if [ $UID == 0 ] ; then umask 022 ; else
umask 077 ; fi
- Pour agir au niveau des utilisateurs, ajouter la ligne
umask masque dans
le fichier de profil personnel $HOME/.bash_profile
Le droit SUID
Sa présence permet à un fichier exécutable de s'exécuter sous
l'identité et donc les droits de son propriétaire, à la place des droits de
l'utilisateur actuel qui l'exécute.
Il s'agit d'un dispositif de
sécurité essentiel qui
autorise un utilisateur quelconque (par rapport à la commande) à bénéficier de
droits plus étendus que les siens (souvent ceux de root), pour exécuter la
commande agir sur d'autres fichiers indispensables, juste le temps et sous le
contrôle de l'exécution de la commande, SANS qu'il soit nécessaire d'attribuer
ces droits en permanence sur les fichiers.
Ce droit est noté symboliquement
s et se positionne à la place du propriétaire
u
(mais sans écraser le droit x)
Sa valeur octale est 4000
Exemple significatif
Examiner les droits du fichier exécutable /usr/bin/passwd, qui permet de
(re)définir un mot de passe et le comparer à ceux du fichier /etc/shadow qui
contient les mots de passe cryptés
Observez :
ll /etc/shadow
-r-------- root root shadow
ll -l /usr/bin/passwd
r-xr-x root bin passwd
le droit
x est accordé à tous, chacun peut donc
exécuter la commande passwd, mais personne ne posséde pas lui-même le droit
d'écriture dans le fichier /etc/shadow qui doit le stocker
Le positionnement du SUID permet d'agir en tant que root lors de la demande
d'accès au fichier et comme root a tous les droits, il est alors possible de
mettre à jour ce fichier des mots de passe
Manipulation
Comment connaitre les commandes comme
passwd, qui offre cette
permission SUID ? Voici plusieurs façons
cd /usr/bin
# grep filtre les lignes produites par ls en utilisant
# l'expression rationnelle ^...s
ls -l | grep "^...s"
# pour afficher tous les fichiers possédant le SUID
cd /
ls -lR | grep "^...s"
# recherche parmi les fichiers ordinaires ceux qui ont au moins
le droit
s
find / -type f -perm +4000
Pour un fichier exécutable, il fonctionne de la même
façon que le SUID, mais transposé aux membres du groupe
Exemple
Examiner les droits symboliques de la commande d'impression
Si une imprimante a été installée, un répertoire lp a
été créé dans var/spool/lpd. Or la commande lpr écrit dans ce répertoire. Comment un utilisateur
quelconque peut-il alors y écrire le fichier d'impression ?
Positionné sur un répertoire, ce droit modifie le groupe
propriétaire d'un fichier créé dans ce répertoire.
Un fichier créé dans un tel répertoire, verra son groupe propriétaire modifié :
Ce ne sera plus le groupe primaire du propriétaire qui l'a créé (règle
habituelle), mais à la place, le groupe propriétaire du répertoire lui-même.
Autrement dit, ce droit posé sur un répertoire, met en place un
mécanisme d'héritage de groupe, de répertoire conteneur à fichiers contenus.
Notation symbolique:
, mis à la place du x du groupe,
valeur octale 2000
Le "sticky bit"
Ce droit spécial, traduit en "bit collant", a
surtout un rôle important sur les répertoires.
Il réglemente le droit w sur le répertoire, en interdisant à un utilisateur
quelconque de supprimer un fichier dont il n'est pas le propriétaire
>Ce droit noté symboliquement t occupe par convention la place du droit x
sur la catégorie other de ce répertoire, mais bien entendu il ne supprime
pas le droit d'accès x (s'il est accordé).
Justement, si ce droit x n'est pas accordé à la catégorie other,
à la place de t
c'est la lettre T
qui apparaitra.
Sa valeur octale associée vaut 1000.
Pour positionner ce droit :
chmod +t rep
d ... ... ..t rep
si le répertoire a le droit x pour tous
d ... ... ..T rep
sinon
Seules les commandes de bases sont indiquées, avec leurs
options courantes. Pour chaque commande, il est possible d’obtenir une aide
complète en ligne avec la commande man
- Équivalent MS-DOS/MS Windows : help
- Signification : Page
de manuel
- Affiche les pages du manuel système
Chaque argument donné a man est généralement le nom d'un programme, d'un
utilitaire ou d'une fonction
- Exemples d'utilisation :
- man man
affiche les informations pour l'utilisation de man
Les commandes relatives aux fichiers
·
Équivalent MS-DOS/MS Windows : dir
·
Signification : list
·
Permet de lister un répertoire
·
Options les plus fréquentes :
- -l
: Permet un affichage détaillé du répertoire (permissions d'accès, le
nombre de liens physiques, le nom du propriétaire et du groupe, la taille
en octets, et l'horodatage)
- -h
: Associé avec -l
affiche la taille des fichiers avec un suffixe correspondant à l'unité
(K, M, G)
- -a
: Permet l'affichage des fichiers et répertoires cachés (ceux qui
commencent par un . (point)
- -r
: inverse l'ordre du tri
- -t : trie par date de dernière
modification
- -R : récursif
- Exemples d'utilisation :
- ls
-a
affiche tous les fichiers et répertoires cachés du répertoire
courant
- ls
/etc/
affiche le contenu du répertoire /etc/
- ls -l correspond au raccourci ll
dans certaines distributions
- Équivalent MS-DOS/MS Windows : cd
- Signification : change
directory
- Change
le répertoire courant
- Exemples d'utilisation :
- cd
..
permet de remonter au répertoire parent
- cd
/usr/bin/
se place dans le répertoire /usr/bin/
- Équivalent MS-DOS/MS Windows : copy
- Signification : copy
- Permet de copier des fichiers ou des répertoires
- Options les plus fréquentes :
- -a
: Archive. Copie en gardant les droits, dates, propriétaires, groupes,
etc.
- -i
: Demande une confirmation avant d'écraser
- -f
: Si le fichier de destination existe et ne peut être ouvert alors le
détruire et essayer à nouveau
- -r
: Copie un répertoire et tout son contenu
- -u
: Ne copie que les fichiers plus récents ou qui n'existent pas
- -v
: permet de suivre les copies réalisées en temps réel
- Exemples d'utilisation :
- cp
monFichier sousrep/
Copie monFichier
dans sousrep
- cp
-r monRep/ ailleurs/
Copie le répertoire monRep
vers ailleurs
en créant le répertoire s'il n'existe pas
- cp
/dev/fd0 disk.img
Copie le contenu d'une disquette dans un fichier image
- cp
disk.img /dev/fd0
Copie un fichier image sur la disquette
mv
- Équivalent MS-DOS/MS Windows : move ou ren
- Signification : move
- Permet de déplacer ou renommer des fichiers et des
répertoires
- Options les plus fréquentes :
- -f
: Ecrase les fichiers de destination sans confirmation
- -i
: Demande confirmation avant d'écraser
- -u
: N'écrase pas le fichier de destination si celui-ci est plus récent
- Exemples d'utilisation :
- mv
fichierx repy/
Déplace fichierx dans le répertoire repy
- mv
rep1 rep2
Renomme rep1 en rep2
mkdir
- Équivalent MS-DOS/MS Windows : mkdir ou md
- Signification : make
directory
- Crée un répertoire vide
- Options les plus fréquentes :
- -p
: Crée les répertoires parents s'ils n'existent pas
- Exemples d'utilisation :
- mkdir
musique
Crée le répertoire musique
- mkdir
-p photos/2005/noel
Crée le répertoire noel
et s'ils n'existent pas les répertoires 2005 et photos
- Équivalent MS-DOS/MS Windows : rmdir ou rd
- Signification : remove
directory
- Supprime un répertoire vide. S'il est plein, utiliser la
commande rm
- Options les plus fréquentes :
- -p
: Supprime les répertoires parents s'ils deviennent vides
- Exemples d'utilisation :
- rmdir
LeRep
Supprime le répertoire LeRep
rm
- Équivalent MS-DOS/MS Windows : del
- Signification : remove
- Permet d'effacer des fichiers
- Options les plus fréquentes :
- -f
: Ne demande pas de confirmation avant d'effacer
- -r
: Efface récursivement les fichiers ainsi que les répertoires
- Exemples d'utilisation :
- rm
essai.2
- Suppression du fichier essai2
- rm
CeFichier
Efface le fichier CeFichier
- rm
-rf /tmp/LeRep
Efface le répertoire /tmp/LeRep ainsi que tous ses fichiers sans demander
de confirmation
pwd
- Équivalent MS-DOS/MS Windows : chdir
- Signification : print
working directory
- Affiche le répertoire en cours
du
- Équivalent MS-DOS/MS Windows : dir
- Signification : directory
usage
- Affiche l'espace disque utilisé par répertoires
- Options les plus fréquentes :
- -a
: Afficher pour tous les fichiers et pas uniquement les répertoires.
- -c
: Faire un total après avoir tout affiché.
- -h
: Ajoute un suffixe correspondant à l'unité (K, M, G)
- -H
: Idem que -h
mais en puissance de 10
- Exemple d'utilisation :
- du
-ch /home/CyberSDF
Affiche la taille des répertoires contenus dans /home/CyberSDF en
utilisant un suffixe puis le total
- Signification : disk
free
- Affiche la quantité d'espace disque utilisé par les
systèmes de fichiers.
- Options les plus fréquentes :
- -a
: Affiche tous les systèmes de fichiers, y compris ceux de 0 blocs (par
exemple : proc, sysfs, usbfs et tmpfs)
- -i Montre les Inodes libres. Il peut très bien
avoir de la place restante sur le disque dur, mais plus d'inodes libres,
et le disque ne pourra plus être rempli
- -h
: Ajoute aux valeur un M
pour mébioctet (2^20 octets) pour que ce soit plus lisible.
- -H
: Pareil que -h
mais en mégaoctets (10^6 octets).
- -T
: Affiche le type du système de fichier.
- Exemples d'utilisation :
- df
-h
Affiche la quantité d'espace disque utilisé en
mébioctets par les systèmes de fichiers.
- df
/home
Affiche la quantité d'espace disque utilisé par la partition
/home (si elle existe)
- df
-T -h
Affichage le nom des partitions et leur point de
montage
- Équivalent MS-DOS/MS Windows : fdisk
- Signification : infos
disques
- Affiche les infos des disques
- Options les plus fréqentes :
- -l
Informations détaillées des disques
- Exemples d'utilisation
- Équivalent MS-DOS/MS Windows : find
- Signification : find
- Permet de chercher des fichiers et éventuellement exécuter
des commandes à ceux-ci
- Options les plus fréquentes :
- -name
: Recherche d'un fichier par son nom
- -iname
: Même chose que name
mais insensible à la casse
- -type
: Recherche de fichier d'un certain type
- -atime
: Recherche par date de dernier accès
- -mtime
: Recherche par date de dernière modification
- -link
: Recherche du nombre de liens au fichier
- -user
: Recherche de fichiers appartenant à l'utilisateur donné
- -group
: Recherche de fichiers appartenant au groupe donné
- Action les plus fréquentes :
- -exec
: Exécute la commande donnée aux fichier trouvés
- -ok
: Même chose que exec
mais demande une confirmation
- -ls
: exécute la commande ls
à chaque fichier trouvé
- Opérateurs les plus fréquents :
- -a
: Opérateur ET
- -o
: Opérateur OU
- !
ou -not
: Opérateur NOT
- Exemples d'utilisation :
simple
Placez-vous dans le dossier à rechercher et faites :
- find
monfichier*
Recherche un fichier commençant par "monfichier"
- find
*monfichier*.ogg
Recherche un fichier contenant "monfichier" et ayant pour
extention ".ogg"
- find
/home/ -name monfichier
Recherche le fichier monfichier
dans tous les répertoires de /home/
- find
. -name ".c"
Recherche tous les fichiers ayant une extension .c
- find
. -mtime -5
Recherche les fichiers du répertoire courant qui ont été modifiés entre
maintenant et il y a 5 jours
- find
/home/ -mtime -1 \! -type d
Recherche uniquement les fichiers (! -type d signifie
n'était pas un répertoire) ayant été modifiés ces dernières 24h
- find
. ! -user root
Affiche tous les fichiers n'appartenant pas à l'utilisateur root
- find
. \( -name '*.wmv' -o -name '*.wma' \) -exec rm {} \;
Recherche et supprime tous les fichiers WMA et WMV
trouvés
- Équivalent MS-DOS/MS Windows : find
- Signification : global
regular expression print
- Recherche une chaîne de caractères dans des fichiers (ou
depuis la console si aucune fichier n'est indiqué) ; Souvent utilisé en
filtre avec d'autres commandes
- Options les plus fréquentes :
- -c
: affiche le nombre
de lignes contenant l'expression
- -l : n'affiche que le nom des
fichiers contenant l'expression
- -n
: Retourne les lignes préfixées par leur numéro
- -i
: contrairement à la
plupart des commandes, l'option -i ne signifie pas interactif
mais ignore-case, c'est à dire que grep ne fera pas de différence
entre minuscules et majuscules
- -r
: Recherche récursivement dans tous les sous-répertoires ; On peu
utiliser la commande rgrep
- -G
: Recherche en utilisant une expression relationnelle basique (option par
défaut)
- -E
: Recherche en utilisant une expression relationnelle étendue ; On peu
utiliser la commande egrep
- -F
: Recherche en utilisant une chaîne fixe ; On peu
utiliser la commande fgrep
- -v : inverse la recherche,
c'est à dire affiche les lignes ne contenant pas l'expression
- Exemples d'utilisation :
- grep
-n montexte monfichier
Retourne toutes les lignes ainsi que leur numéro ou montexte apparait
dans monfichier
- Équivalent MS-DOS/MS Windows : type
- Signification : concatenate
- La commande cat permet de visualiser ou de concaténer des
fichiers. Elle est aussi très utilisée pour visualiser fichiers systèmes
afin d’en extraire des informations
- Options les plus fréquentes :
- -b
numéroter les lignes non-blanches en sortie pour en
faciliter la visualisation
- -n
: numéroter les
lignes en sortie pour en faciliter la visualisation
- -v
: Affiche les caractères de contôles
- Exemple d'utilisation :
- cat
-n monFichier
Affiche monFichier
en numérotant les lignes à partir de 1
more
- Équivalent MS-DOS/MS Windows : type
- Signification : more
- Affiche un fichier page par page
- Options les plus fréquentes :
- -s
: Regroupe les lignes vides consécutives en une seule
- -f
: Ne coupe pas les lignes longues
- Exemple d'utilisation :
- more
-sf monFichier
Affiche monFichier
page par page en concaténant les lignes vides sans compter les lignes
longues.
- Équivalent MS-DOS/MS Windows : type
- Signification : less
- Affiche un fichier page par page
- Options les plus fréquentes :
- -e
ou -E
: Quitte automatiquement la deuxième fois que la fin du fichier est
atteinte, ou dès la première fois avec -E.
- -F
: Quitte automatiquement si le fichier tient sur le terminal.
- -m
ou -M
: Prompt long a la more.
- -r
ou -R
: Autorise les caractères spéciaux.
- -x
: Règle la taille des tabulations.
- -~
: ne comble pas les lignes vides par des ~
- Exemple d'utilisation :
- less
-Emr~ monFichier
Affiche monFichier page par page avec un
prompt long (affichage du pourcentage du fichier parcouru) en affichant
les caractères spéciaux sans combler les lignes vides par des ~
ln
- Signification : link
- Crée un lien (physique ou symbolique)
- Options les plus fréquentes :
- -s
: Crée un lien symbolique (similaire au raccourci du monde Windows)
- -f
: Force l'écrasement du fichier de destination s'il existe
- -d
: Crée un lien sur un répertoire (uniquement en mode sudo ou root)
- Exemples d'utilisation :
- ln
-s Rep1/Rep2/Monfichier MonLien
Crée un lien symbolique MonLien
de Rep1/Rep2/Monfichier
dans le répertoire où on se trouve
- ln
Monfichier unRep/AutreNom
Crée un lien physique AutreNom
de Monfichier
dans le répertoire unRep
- Notes :
- Vérifiez que vous vous trouvez bien dans le dossier dans
lequel vous souhaitez créer le lien avant de faire cette commande.
mount
- Signification : mount
- Monter un système de fichiers. Ce montage est parfois
effectué automatiquement grâce au fichier de configuration
"/etc/fstab". Ce fichier contient tout ce que linux doit monter
lors de son démarrage, mount n'est accessible que par root
- Options les plus fréquentes :
- -a
: Monter tous les systèmes de fichier déclarés dans le fichier /etc/fstab
- -t
: Précise le type de fichier à monter
- -o
: Ajouter une option. Options adjointe à -o les plus fréquentes :
- auto
: Permet d'être monté par -a
- async
: Les entrées/sorties sur le système de fichiers seront asynchrones
- defaults
: Utilise les options rw,
suid,
dev,
exec,
auto,
nouser,
et async.
- dev
: Interprète les fichiers spéciaux de périphériques du système présent
dans /dev/
- exec
: Permet l'exécution de fichiers binaires du système monté
- noauto
: Empêche d'être monté avec -a
- nodev
: Ne pas interpréter les fichiers spéciaux de périphériques du système
- noexec
: Empêche l'exécution de fichiers binaires du système monté
- nouser
: Ne pas autoriser d'autres utilisateurs que root (ou sudo) à monter le
système de fichiers (comportement par défaut)
- ro
: Monte le système en lecture seule
- rw
: Monte le système en lecture et écriture
- suid
: Prend en compte les bits SetUID ou SetGID du
système monté
- user
: Permet aux utilisateurs ordinaires à monter et démonter le système de
fichiers (implique noexec,
nosuid,
et nodev
sauf si surchargées)
- Exemples d'utilisation :
- mount
Liste tous les systèmes de fichiers actuellement montés
- mount
-a
Monte tous les systèmes de fichiers déclarés dans le fichier /etc/fstab
- mount
/mnt/maPartion
Monte le système de fichiers ad-hoc déclarés dans le fichier /etc/fstab
- mount
-t iso9660 monFichier.iso /mnt/monIso -o loop
Monte dans un périphérique
boucle (loop) le fichier iso monFichier.iso dans le répertoire /mnt/monIso
- mount
-t vfat -o defaults,rw,user,umask=022,uid=1000 /dev/sda1 /mnt/Mondisk/
Monte un disque dur USB (/dev/sda1)
formaté en FAT32 (-t
vfat) en lecture écriture (rw)
dans le répertoire /mnt/Mondisk/
; tous les utilisateurs peuvent le démonter (user), les droits d'exécution (uid=1000) sont
fixés à l'utilisateur ayant l'UID 1000 (sous Ubuntu, l'uid 1000 correspond
au premier utilisateur créé) et la création d'un fichier s'effectuera
avec les permissions 644 (rw-r---r–) et pour un répertoire 755
(rwxr-xr-x) (umask
022)
- mount /dev/fd0 /floppy
Monte un lecteur de disquette
umount
- Signification : unmout
- Démonte un système de fichiers
- Options les plus fréquentes :
- -a
: Démonte tous les systèmes de fichiers présents dans /etc/mtab
- -d
: Si le système monté est un périphérique loop, libérer le périphérique.
- -f
: Forcer le démontage
- -r
: Si impossible de démonter, monter en lecture seule
- Exemples d'utilisation :
- umount
/mnt/Mondisk
Démonte le système de fichiers monté dans /mnt/Mondisk
- umount
-f /dev/cdrom
Force le démontage du périphérique CDROM
- umount
-d /mnt/monIso
Démonte et libère le périphérique loop
- umount
-a
Démonte tous les systèmes de fichiers montés (à l'exception de /proc) ; ne sert
que lorsque l'on veut redémarrer ou éteindre sa machine manuellement et
proprement
sudo
- Équivalent MS-DOS/MS Windows : runas
- Signification : super
user - do
- Permet d'exécuter des commandes en tant qu'un autre
utilisateur, donc avec d'autres privilèges que les siens.
- Options les plus fréquentes :
- -s
: Importe les variables d'environnement du shell
- -k
: Lorsque l'on utilise sudo,
il garde en mémoire le mot de passe ; cette option déconnecte
l'utilisateur et forcera à redemander un mot de passe si sudo est
exécuté avant le timeout défini.
- Exemples d'utilisation :
- $
sudo reboot
Lance la commande reboot
avec les droits de l'utilisateur root
- Ressources :
- Signification : password
- Permet de modifier le mot de passe d'un utilisateur
- Options les plus fréquentes :
- -S
: Affiche l'état d’un compte (nom du compte, bloqué (L), si l'utilisateur
n’a pas de mot de passe (NP) ou a un mot de passe utilisable (P), date de
dernière modification du mot de passe, durée minimum avant modification,
durée maximum de validité, durée d’avertissement, durée d’inactivité
autorisée)
- Exemple d'utilisation :
- passwd
Demande à changer le mot de passe
- Signification : groups
- Affiche les groupes auxquels appartient un utilisateur
- Exemples d'utilisation :
- groups
Affiche la liste des groupes auxquels appartient l'utilisateur ayant tapé
la commande.
- groups
CyberSDF
Affiche tous les groupes auxquels appartient l'utilisateur CyberSDF.
- Signification : add
user
- Ajoute un utilisateur, ou un groupe, au système.
- Options les plus fréquentes :
- –disabled-login
: Empêche l'utilisateur de se connecter.
- –disabled-password
: Un peu comme </del>disabled-login
sauf qu'il est possible de se connecter via une clé RSA SSH, pratique
pour créer un utilisateur qui ne se connectera que via SSH.
- –system
: Crée un utilisateur système.
- –group
: Avec –system
crée un groupe avec le même ID que l'utilisateur système, sans un groupe
avec le nom donné sera créé
- –home
: Permet de fixer le répertoire HOME de l'utilisateur.
- –no-create-home
: Ne crée pas de répertoire HOME.
- Exemples d'utilisation :
- adduser
CyberSDF
Crée l'utilisateur CyberSDF
- adduser
--disabled-password –no-create-home CyberSSH
Crée un utilisateur CyberSSH sans mot de passe qui ne pourra pas se
connecter directement sur la machine et sans lui créer de répertoire
home.
- adduser
--disabled-password –home /home/CyberSDF CyberSSH
Même chose qu'au dessus sauf qu'on lui donne le même répertoire HOME qu'à
l'utilisateur CyberSDF créé en premier.
- Signification : delete
user
- Supprime un utilisateur du système.
- Option la plus fréquente :
- –system
: Ne supprime l'utilisateur que si c'est un utilisateur système.
- –remove-home
: Supprime l'utilisateur plus son dossier dans le home.
- Exemple d'utilisation :
- deluser
CyberSSH
Supprime l'utilisateur CyberSSH
- deluser
–remove-home bob
Supprime l'utilisateur bob ainsi que le dossier /home/bob
- Signification : user
modification
- Modifie le groupe d'appartenance d'un utilisateur
- Options les plus fréquentes :
- -G, –groups
GROUPE1[,GROUPE2,...[,GROUPEN]]] : Ajouter l'utilisateur aux groupes
précédents. Si l’utilisateur fait actuellement partie d’un groupe qui
n’est pas listé, l’utilisateur sera supprimé du groupe. Ce comportement
peut être changé avec l’option -a,
qui permet d’ajouter l’utilisateur à une liste de groupes supplémentaires
- usermod -aG toto machin
Ajoute l'utilisateur machin au groupe toto sans supprimer machin de son
groupe originel
sudo usermod -d /home/nouveau_login -m -l nouveau_login
ancien_login
Permet de renommer le dossier utilisateur et de changer son nom. Pratique
lorsque le pc change de mains
Les commandes relatives aux droits et propriétés
chmod
- Équivalent MS-DOS/MS Windows : cacls
- Signification : change
mode
- Modifie les permissions d'accès à un fichier ou à un répertoire.
Type d'autorisations (une autorisation d'exécution sur un répertoire
autorise son ouverture) :
- +
: Ajoute une permission
- -
: Enlève une permission
- =
: Autorise uniquement l'autorisation indiquée
- r
: Lecture ; Valeur octale 4
- w
: Ecriture ; Valeur octale 2
- x
: Execution ; Valeur octale 1
- s
: Utilise les droits du propriétaire ou du groupe lors de l'exécution
- u
: Propriétaire du fichier
- g
: Groupe propriétaire du fichier
- o
: Tous les autres utilisateurs
- Options les plus fréquentes :
- -R
: Récursif, modifie les autorisation d'un répertoire et tout ce qu'il
contient
- -c
: Ne montrer que les fichiers ayant été réellement modifiés
- -f
: Ne pas afficher les messages d'erreur
- Exemples d'utilisation :
- chmod
ugo+x monRep
Ajoute l'exécution (ouverture) du répertoire monRep à tous (propriétaire, groupe,
autres)
- chmod
go-wx monRep
Supprime l'autorisation de lecture et d'écriture de monRep au groupe
et aux autres
- chmod
u=rw,go=r MonFichier
Fixe l'autorisation de lecture et d'écriture au propriétaire de MonFichier et une
autorisation de lecture au groupe et aux autres.
- chmod
644 MonFichier
Exactement la même chose que ci-dessus mais en utilisant les valeurs
octales (Nota : 6 = 4+2 = lecture + écriture)
- chmod
u=rw,g=r,o= MonFichier
Fixe l'autorisation d'ouverture et de lecture de MonFichier au
propriétaire, uniquement la lecture au groupe et interdit tout accès aux
autres.
- chmod
640 MonFichier
Exactement la même chose que ci-dessus mais en utilisant les valeurs
octales
- Équivalent MS-DOS/MS Windows : cacls
- Signification : change
owner
- Change le propriétaire et le groupe propriétaire d'un
fichier
- Options les plus fréquentes :
- -R
: Modifie récursivement un répertoire et tout ce qu'il contient
- Exemples d'utilisation :
- chown
autreUtilisateur MonFichier
Change le propriétaire de MonFichier
en autreUtilisateur
- chown
-R lui:nous monRep
Change le propriétaire en lui
et le groupe propriétaire en nous
du répertoire monRep
ainsi que tout ce qu'il contient
- Signification : change
groupe
- Change le groupe propriétaire d'un fichier
- Options les plus fréquentes :
- -R
: Change récursivement un répertoire et tout ce qu'il contient
- -h
: Change le groupe propriétaire d'un lien symbolique et seulement lui (ne
touche pas à la destination du lien)
- -L
: Si fournie avec R
, change le groupe propriétaire d'un répertoire et des fichiers qu'il
contient s'il est pointé par un lien symbolique rencontré lors de
l'exécution
- Exemples d'utilisation :
- chgrp
unGroupe MonFichier
Change le groupe propriétaire du fichier MonFichier en unGroupe
- chgrp
-R unGroupe monRep
Change le groupe propriétaire du répertoire monRep ainsi que tout ce qu'il
contient en unGroupe
Les commandes relatives au système
- Signification : efface
- Permet d'effacer l'écran
- Exemple d'utilisation :clear
uname
- Signification : unix
name
- Affiche des informations sur le système.
- Options les plus fréquentes :
- -s
: Affiche le nom du noyau.
- -n
: Affiche le nom de la machine (hostname).
- -r
: Affiche la révision du noyau
- -v
: Affiche la version du noyau
- -m
: Affiche le type de processeur de la machine (i386, i686, etc.)
- -o
: Affiche le nom du système d'exploitation
- -a
: Afficher les informations en utilisant les options -snrvmo
- Exemple d'utilisation :uname -a
Affiche tout
who
- Signification : qui
est connecté sur le système?
- Permet de voir les utilisateurs connectés
- Options les plus fréquentes :
- -a
Indique un maximum d'information
logname
- Signification : Nom de login
- Permet de savoir sous quel utilisateur nous somme connecté
whoami
- Signification : Qui suis-je ?
- Permet de savoir sous quel uid. Cela donne aussi les
permissions effectives si nous avons fait un su -
uptime
- Signification : uptime
- Indique depuis quand le système fonctionne.
- Exemples d'utilisation :
- uptime
Affiche l'heure actuelle, la durée depuis laquelle le système fonctionne,
le nombre d'utilisateurs actuellement connectés, et la charge système
moyenne
- Signification : mémoire
libre
- Affiche la mémoire disponible / utilisée du système
- Options les plus fréquentes :
- -b
: Affiche la mémoire en bytes
- -k
: Affiche la mémoire en kilo octet
- -m
: Affiche la mémoire en méga octet
- -g
: Affiche la mémoire en giga octet
- -s
: Spécifie le délai de réaffichage de la mémoire
- -t
: Affiche la ligne des totaux
- Exemples d'utilisation :
- free
-m -s 5
Affiche la mémoire du système en méga octet toutes les 5 secondes
- Équivalent MS-DOS/MS Windows : tasklist
- Signification : processes
snapshot
- Affiche les processus en cours
- Options les plus fréquentes :
- -u
: Affiche les processus de l'utilisateur qui exécute la commande
- -au
: Affiche les processus de tous les utilisateurs
- -aux
: Affiche l'intégralité des processus du système. Équivalent à ps -A
- -faux
: Affiche tous les processus du système en les regroupant par
enchaînement d'exécution.
- Exemples d'utilisation :
- ps
-u
Tous les processus de l'utilisateur courant
- ps
-aux
Tous les processus en cours
- Équivalent MS-DOS/MS Windows : taskkill
- Signification : kill
/ kill all
- Permet d'envoyer un signal à un processus ; kill ne
comprend que les PID (Process Identifier, numéro d'ordre du processus), killall quant à
lui comprend le nom du processus
- Options les plus fréquentes :
- -s
: Indique quel signal s
à envoyer au processus ; Le signal peut être identifié soit par son nom
(exemple : SIGTERM) soit par son numéro (exemple : 9) ; Cette option est
optionnelle
- -l
: Affiche la liste des signaux connus
- Les signaux les plus courants sont :
HUP
signal 1
: signal de fin d’exécution ou le processus doit relire son fichier de
configuration.
TERM
signal 15
: Le signal Terminate indique à un processus qu’il doit s’arrêter.
KILL
signal 9
: Le signal Kill indique au système qu’il doit arrêter un processus qui ne
répond plus
- Exemples d'utilisation :
- kill
-15 14774 : Envoie le signal 15, ou TERM, au processus
ayant le numéro 14774 ce qui a pour effet de terminer proprement le
processus.
- kill
-9 7804 : Envoie le signal 9, ou KILL, au processus ayant
le numéro 7804 ce qui a pour effet de tuer le processus.
- killall
-TERM firefox-bin : Envoie le signal TERM, ou 15, au
processus firefox-bin ce qui a pour effet de le fermer
lspci
- Signification : list
pci
- Liste tous les périphériques PCI
- Option la plus fréquente :
- -v
: Affiche des informations plus détaillées
- Exemples d'utilisation :
- Signification : list
usb
- Liste tous les périphériques USB
- Option la plus fréquente :
- -v
: Affiche des informations plus détaillées
- Exemples d'utilisation :
shutdown
- Signification : Eteindre
- Permet d'arèter ou redémarrer un système
- Option les plus fréquentes :
- -r
Arrête les différents processus et redémarre le
système
- -h
Arrête les différents processus et éteint le système
reboot
- Signification : Redémarre
- Permet de redémarrer la machine. N'existe pas sur tous les
systèmes Linux mais est équivalent au shutdown -r
startx
- Signification : Lance X
- Permet de lancer l'interface graphique depuis une ligne de
commande en init3
tail
·
Affiche la fin d'un fichier, très utilie pour surveiller les logs
systèmes
- Option les
plus fréquentes :
- -n : affiche
les xy dernières lignes du fichier
- -f : met à
jour la fin du fichier dynamiquement
·
Exemple:
o
tail –f –n -50 /var/log/messages affiche les 50 dernières lignes
du fichier système message et se met à jour continuellement
Les commandes d'archivage et de compression
tar
- Signification : archiver
- Permet de créer ou décompacter une archive
·
Note 1: Les options s'écrivent sans - : on
écrit par exemple tar cf et non tar -cf.
·
Note2 : L'ordre des arguments est cible puis source.
Une inversion de cet ordre peut provoquer l'écrasement des données sources
·
Option les plus fréquentes :
- c : création d'une archive.
- t : liste le contenu d'une archive.
- x : extraction d'une archive.
- v : la commande affiche au fur et à mesure tout ce
qu'elle fait
- z : A utiliser s’il s’agit en plus d’un
fichier compressé gzip que l’on souhaite décompresser en même temps
- f : précise le nom du fichier cible, doit être la dernière
option
- Exemples
- tar cf tp.tar tp : le répertoire tp est
archivé en tp.tar
- tar tvf tp.tar : liste le contenu de l'archive tp.tar
- tar xvf tp.tar : extrait l'archive tp.tar,
c'est à dire recrée le répertoire tp, en indiquant les
éventuelles messages
Les commandes réseaux
ifconfig
- Équivalent MS-DOS/MS Windows : ifconfig
- Signification
: interface configuration. Liste et permet de modifier la configuration
des interfaces réseaux
ifup
- Signification
: Force le montage de la carte réseau
- Exemple :
ifup eth3
Dans Ubuntu, si la machine virtuelle
est recopiée, elle aura une autre MAC ADRESSS, et Ubuntu ne pourra redémarrer
la carte réseau. Il sera nécessaire de la réidentifier avec la commande
ifconfig –a, et modifier ensuite le fichier /etc/network/interfaces pour
refléter son nouveau nom. Valable aussi pour Debian
ping
- Signification : Test de transmission entre deux hosts
- Exemples
telnet
- Signification : Connexion sur un terminal distant
- Note: Ne jamais utiliser cette commande, car le flux n’est
pas crypté, mais utiliser plutôt ssh
ssh
- Signification
: Connexion sur un terminal distant sécurisée
- Exemple :
ssh 10.3.19.2 –l autre_utilisateur pour se connecter à la machine
10.3.19.2 avec un autre utilisateur que celui utilisé sur la session
locale
ftp
- Signification: Transfert non sécurisé de fichiers,
préférer la commande suivante sftp. La commande ouvre un environnement
distant qui offre les commandes les plus courantes suivantes
·
Option les plus fréquentes :
o ascii
: transfert de fichiers ASCII (texte)
o binary
: transfert de fichiers binaires.
o cd
: changement de répertoire sur la machine distante.
o get
: transfert de un
fichier depuis
la machine distante.
Exemple : get tp1.f
o lcd
: changement de répertoire sur la machine locale.
o ls
: liste les fichiers du répertoire courant de la machine distante.
o mget
: transfert de plusieurs
fichiers depuis
la machine distante
Exemple : mget *.f
o mput :
transfert de plusieurs fichiers vers la machine
distante
Exemple : mput licence.*
o put :
transfert de un fichier vers la machine distante.
Exemple : put licence.tex
o pwd :
affiche le répertoire courant de la machine distante
o quit :
quitte ftp
sftp
·
Signification: Transfert sécurisé de fichiers. On retrouve
les mêmes options de commandes que dans ftp ci-dessus
scp
·
Signification : Copie sécurisé de fichiers entre hosts
·
Option les plus fréquentes :
o -p : le fichier cible conserve les
permissions et la date de dernière modification du fichier source (au lieu
de la date courante).
o note: nom est votre nom de login
sur la machine distante. Il n'y a pas besoin de l'utiliser si c'est le même sur
la machine locale et la machine distante.
o Exemples
- scp -r philemon/ borgeaud@10.3.19.2:mnt/externe pour copier le
dossier philemon et tous ses sous-dossiers depuis la machine locale sur
la machine 10.3.19.2 avec l'utilisateur borgeaud dans le dossier
/mnt/externe, qui est un disque dur monté en NTFS lecture / écriture
netstat
·
Signification : Statistiques de la couche réseau de Linux
·
Option les plus fréquentes :
o –p : Montre le PID et le nom du
programme assigné à chaque programme
o –a : Montre tous les sockets,
en écoute ou non
o –n : Montre les adresses sans
résoudre les ports ou les noms d’utilisateurs. Quelquefois trop verbeux,
utiliser plutôt netstat -pa
·
Exemple
o netstat
–pan : pour voir la liste des process et des ports en écoute
o netstat
–pa : idem en moins verbeux
o netstat
–pa : idem en moins verbeux
o netstat
-pan | grep bp : Affiche la liste des processus et des ports en écoute,
mais filtre une entrée contenant la string bp
Cet éditeur très riche offre ne nombreuses commandes à
découvrir dans son manuel. Il existe sur TOUS les UNIX
Taper ctrl-c
pour passer en mode commande et Taper i pour passer en mode d'insertion
Sauvegarde du fichier
:q sortie de l'éditeur
:q! sortie de l'éditeur sans enregistrer les
modifications
:w écriture des modifications dans le fichier sans
sortir de l'éditeur
:wq écriture des modifications dans le fichier avec
sortie de l'éditeur
Détaillons quelques exemples de commandes afin de pouvoir
gérer notre système
ps
La commande ps permet de lister tous les processus en cours
d’exécution sur un système
- Option les plus fréquentes :
o
-e liste tous les processus
o
-f Liste avec détails
o -www Montre l’intégralité de la
commande, même si elle dépasse 80 caractères
o -l Rajoute les colonnes NI and SZ. NI
montre la valeur nice, qui détermine la priorité du processus. Plus la
valeur est élevée, plus la priorité est basse. Sur les systèmes Linux, la
valeur par défaut est 0
o SZ montre la valeur size,
soit la taille du processus en mémoire. L’unité utilisée est le nombre de
pages, et une page sous Linux vaut 4,096 bytes
|
Champ
|
Description
|
|
UID
|
Propriétaire
du processus, soit généralement celui qui l’a lancé. Par exemple, Apache
tourne sous l’utilisateur wwwrun
|
|
PID
|
L’ID
du processus, identificateur unique assigné à chaque processus
|
|
PPID
|
L’ID
parent du processus exécuté, celui dont il dépend
|
|
C
|
Ce
champ est caduc
|
|
STIME
|
L’heure
de départ du processus courant
|
|
TTY
|
Le
terminal utilisant le processus (un deamon aura ?, car il n’est pas
lancé depuis un terminal)
|
|
TIME
|
Le temps
CPU accumul par le processus courant. Plus il est élevé, plus le processus
est consommateur
|
|
CMD
|
La
commande qui a lancé le processus
|
Exemple
ps –efwww
Association avec less
less permet d’afficher en formatant la sortie par rapport au
nombre de lignes du terminal
Pour avancer d’une page, on tape sur la barre
<espace>, pour remonter, on presse sur b (back). Pour quitter, on tape q
Exemple
ps –ef | less
Association avec grep
Grep est une fonction de recherche, et la commande est
souvent utilisée en association avec ps pour filtrer le nom d’un processus
particulier
On utilise un pipe pour rediriger la sortie de la commande
ps sur le filtre, auquel on donne les arguments souhaités
Exemple
Ps –ef | wwwrun
Dans ce cas, seul les
processus avec cet argument seront affichés, en l’occurrence ici on listera les
processus avec le string wwwrun, qui représente l’utilisateur système utilisé
pour lancer Apache
ps -ef | grep vmx
Dans ce cas, on voit
les process tournant sous Vmware Serveur avec le dossier des machines
virtuelles utilisées
top
top permet de visualiser en temps réel l’activité du
processeur. Il affiche la liste des tâches les plus intensives, et permet de
manipuler les processus de manière interactif. Il peut trier les processus par
utilisation cpu, utilisation mémoire ou uptime
Détail des champs
|
Uptime
|
Cette première ligne affiche l'heure, la durée depuis laquelle le
système fonctionne, le nombre d'utilisateurs connectés, et les trois charges
moyennes du système. Ces trois moyennes indiquent le nombre moyen de
processus ayant fonctionné durant les 1, 5 et 15 dernières minutes. Cette
ligne est exactement celle de la sortie de w(1) ou uptime(1). La ligne
d'uptime peut être mise à jour par la commande 1 dans top
|
|
processes
|
(ou tasks) La ligne 2 représente le nombre de processus en cours
depuis le dernier rafraîchissement. Elle est constituée de plusieurs champs:
nombre de tâches en cours, en suspens, arrêtées ou zombies (ce dernier terme
désigne un processus qui a été tué mais qui n'a pas abandonné la table des
processus parce que le processus-parent n'a pas encore exécuté un wait(2);
les processus zombies sont parfois affichés par la commande ps(1)). Les
processus et les états montrés peuvent être rafraîchis par la commande
interactive t
|
|
CPU states
|
Indique, en pourcentage, le temps CPU utilisé en mode utilisateur
(user), mode système (system), redéfinition des priorités (nice) et, arrêts
(idle). Les processus dont le degré de douceur a été redéfini sont les seuls
à avoir des valeurs négatives
|
|
Mem
|
Donne les statistiques sur l'utilisation de la mémoire: la mémoire
totale disponible, la mémoire libre, la mémoire utilisée, la mémoire partagée
et la mémoire utilisée par les tampons. L'affichage de ces informations peut
être rafraîchi par la commande intéractive m
|
|
Swap
|
Donne les statistiques sur l'espace de swap: l'espace total, celui
disponible et celui utilisé. Swap et Mem constituent le résultat de la
commande free(1)
|
|
PID
|
IDentificateur du processus associé à chaque tâche
|
|
PPID
|
IDentificateur du processus-parent de chaque tâche
|
|
UID
|
ID d'utilisateur (le propriétaire de la tâche)
|
|
USER
|
Désigne le nom d'utilisateur du propriétaire de la tâche
|
|
PRI
|
Définit la priorité de la tâche
|
|
NI
|
Représente la valeur de la douceur d'une tâche
|
|
SIZE
|
Taille du code d'une tâche, ajoutée à l'espace de pile, (unités:
kilo-octet)
|
|
TSIZE
|
Représente la taille du code d'une tâche. Ceci donne des valeurs
spéciales pour les processus du noyau; non-fonctionnel pour les processus
ELF; Format de binaires sous SVr4 (System V, version 4)
|
|
DSIZE
|
Est la taille des données et de la pile. Ne fonctionne pas pour les
processus ELF
|
|
TRS
|
Indique la taille de texte restant
|
|
SWAP
|
Représente la taille de la partie (d'une tâche) déplacée sur l'espace
de swap
|
|
D
|
Indique la taille de pages marquées ``dirty''
|
|
LIB
|
Est la taille de l'ensemble des pages de bibliothèques utilisées. Ne
fonctionne pas
pour les processus ELF
|
|
RSS
|
Désigne la
quantité totale de mémoire physique utilisée par une tâche (exprimée en
kilo-octets). Dans le cas des processus ELF, les pages de bibliothèques prises en compte ici (ce n'est
pas le cas pour les processus a.out)
|
|
SHARE
|
Représente la quantité de mémoire utilisée par une tâche
|
|
STAT
|
L'état d'une
tâche est y représentée. L'état est soit S pour sleeping, D pour
uninterruptible sleep, R pour running, Z pour zombie, ou T pour stopped
(encore appelé traced). Ces états sont modifiés par un traceur< pour les
processus avec une valeur de priorité négative, N pour les processus avec des
valeurs de priorités positives et W pour un processus dégagé vers l'espace de
swap (ceci ne fonctionne correctement que pour les processus du noyau)
|
|
WCHAN
|
En fonction de la disponibilité de /boot/psdatabase ou de la table de
liens du noyau (/boot/System.map), ceci montre les adresses ou le nom de la
fonction du noyau pour lequel la tâche est suspendue
|
|
TIME
|
Définit la durée totale de CPU qu'une tâche a utilisé depuis son
lancement. Si le modemcumulatif est activé, ceci inclut aussi la durée de CPU
utilisée par les processus-fils qui ont été tués. Le mode cumultif peut être
activé à l'aide de l'option S en ligne de commande. Vous pouvez opérer un
rafraîchissement de la valeur avec la commande interactive S. La ligne
d'en-tête sera modifiée de manière à utiliser le CTIME
|
|
%CPU
|
Représente le partage (en fonction des tâches) de la durée
d'utilisation de la CPU depuis la dernière mise-à-jour à l'écran. Cette
valeur est exprimée en pourcentage de la durée d'utilisation de CPU par
processeur
|
|
%MEM
|
Représente le partage (en fonction des tâches) de la mémoire physique
|
|
COMMAND
|
Désigne le nom (la commande) d'une tâche. Celui-ci sera tronqué s'il
est trop long pour être affiché sur une seule ligne. Les tâches en mémoire
ont une ligne de commande, mais les tâches dégagés sur l'espace de swap ont
seulement le nom du programme entre parenthèses (par exemple: ``(getty)'')
|
Paramètres de lancement
|
-d
|
Spécifie le délai de la mise à jour de la console. Peut être changé
de manière interactive avec la commande s
|
|
-s
|
Lance top en mode sécurisé, ce qui verrouille les
commandes dangereuses qui pourraient être rentrées en mode interactif
|
|
-C
|
Affiche l’état total des CPU, dans le cas uniquement
de machine multiprocesseurs ou multi-cœurs
|
|
-H
|
Montre tous les threads
|
|
-n
|
Nombre d’itérations de mise à jour de l’affichage, puis fermeture.
Utile pour le mode batch
|
|
-b
|
Mode batch. Utiliser pour envoyer le résultat dans un autre programme
ou un fichier. Dans ce mode, il n’est pas possible d’insérer des commandes
interactives. Ce mode s’exécute jusqu’au nombre d’itérations spécifiées par
le paramètres –n
Exemple : On désire envoyer dans un fichier texte la sortie de
top durant 4 itérations
top –n 4 –b > /root/top.txt
|
Commandes interactives
Plusieurs fonctions sont reconnues de manière interactive
avec top. Les commandes dangereuses sont désactivées avec l’option de lancement
–s
|
ESPACE
|
Rafraichit de suite
|
|
h or ?
|
Affiche l’aide des commandes
|
|
k
|
Tue un process. Il est demandé le niméro de
processus, et le signal à envoyer. Pour un kill normal, envoyer le
signal -15 afin de fermer le processus normalement, ce qui est aussi
le signal par défaut. Pour forcer le kill d’un processus, envoyer le
signal -9
|
|
i
|
Bascule dans un mode où sont ignorés les processus
zombie et les processus en attente
|
|
n or #
|
Change le nombre de processus à afficher, une
valeur est demandée. Par défaut, le nombre est 0, qui affiche autant
de processus que le permet d’afficher la fenêtre
|
|
q
|
Quitter
|
|
r
|
Permet le re-nice d’un processus, soit son
changement de priorité. Il sera demandé le PIFD de la tâche. Une
valeur positive fait baisser la priorité. Si top est exécuter depuis
un compte root, il est possible de rentrer une valeur négative pour
avoir une priorité plus importante que la normale. La valeur par
défaut de re-nice est 10
|
|
s
|
Change le délai du rafraichissement, il sera
demandé un chiffre en seconde. 0 rafraichira continuellement top, et
la valeur par défaut est 5
|
|
f or F
|
Permet d’ajouter ou de supprimer des champs à
l’affichage
|
|
o or O
|
Permet de changer l’ordre des champs à afficher
|
|
l
|
Bascule l’affichage entre la charge moyenne et l’uptime
|
|
m
|
Ajoute ou enlève les informations sur les
informations d’utilisation de la mémoire
|
|
t
|
Ajoute ou enlève les informations sur les
informations d’utilisation du processeur
|
|
c
|
Bascule l’affichage sur le détail des lignes de
commandes
|
|
N
|
Trie par PID
|
|
A
|
Trie les processus par âge, les nouveau d’abord
|
|
P
|
Trie les processus par utilisation du CPU
(affichage par défaut)
|
|
M
|
Trie les processus par utilisation mémoire
|
|
T
|
Trie les processus par temp / temps cumulé
|
|
W
|
Enregistre la configuration courante dans ~/.toprc.
C’est la manière recommandée pour écrire un fichier de configuration
top
|
cat
La commande cat permet de visualiser ou de concaténer des
fichiers. Elle est aussi très utilisée pour visualiser fichiers systèmes afin
d’en extraire des informations
Options
-b numéroter les lignes
non-blanches en sortie pour en faciliter la visualisation
-n numéroter les lignes en sortie
pour en faciliter la visualisation
Exemples
Concaténer des fichiers tp4 et tp8 dans tp
# cat tp4 tp8 > tp
Visualiser le fichier système cpuinfo
# cat/proc/cpuinfo
Visualiser le fichier système meminfo, et signification de
celui-ci
# cat /proc/meminfo
|
Valeur
|
Exemple
|
Signification
|
|
MemTotal
|
1075896 kB
|
quantité de mémoire vive utilisable
|
|
MemFree
|
614644 kB
|
quantité de mémoire vive actuellement non
allouée
|
|
Buffers
|
43956
kB
|
quantité de mémoire vive actuellement
allouée dans des buffers
|
|
Cached
|
148656 kB
|
quantité de mémoire actuellement utilisée
en tant que cache (par exemple, des caches pour les transferts vers et depuis
le disque dur
|
|
SwapCached
|
87856 kB
|
quantité de mémoire actuellement sortie du
swap, mais dont une copie est toujours présente dedans
|
|
Active
|
340508 kB
|
quantité de mémoire vive récemment utilisée
|
|
Inactive
|
69036 kB
|
quantité de mémoire qui n'a pas été
utilisée depuis un certain temps (le noyau pioche d'abord dans ces pages s'il
a besoin de mémoire)
|
|
HighTotal (n1)
|
0 kB
|
quantité de mémoire vive présente dans la
zone ZONE_HIGHMEM
|
|
HighFree(n1)
|
0 kB
|
quantité de mémoire vive non utilisée et
présente dans la zone ZONE_HIGHMEM.
|
|
LowTotal(n1)
|
1075896 kB
|
quantité de mémoire vive présente dans le
zone ZONE_NORMAL
|
|
LowFree(n1)
|
614644 kB
|
quantité de mémoire vive non utilisée et
présente dans la zone ZONE_NORMAL
|
|
SwapTotal
|
1052216 kB
|
taille du swap
|
|
SwapFree
|
892544 kB
|
place disponible dans le swap
|
|
Dirty
|
584 kB
|
quantité de mémoire en attente d'être
écrite sur le disque
|
|
Writeback
|
0 kB
|
quantité de mémoire qui est actuellement en
train d'être écrite sur le disque
|
|
Mapped
|
220892 kB
|
quantité de mémoire allouée avec la
fonction mmap() à partir de fichiers ou de devices
|
|
Slab
|
31028 kB
|
quantité de mémoire utilisée au sein du
noyau, et allouée avec l'allocateur Slab, pour ses propres objets et
structures
|
|
CommitLimit
|
1590164 kB
|
|
|
Committed_AS
|
397692 kB
|
quantité maximale de mémoire utilisable
avant que le noyau ne commence à swapper
|
|
PageTables
|
7732 kB
|
quantité de mémoire utilisée en tant que
table de pages pour gérer la pagination
|
|
VmallocTotal
|
34359738367 kB
|
quantité totale de mémoire de l'espace
d'adressage virtuel du noyau
|
|
VmallocUsed
|
7064 kB
|
quantité de mémoire utilisée dans l'espace d'adressage
virtuel du noyau
|
|
VmallocChunk
|
34359731067 kB
|
plus grand bloc contigu de mémoire
virtuelle (et non physique) disponible dans l'espace d'adressage virtuel du
noyau
|
|
HugePages_Total
|
0
|
nombre de hugepage allouée. Une hugepage
est une page d'une grande taille, utilisée par des programmes qui ont des
besoins précis de mémoire
|
|
HugePages_Free
|
0
|
nombre de hugepage disponibles
|
|
HugePages_Rsvd
|
0
|
|
|
Hugepagesize
|
2048 kB
|
taille d'une hugepage
|
(n1) Sur
une architecture x86 32 bits, la mémoire physique est séparée en trois zones.
D'une part, la zone ZONE_DMA, qui correspond aux adresses physiques de 0
à 16 Mo. D'autre part, la zone ZONE_NORMAL qui va de 16 à 896 Mo. Et
enfin, la zone ZONE_HIGHMEM qui va de 896 à 4 Go (voire 64 Go avec
l'extension PAE)
Vérifions :
HighTotal
+ LowTotal = MemTotal
HighFree + LowFree = MemFree
Le répertoire /proc contient des fichiers dont le noyau de
votre système se sert pour envoyer des informations aux différents processus.
On dit que c'est un pseudo système de fichiers, car contrairement aux autres
répertoires, /proc est sauvegardé en mémoire et non sur votre disque dur
/proc contient une hiérarchie de fichiers spéciaux qui
représentent l'état actuel du noyau, la mémoire est donc l'endroit le plus
approprié pour le stockage de ces informations (puisqu'elle est aussi gérée par
le noyau). Cela permet aux applications ainsi qu'aux utilisateurs d'avoir un
œil sur le noyau du système.
Certains fichiers tels que /proc/interrupts, /proc/meminfo,
/proc/mounts et /proc/partitions fournissent un aperçu de l'environnement d'un
système à un moment donné. D'autres, tels que /proc/filesystems et le
répertoire /proc/sys/ fournissent des informations sur la configuration du
système
Vous pouvez trouver dans le répertoire /proc de nombreuses
informations relatives à la configuration matérielle du système et aux
processus en cours d'exécution
Certains fichiers situés dans l'arborescence du répertoire
/proc peuvent être manipulés par les utilisateurs ainsi que par les
applications afin de transmettre des changements de configuration au noyau, ce
qui est évidemment extrèmement dangereux pour la stabilité du système
Les sous-répertoires de /proc
Le répertoire /proc contient de nombreux fichiers. Nous
allons préciser ici le rôle de certains d'entre eux
|
apm
|
Ce fichier fournit des informations sur l'état du système de gestion
de la consommation d'énergie (APM) (pour Advanced Power Management) et est
utilisé par la commande apm. Ce fichier a peu d'intérêt pour les systèmes
n'utilisant pas de batterie comme source d'alimentation
|
|
cmdline
|
Concerne les informations sur les paramètres donnés au noyau lors de
la mise en route
|
|
cpuinfo
|
contient une collection d'informations sur le ou les processeurs de
la machine (modèle, famille, taille du cache, etc.)
|
|
devices
|
liste des différents périphériques présents classés par groupe
(caractère et bloc)
|
|
kcore
|
Ce fichier représente la mémoire physique du système. Grâce à ce
fichier et à une image du noyau non compressé, l'utilitaire gdb (acronyme de
Gnu DeBugger) peut être utilisé pour débugger le noyau. La taille de ce
fichier est égale à la mémoire physique plus 4 ko. Nous vous déconseillons
donc de tenter d'afficher ce fichier ou de l'imprimer et encore moins de le
modifier !
|
|
kmsg
|
Ce fichier est utilisé pour contenir des messages générés par le
noyau. Il faut avoir les privilèges root pour en lire le contenu. De plus, si
le système utilise syslog, le fichier n'est pas lisible, car un seul
programme à la fois est autorisé à le lire. Ne vous inquiétez donc pas si la
commande cat /proc/kmsg ne vous retourne rien
|
|
locks
|
Ce fichier affiche les fichiers actuellement verrouillés par le
noyau. Chaque verrouillage a sa propre ligne qui commence par un numéro
unique
|
|
meminfo
|
Ce fichier est l'un des plus utilisés, car il donne de nombreuses
informations sur la mémoire vive du système. Il contient des informations sur
la mémoire totale, utilisée, libre, etc. (mémoire réelle et swap). L'unité
utilisée est l'octet
|
|
modules
|
Ce fichier affiche une liste de tous les modules qui ont été chargés
dans le noyau. Son contenu varie en fonction de la configuration et de
l'utilisation du système
|
|
mounts
|
Renferme une liste brève de tous les montages utilisés par le système
|
|
swaps
|
Ce fichier indique l'espace swap et son utilisation
|
|
uptime
|
Ce fichier contient deux nombres, le temps écoulé depuis le démarrage
et le temps passé à ne rien faire (en secondes)
|
|
Version
|
Ce fichier contient les informations sur la version du noyau en cours
d'utilisation
|