Académique Documents
Professionnel Documents
Culture Documents
Linux 2
Linux 2
Présentation générale
Un système d'exploitation est un logiciel (ensemble de programmes) permettant à l’homme
d’exploiter les ressources matérielles logiciel et l’interface entre l’homme et la machine de
l’ordinateur.
Les rôles (fonctions) d’un système d’exploitation
On peut résumer les fonctions d'un OS (Operating System) en 3 grandes fonctions :
- Gestion des ressources matérielles : gestion du processeur, gestion des mémoires, gestion des
entrées/sorties, gestion des pilotes, etc.
- Gestion de l’interface homme-machine (IHM) : droits d’utilisation, commandes d’utilisation,
informations de diagnostic, etc.
- Gestion de l’édifice logiciel : installation des autres programmes et communication avec eux,
gestion des fichiers, exécution des programmes ou processus, etc.
Il existe des distributions Linux qui contiennent le noyau Linux, les outils GNU, plus un ensemble
de logiciels qu'elles ont choisi de supporter. Ces distributions sont généralement reparties autour
de 2 noyaux (Debian et Red-hat). On pourra distinguer par exemple les distributions tel que :
Mandriva, Red-Hat, Fedora, Debian, Gentoo, OpenSuse, Ubuntu, Kaela, etc.
Les utilisateurs
Le système identifie ses utilisateurs autorisés non seulement par leur « nom de login » mais aussi
et surtout pas leur identifiant, qui est simplement un nombre entier positif : l’UID (User IDentification).
C’est évidemment la combinaison du nom de login et du mot de passe associé qui permet au système
de « reconnaître » ses utilisateurs autorisés et de leur autoriser l’accès à cet UID.
- Lorsque vous êtes connectés au système, vous pouvez connaître votre UID en lançant une
fenêtre dite de terminal, et en y tapant la commande « echo $UID ».
- Les utilisateurs sont structurés en groupes : chaque utilisateur appartient à un groupe par
défaut (souvent le nom de l’équipe ou du service où il travaille).
- Un utilisateur possède également un répertoire où le système le place par défaut au moment
du « login », sauf exception l’utilisateur a tous les droits sur ce répertoire (créer des sous-
répertoires, y placer des fichiers de son choix, etc.). Il s’agit de la « home directory » de
l’utilisateur.
- Lorsque vous êtes connectés au système, vous pouvez connaître votre home directory avec la
commande « echo $HOME ». C’est généralement quelquechose du genre
/home/monEquipe/monLoginName.
- Enfin un utilisateur possède un processus d’accueil : c’est le processus qui est lancé par le
système au moment où il se connecte avec succès (nom de login et mot de passe reconnus).
C’est aussi celui qui est lancé lorsque l’utilisateur ouvre une fenêtre de « terminal ». Ce genre
de processus est appelé un shell. Il s’agit généralement de /bin/bash et ce processus attend
tout simplement que l’utilisateur tape une commande (donc un nom de fichier) pour
l’exécuter.
Lorsque l’utilisateur bénéficie d’un environnement graphique (c’est le cas en général), c’est en
réalité un simple shell qui est exécuté au moment du login et ce dernier lance immédiatement les
processus de l’environnement graphique au lieu d’attendre que l’utilisateur tape une commande.
Le fichier /etc/passwd contient la liste des utilisateurs reconnus par le système (dont root lui-
même), à raison de un par ligne, et il contient les informations suivantes : nom de login, mot de passe
(encrypté!), UID, GID (entier identifiant du groupe par défaut), vrai nom, home directory et login
shell.
Les fichiers
Les fichiers sont les lieux de mémorisation durable des données de tout le système. Ils sont
généralement placés physiquement sur un disque dur ou sur tout autre dispositif de grande capacité
qui ne perd pas ses données lorsque le courant est éteint (disque SSD, mémoire flash, clef USB,
CDROM, ...).
/
home bin lib boot dev etc usr
var
/ / / / / / / /
GB3GB5 ... ... ... ...
GB4 bash ls ... ...
passwd
/ / / rm fstab ...
/
pierre paul
jacques ...
/ / /
... ... ...
Répertoire description
/ Répertoire "racine", point d'entrée du système de fichiers
/boot Répertoire contenant le noyau Linux et l'amorceur
/bin Répertoire contenant les exécutables de base, comme par exemple cp, mv, ls, etc.
Répertoire contenant des fichiers spéciaux nommés devices qui permettent le lien avec les
/dev
périphériques de la machine
/etc Répertoire contenant les fichiers de configuration du système
/home Répertoire contenant les fichiers personnels des utilisateurs (un sous-répertoire par utilisateur)
/lib Répertoire contenant les librairies et les modules du noyau (/lib/modules)
/media Répertoire contenant les « points de montage » des médias usuels : cd, dvd, disquette, clef usb
/root Répertoire personnel de l'administrateur
/sbin Répertoire contenant les exécutables destinés à l'administration du système
/tmp Répertoire contenant des fichiers temporaires utilisés par certains programmes
Répertoire contenant les exécutables des programmes (/usr/bin et /usr/sbin), la documentation
/usr
(/usr/doc), et les programmes pour le serveur graphique (/usr/X11R6).
Répertoire contenant les fichiers qui servent à la maintenance du système (les fichiers de journaux
/var
notamment dans /var/log)
Un fichier (quel que soit son type) est donc caractérisé par son numéro de i-node mais il peut être par
conséquent également désigné sans ambiguité par une adresse qui est le chemin suivi depuis la racine
de l’arbre jusqu’à lui. Les noms portés par les liens des répertoires sont séparés par des « / » (exemple
: /home/etudiants/bio/paul).
Lorsque l’on « déplace un fichier », avec le gestionnaire de fichier ou avec la commande « mv ancien
nouveau », on ne déplace rien en réalité : le fichier reste à sa place sur le disque dur et ne change pas
de numéro de i-node; ce qui change, c’est l’arborescence, donc seulement les contenus des fichiers
de type répertoire qui la constituent.
Il en résulte que la commande mv prend un temps très court quelle que soit la taille du fichier.
Lorsqu’un processus tourne, en particulier lorsqu’un shell tourne, il possède un répertoire de travail.
Ceci évite de répéter tout le chemin depuis la racine car l’expérience montre que la plupart des
processus utilisent ou modifient des fichiers qui sont presque tous dans le même répertoire. Ainsi,
pour un processus (dont le shell) on peut définir une adresse de fichier de deux façons :
- par son adresse absolue, c’est-à-dire le chemin depuis la racine, donc une adresse qui
commence par un « / »
- ou par son adresse relative, c’est-à-dire le chemin depuis le répertoire de travail du processus;
une adresse relative ne commence jamais par un « / ».
C’est donc par son premier caractère qu’on distingue une adresse relative d’une adresse absolue.
Lorsque vous êtes sous un shell, la commande pwd (print working directory) vous fournit le répertoire
de travail dans lequel vous êtes. La commande cd (change directory) vous permet de changer de
répertoire de travail. Enfin la commande ls (list) fournit la liste des liens d’un répertoire (par défaut
son répertoire de travail).
$ pwd
/home/bioinfo/bernot
$ cd bin
$ pwd
/home/bioinfo/bernot/bin
$ ls
i686 shells x86_64
$ ls -a
. .. i686 shells x86_64
$ ls i686 x86_64 i686:
RNAplot hsim wi wx wxd
x86_64:
wi wx wxd
$ ls /usr
X11R6 etc include lib64 local sbin src uclibc bin games lib libexec man share tmp
Commande pwd : Utilisez la commande pwd pour trouver le chemin du répertoire de travail (dossier)
dans lequel vous êtes actuellement. La commande retournera un chemin absolu (complet), qui est en fait
un chemin de tous les répertoires qui commence par une barre oblique (/).
Commande cd : Pour naviguer dans les fichiers et répertoires de Linux, utilisez la commande cd. Elle
nécessite soit le chemin d’accès complet, soit le nom du répertoire, selon le répertoire de travail dans lequel
vous vous trouvez.
Il existe quelques raccourcis pour vous aider à naviguer rapidement :
- cd .. (avec deux points) pour se déplacer d’un répertoire vers le haut
- cd pour aller directement au dossier principal (home)
- cd- (avec un tiret) pour passer à votre répertoire précédent
Par ailleurs, le Shell de Linux est sensible à la casse. Vous devez donc taper les noms des répertoires
exactement comme ils sont.
Commande ls : La commande ls est utilisée pour visualiser le contenu d’un répertoire. Par
défaut, cette commande affichera le contenu de votre répertoire de travail actuel.
Si vous voulez voir le contenu d’autres répertoires, tapez ls et ensuite le chemin d’accès du
répertoire. Par exemple, tapez ls /home/utilisateur/Documents pour voir le contenu
de Documents.
Il existe des variantes que vous pouvez utiliser avec la commande ls :
• ls -al listera les fichiers et les répertoires avec des informations détaillées comme les
autorisations, la taille, le propriétaire, etc.
Commande cat : cat (abréviation de concatenate) est l’une des commandes Linux les plus
fréquemment utilisées.
La commande cat et les redirections La commande cat est une commande multi-usage qui permet
d’afficher, de créer, de copier et de concaténer des fichiers. Elle utilise pleinement les mécanismes
de redirection. Elle lit l’entrée standard si aucun fichier n’est spécifié. Ce qui est lu est affiché sur
la sortie standard.
>
Le fichier f1 est créé par saisie de texte au clavier, jusqu’à la saisie en début de ligne d’une
chaîne de caractères prédéfinie (EOT dans ce cas). La chaîne de caractères <<texte redirige
l’entrée standard jusqu’à apparition du mot texte.
Cette formulation est très employée pour la création d’un fichier dans un fichier de
commandes (script).
Elle est utilisée pour lister le contenu d’un fichier sur le résultat standard (sdout). Pour
exécuter cette commande, tapez cat suivi du nom du fichier et de son extension. Par exemple
: cat fichier.txt.
Commande cp : Utilisez la commande cp pour copier les fichiers du répertoire actuel dans un
autre répertoire. Par exemple, la commande cp scenery.jpg
/home/utilisateur/Photos créera une copie de scenery.jpg (de votre répertoire actuel) dans
le répertoire Photos.
Commande mv : L’utilisation principale de la commande mv est de déplacer des fichiers, bien
qu’elle puisse également être utilisée pour renommer des fichiers.
Les arguments de mv sont similaires à ceux de la commande cp. Vous devez taper mv, le nom
du fichier et le répertoire de destination. Par exemple :
mv fichier.txt /home/utilisateur/Documents.
Pour renommer les fichiers, la commande Linux est mv ancien_nom.ext nouveau_nom.ext
Commande mkdir : Utilisez la commande mkdir pour créer un nouveau répertoire – si vous
tapez mkdir Music, cela créera un répertoire appelé Music.
Il existe également des commandes mkdir supplémentaires :
- Pour générer un nouveau répertoire à l’intérieur d’un autre répertoire, utilisez cette
commande de base de Linux mkdir Music/Nouveau
- utiliser l’option p (parents) pour créer un répertoire entre deux répertoires existants. Par
exemple, mkdir -p Musique/2020/Nouveau créera le nouveau répertoire « 2020« .
Commande rmdir : Si vous avez besoin de supprimer un répertoire, utilisez la
commande rmdir. Cependant, rmdir ne vous permet de supprimer que les répertoires vides.
Commande rm : La commande rm est utilisée pour supprimer les répertoires et leur contenu.
Si vous voulez seulement supprimer le répertoire – comme alternative à rmdir – utilisez rm -
r.
Note : Soyez très prudent avec cette commande et vérifiez à nouveau dans quel répertoire
vous vous trouvez. Cela effacera tout et il n’y aura pas d’annulation.
Commande touch : La commande touch vous permet de créer un nouveau fichier vierge via la
ligne de commande Linux. Par exemple, entrez
touch /home/username/Documents/Web.html pour créer un fichier HTML
intitulé Web dans le répertoire Documents.
Commande locate : Vous pouvez utiliser cette commande pour localiser un fichier, tout comme
la commande de recherche dans Windows. De plus, l’utilisation de l’argument -i avec cette
commande la rendra insensible à la casse, ce qui vous permettra de rechercher un fichier même
si vous ne vous souvenez pas de son nom exact. Pour rechercher un fichier qui contient deux
mots ou plus, utilisez un astérisque (*). Par exemple, la commande « locate -i school*note »
permettra de rechercher tout fichier contenant les mots « school » et « note« , qu’ils soient en
majuscules ou en minuscules.
Commande find : Comme la commande locate, l’utilisation de find permet également de
rechercher des fichiers et des répertoires. La différence est que vous utilisez la
commande find pour localiser des fichiers dans un répertoire donné.
Par exemple, la commande find /home/ -name notes.txt permet de rechercher un fichier
appelé notes.txt dans le répertoire home et ses sous-répertoires.
Il existe d’autres variations dans l’utilisation de find :
• Pour trouver des fichiers dans le répertoire actuel, utilisez, find . -name notes.txt
Commande pwd : Utilisez la commande pwd pour trouver le chemin du répertoire de travail (dossier)
dans lequel vous êtes actuellement. La commande retournera un chemin absolu (complet), qui est en fait
un chemin de tous les répertoires qui commence par une barre oblique (/).
Commande cd : Pour naviguer dans les fichiers et répertoires de Linux, utilisez la commande cd. Elle
nécessite soit le chemin d’accès complet, soit le nom du répertoire, selon le répertoire de travail dans lequel
vous vous trouvez.
Il existe quelques raccourcis pour vous aider à naviguer rapidement :
- cd .. (avec deux points) pour se déplacer d’un répertoire vers le haut
- cd pour aller directement au dossier principal (home)
- cd- (avec un tiret) pour passer à votre répertoire précédent
Par ailleurs, le Shell de Linux est sensible à la casse. Vous devez donc taper les noms des répertoires
exactement comme ils sont.
Commande ls : La commande ls est utilisée pour visualiser le contenu d’un répertoire. Par
défaut, cette commande affichera le contenu de votre répertoire de travail actuel.
Si vous voulez voir le contenu d’autres répertoires, tapez ls et ensuite le chemin d’accès du
répertoire. Par exemple, tapez ls /home/utilisateur/Documents pour voir le contenu
de Documents.
Il existe des variantes que vous pouvez utiliser avec la commande ls :
• ls -al listera les fichiers et les répertoires avec des informations détaillées comme les
autorisations, la taille, le propriétaire, etc.
Commande cat : cat (abréviation de concatenate) est l’une des commandes Linux les plus
fréquemment utilisées.
La commande cat et les redirections La commande cat est une commande multi-usage qui permet
d’afficher, de créer, de copier et de concaténer des fichiers. Elle utilise pleinement les mécanismes
de redirection. Elle lit l’entrée standard si aucun fichier n’est spécifié. Ce qui est lu est affiché sur
la sortie standard.
>
Le fichier f1 est créé par saisie de texte au clavier, jusqu’à la saisie en début de ligne d’une
chaîne de caractères prédéfinie (EOT dans ce cas). La chaîne de caractères <<texte redirige
l’entrée standard jusqu’à apparition du mot texte.
Cette formulation est très employée pour la création d’un fichier dans un fichier de
commandes (script).
Elle est utilisée pour lister le contenu d’un fichier sur le résultat standard (sdout). Pour
exécuter cette commande, tapez cat suivi du nom du fichier et de son extension. Par exemple
: cat fichier.txt.
Commande cp : Utilisez la commande cp pour copier les fichiers du répertoire actuel dans un
autre répertoire. Par exemple, la commande cp scenery.jpg
/home/utilisateur/Photos créera une copie de scenery.jpg (de votre répertoire actuel) dans
le répertoire Photos.
Commande mv : L’utilisation principale de la commande mv est de déplacer des fichiers, bien
qu’elle puisse également être utilisée pour renommer des fichiers.
Les arguments de mv sont similaires à ceux de la commande cp. Vous devez taper mv, le nom
du fichier et le répertoire de destination. Par exemple :
mv fichier.txt /home/utilisateur/Documents.
Pour renommer les fichiers, la commande Linux est mv ancien_nom.ext nouveau_nom.ext
Commande mkdir : Utilisez la commande mkdir pour créer un nouveau répertoire – si vous
tapez mkdir Music, cela créera un répertoire appelé Music.
Il existe également des commandes mkdir supplémentaires :
- Pour générer un nouveau répertoire à l’intérieur d’un autre répertoire, utilisez cette
commande de base de Linux mkdir Music/Nouveau
- utiliser l’option p (parents) pour créer un répertoire entre deux répertoires existants. Par
exemple, mkdir -p Musique/2020/Nouveau créera le nouveau répertoire « 2020« .
Commande rmdir : Si vous avez besoin de supprimer un répertoire, utilisez la
commande rmdir. Cependant, rmdir ne vous permet de supprimer que les répertoires vides.
Commande rm : La commande rm est utilisée pour supprimer les répertoires et leur contenu.
Si vous voulez seulement supprimer le répertoire – comme alternative à rmdir – utilisez rm -
r.
Note : Soyez très prudent avec cette commande et vérifiez à nouveau dans quel répertoire
vous vous trouvez. Cela effacera tout et il n’y aura pas d’annulation.
Commande touch : La commande touch vous permet de créer un nouveau fichier vierge via la
ligne de commande Linux. Par exemple, entrez
touch /home/username/Documents/Web.html pour créer un fichier HTML
intitulé Web dans le répertoire Documents.
Commande locate : Vous pouvez utiliser cette commande pour localiser un fichier, tout comme
la commande de recherche dans Windows. De plus, l’utilisation de l’argument -i avec cette
commande la rendra insensible à la casse, ce qui vous permettra de rechercher un fichier même
si vous ne vous souvenez pas de son nom exact. Pour rechercher un fichier qui contient deux
mots ou plus, utilisez un astérisque (*). Par exemple, la commande « locate -i school*note »
permettra de rechercher tout fichier contenant les mots « school » et « note« , qu’ils soient en
majuscules ou en minuscules.
Commande find : Comme la commande locate, l’utilisation de find permet également de
rechercher des fichiers et des répertoires. La différence est que vous utilisez la
commande find pour localiser des fichiers dans un répertoire donné.
Par exemple, la commande find /home/ -name notes.txt permet de rechercher un fichier
appelé notes.txt dans le répertoire home et ses sous-répertoires.
Il existe d’autres variations dans l’utilisation de find :
• Pour trouver des fichiers dans le répertoire actuel, utilisez, find . -name notes.txt
grep command : Une autre commande de base de Linux qui est sans aucun doute utile pour
une utilisation quotidienne est grep. Elle vous permet de rechercher tout le texte d’un fichier
donné.
Par exemple, grep blue notepad.txt recherchera le mot blue dans le fichier notepad. Les
lignes qui contiennent le mot recherché s’afficheront entièrement.
Commande sudo : Abréviation de «SuperUser » Donc, cette commande vous permet
d’effectuer des tâches qui nécessitent des autorisations administratives ou de root.
Cependant, il n’est pas conseillé d’utiliser cette commande pour un usage quotidien car une
erreur pourrait facilement se produire si vous avez fait quelque chose d’incorrect.
Commande df : Utilisez la commande df pour obtenir un rapport sur l’utilisation de l’espace
disque du système, indiquée en pourcentage et en Ko. Si vous voulez voir le rapport en
mégaoctets, tapez df -m.
Commande du : Si vous voulez vérifier l’espace occupé par un fichier ou un répertoire, la
commande du (Disk Usage) est la réponse. Cependant, le résumé de l’utilisation du disque
indiquera les numéros de bloc du disque au lieu du format habituel de la taille. Si vous voulez
le voir en octets, kilo-octets et méga-octets, ajoutez l’argument -h à la ligne de commande.
Commande head : La commande head est utilisée pour visualiser les premières lignes de
n’importe quel fichier texte. Par défaut, elle affichera les dix premières lignes, mais vous
pouvez modifier ce nombre à votre convenance. Par exemple, si vous ne voulez afficher que
les cinq premières lignes, tapez head -n 5 nomdefichier.ext.
Commande tail : Celle-ci a une fonction similaire à celle de la commande head, mais au lieu
d’afficher les premières lignes, la commande tail affichera les dix dernières lignes d’un fichier
texte. Par exemple, tail -n nomdefichier.ext.
Commande diff : Abréviation de différence, la commande diff compare le contenu de deux
fichiers ligne par ligne. Après avoir analysé les fichiers, elle affiche les lignes qui ne
correspondent pas. Les programmeurs utilisent souvent cette commande lorsqu’ils ont
besoin d’apporter des modifications au programme au lieu de réécrire l’intégralité du code
source.
La forme la plus simple de cette commande est diff fichier1.ext fichier2.ext
Commande tar : La commande tar est la commande la plus utilisée pour archiver plusieurs
fichiers dans un tarball – un format de fichier Linux commun qui est similaire au format zip,
avec la compression étant optionnelle.
Cette commande est assez complexe et comporte une longue liste de fonctions telles que
l’ajout de nouveaux fichiers dans une archive existante, la liste du contenu d’une archive,
l’extraction du contenu d’une archive, et bien d’autres encore. Consultez quelques exemples
pratiques pour en savoir plus sur les autres fonctions.
Commande chmod : Chmod est une autre commande Linux, utilisée pour modifier les
permissions de lecture, d’écriture et d’exécution des fichiers et des répertoires. Comme cette
commande est assez compliquée, vous pouvez lire le tutoriel complet afin de l’exécuter
correctement.
Commande chown : Sous Linux, tous les fichiers sont la propriété d’un utilisateur spécifique.
La commande chown vous permet de changer ou de transférer la propriété d’un fichier à un
utilisateur spécifique. Par exemple, chown linuxuser2 fichier.ext fera de linuxuser2 le
propriétaire du fichier.ext.
Commande jobs : La commande jobs affichera tous les jobs actuels avec leur statut. Un job
est essentiellement un processus qui est lancé par le shell.
➔ Commande wget
La ligne de commande Linux est super utile – vous pouvez même télécharger des fichiers sur
Internet à l’aide de la commande wget. Pour ce faire, il suffit de taper wget suivi du lien de
téléchargement.
➔ Commande uname
La commande uname, abréviation de Unix Name, imprimera des informations détaillées sur
votre système Linux comme le nom de la machine, le système d’exploitation, le noyau, etc.
➔ Commande top
Comme un terminal équivalent au gestionnaire de tâches dans Windows, la
commande top affichera une liste des processus qui sont en cours d’exécution et la quantité
de CPU utilisée par chaque processus. Il est très utile de surveiller l’utilisation des ressources
du système, en particulier de savoir quel processus doit être arrêté en cas de
surconsommation de ressources.
➔ Commande history
Lorsque vous utilisez Linux depuis un certain temps, vous remarquerez rapidement que vous
pouvez exécuter des centaines de commandes chaque jour. Ainsi, l’exécution de la
commande history est particulièrement utile si vous voulez revoir les commandes que vous
avez entrées auparavant.
➔ Commande man
Confus quant à la fonction de certaines commandes Linux ? Ne vous inquiétez pas, vous
pouvez facilement apprendre à les utiliser directement depuis le shell de Linux en utilisant la
commande man. Par exemple, en entrant la commande man tail, vous verrez les instructions
manuelles de la commande tail.
➔ Commande echo
Cette commande est utilisée pour déplacer certaines données dans un fichier. Par exemple,
si vous voulez ajouter le texte « Bonjour, je suis John » dans un fichier appelé nom.txt, vous
devez taper echo Bonjour, je suis John >> nom.txt
➔ Commande hostname
Si vous voulez connaître le nom de votre hôte/réseau, il vous suffit de taper hostname. En
ajoutant un -I à la fin, vous obtiendrez l’adresse IP de votre réseau.
➔ Commande useradd, userdel
Puisque Linux est un système multi-utilisateur, cela signifie que plusieurs personnes peuvent
interagir avec le même système en même temps. useradd est utilisé pour créer un nouvel
utilisateur, tandis que passwd est l’ajout d’un mot de passe au compte de cet utilisateur.
Pour ajouter une nouvelle personne nommée John, tapez useradd John et ensuite pour
ajouter son mot de passe, tapez passwd 123456789.
La suppression d’un utilisateur est très similaire à l’ajout d’un nouvel utilisateur. Pour
supprimer le compte d’un utilisateur, tapez, userdel NomUtilisateur
➔ Conseils et astuces
Utilisez la commande clear pour nettoyer le terminal s’il est encombré par trop de
commandes Linux déjà effectuées.
Essayez le bouton TAB pour remplir automatiquement ce que vous tapez. Par exemple, si
vous avez besoin de taper Documents, commencez à taper une commande (disons cd Docu,
puis appuyez sur la touche TAB) et le terminal remplira le reste, ce qui vous donnera cd
Documents.
Ctrl+C et Ctrl+Z sont utilisés pour arrêter toute commande qui fonctionne actuellement.
Ctrl+C arrêtera et terminera la commande, tandis que Ctrl+Z mettra simplement la
commande en pause.
Si vous bloquez accidentellement votre terminal en utilisant Ctrl+S, il suffit de le débloquer
avec Ctrl+Q.
Ctrl+A vous amène au début de la ligne tandis que Ctrl+E vous amène à la fin.
Vous pouvez exécuter plusieurs commandes en une seule en utilisant « ; » pour les séparer.
Par exemple, Commande1; Commande2; Commande3. Ou utilisez && si vous souhaitez que
la commande suivante ne soit exécutée que lorsque la première a réussi .
On obtient alors, affichée à l’écran, l’invite “ login : ” Le système Linux étant un système multi–utilisateur et
multitâche, plusieurs personnes sont connectées simultanément et peuvent travailler sans interférer les
unes avec les autres. Cela nécessite un système de protection des fichiers propre à chaque utilisateur. Ainsi
pour qu’un utilisateur puisse travailler avec le système Linux, il doit établir une connexion (on dit aussi ouvrir
une session).
Lorsque vous avez installé Linux, vous avez eu l’opportunité d’indiquer si vous vouliez utiliser un écran
graphique (connexion en mode graphique) plutôt qu’une console (connexion en mode texte) pour ouvrir
une session. Bien que le mode texte soit utilisé tout au long de cet ouvrage, excepté au chapitre 16, nous
allons présenter les deux méthodes de connexion.
2- Mot de passe
Lors d’une première connexion, il est fortement conseillé à l’utilisateur de s’attri buer un mot de passe. Ce
mot de passe sera chiffré (le chiffrage est purement logi ciel et non inversible). Il sera impossible de le retrouver
à partir du mot chiffré, même pour le super–utilisateur (l’administrateur de la machine). Si l’utilisateur oublie
son mot de passe, l’administrateur ne peut que le détruire pour lui permettre d’en définir un nouveau. Un
utilisateur peut à tout moment changer son mot de passe, ou s’en attribuer un par la commande passwd. Lors
du changement, il faut fournir l’ancien mot de passe.
Par la suite, lors des diverses connexions de l’utilisateur, la lecture du mot de passe se fera sans écho.
Souvent seuls les huit premiers caractères du mot de passe sont pris en compte. L’administrateur peut
imposer des contraintes sur le mot de passe (six caractères minimum, un caractère non alphabétique,…).
L’administrateur de la machine pourra de plus installer des programmes qui teste ront vos mots de passe
afin d’interdire par exemple les mots du dictionnaire, les prénoms, les mots identiques à votre login, etc. Ce
point de sécurisation de votre mot de passe sera vu au chapitre 15. Lorsque le nom et le mot de passe sont
corrects, login récupère dans le fichier /etc/passwd toutes les informations utiles pour cet utilisateur.
Un groupe d’utilisateurs rassemble un certain nombre d’utilisateurs pouvant facilement partager des
fichiers. Ce groupe est répertorié dans un fichier (/etc/group) qui est constitué par :
- nom du groupe,
- un champ vide ou contenant un caractère x ou *
- numéro du groupe (GID = group identifier),
- [ liste des utilisateurs membres du groupe ].
Les notions d’UID et de GID sont importantes pour la protection des fichiers (il ne faut pas les changer
inconsidérément). Un utilisateur a un groupe principal de rattachement et peut appartenir à plusieurs
autres groupes.
3- Manipuler les utilisateurs
Maintenant que l'on sait où sont configurés les utilisateurs, on est tenté de modifier le
fichier /etc/passwd pour créer ou supprimer des utilisateurs. En réalité ce n'est pas recommandé, on préfère
laisser le système s'occuper de cela pour nous et plutôt utiliser des commandes adaptées.
a) Créer un utilisateur
Pour créer un utilisateur, on utilise tout simplement la commande adduser. Attention, c'est une
commande qui nécessite les privilèges root
C'est une commande interactive, qui demande de rentrer différentes informations sur l'utilisateur.
Hormis le mot de passe qui est obligatoire, les autres informations sont celles qui se trouveront
dans la description de l'utilisateur, et qui sont donc facultatives. Pour le reste, tout s'est fait
automatiquement : la création de l'utilisateur, du groupe associé, du dossier de l'utilisateur, etc.
La commande a créé la ligne suivante dans le fichier /etc/passwd.
b) Supprimer un utilisateur
Si l'on souhaite supprimer l'utilisateur on utilise la commande suivante.
➔ sudo deluser --remove-home sarah
L'option --remove-home n'est pas obligatoire et permet, comme son nom l'indique, de supprimer
aussi le répertoire de l'utilisateur en question. Ce n'est pas le cas par défaut, par mesure de
sécurité.
c) Changer d'utilisateur
Pour vous connecter avec votre nouvel utilisateur, vous pouvez bien entendu vous connecter avec son nom
et mot de passe au démarrage de la session, mais vous pouvez aussi changer d'utilisateur directement dans
votre terminal.
➔ su sarah
Les utilisateurs sont configurés dans le fichier /etc/passwd, mais il est possible et préférable
d'utiliser les commandes adduser et deluser pour les manipuler.
Concernant les groupes, c'est le fichier /etc/group qui est en charge de gérer leur configuration. Si
on observe son contenu on constate qu'il a un format proche de /etc/passwd. Il contient en fait la
liste des groupes de la machine, avec un format proche (ici l'aperçu qui est donné est
volontairement tronqué, il y a sans doute plus de lignes dans votre fichier). Isolons la dernière ligne
pour l'étudier. Les informations sont, ici aussi, séparées par des ":". Dans l'ordre nous avons :
On peut donc lire la ligne suivante de cette manière : le groupe audio a pour GID 29 et les
utilisateurs pulse et Franck sont présents dans ce groupe.
On voit que la commande a créé un groupe nommé enfants sur la machine. Le fichier /etc/group a
été modifié en conséquence.
Pour le moment notre groupe est complètement vide. Pour ajouter des utilisateurs à un groupe,
on peut utiliser la commande usermod. C'est une commande qui permet de modifier de nombreux
attributs d'un utilisateur
L'utilisateur roxane fait désormais partie du groupe enfants. L'option G permet d'indiquer qu'on
modifie les groupes de l'utilisateur, et a permet d'append (ajouter) un groupe. On peut le vérifier dans le
fichier /etc/group.
6- Méthode Supprimer un groupe
La commande ls -al affiche tous les fichiers et dossiers d'un répertoire, avec leurs propriétaires et
leurs droits.
• Le premier caractère indique que l'élément est un dossier (d) ou un fichier (-).
• Les trois caractères suivants indiquent les droits de l'utilisateur propriétaire (ici stc a les
droits rwx : lire, écrire, parcourir)
• Les trois caractères suivants indiquent les droits des utilisateur membres du groupe
propriétaire (ici les membres de friends ont les droits r-x : lire et parcourir, mais pas écrire)
• Les trois caractères suivants indiquent les droits des autres utilisateurs (ici --- : aucun droit)
• Le nombre suivant indique le nombre de sous-dossiers dans le dossier listé (ici .dir a 3 sous-
dossiers, dont . et .. donc un seul vrai sous-dossier)
La commande chmod permet de modifier l'attribution des droits d'un fichier ou d'un dossier.
Pour cela on ressort d'un côté nos trois types d'utilisateurs : le user propriétaire u,
le group propriétaire g et les others o, et d'un autre côté les trois droits read, write et execute.
On donne a chmod les modifications que l'on souhaite apporter puis la liste des fichiers/dossiers
auquel l'appliquer. Une modification de droit est décrite
par [usertype][action][permissions] où :
• permissions est r w ou x
Exemple
- chmod 640 file donne les droits rw (4+2) à user, r (4) à group et aucun droit (0) à others.
- chmod 775 file donne les droits rwx (4+2+1) à user et group et rx (4+1) à others