Google
 

Les bases d'UNIX et de Linux

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

L’origine d'UNIX

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

Les avantages d’Unix

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

Introduction au système de fichiers UNIX

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

Les droits d'accès sur UNIX

Les utilisateurs

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

Les groupes

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

Droits sur les fichiers et dossiers

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

Les droits étendus

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

Le droit SGID

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

Les principales commandes UNIX

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

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

ls

·         É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

cd

  • É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/

cp

  • É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

rmdir

  • É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

df

  • 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

fdisk

  • É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
    • sudo fdisk -l

find

  • É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"

avancé

  • 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

grep

  • É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

cat

  • É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.

less

  • É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.

Les commandes relatives aux montages de périphériques

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

Les commandes relatives à la gestion des utilisateurs

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 :

passwd

  • 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

groups

  • 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.

adduser

  • 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.

deluser

  • 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

usermod

  • 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
  • Exemples d'utilisation :
    • 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

chown

  • É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

chgrp

  • 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

clear

  • 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

free

  • 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

ps

  • É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

kill / killall

  • É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 :
    • lspci

lsusb

  • 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 :
    • lsusb

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
    • -: 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
    • : 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
    • ping 10.3.10.11

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

L’éditeur VI

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

Supervision du système

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

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

 

Linux

Non, ce n'est pas un pingouin, mais un manchot

©2011 - Borgeaud.com - Tous droits réservés - e-mail