Aller au contenu

Certification Linux LPI/Administrateur système débutant/Examen 101/GNU et commandes Unix/Unix et Linux

Leçons de niveau 14
Une page de Wikiversité, la communauté pédagogique libre.
Début de la boite de navigation du chapitre
Unix et Linux
Icône de la faculté
Chapitre no 1
Leçon : GNU et commandes Unix
Retour auSommaire
Chap. suiv. :Travailler en ligne de commande
fin de la boite de navigation du chapitre
En raison de limitations techniques, la typographie souhaitable du titre, « GNU et commandes Unix : Unix et Linux
Certification Linux LPI/Administrateur système débutant/Examen 101/GNU et commandes Unix/Unix et Linux
 », n'a pu être restituée correctement ci-dessus.

Unix est l'OS original d'Internet. NFS, TCP/IP, RPC… ont été développés sur et pour Unix. Unix est en fait une spécification de ce que doit être ce genre d'OS. Il en existe plusieurs implémentations. Citons pour l'exemple AIX d'IBM, HP-UX d'HP, Solaris de Sun, ou les *BSD. Linux est une implémentation Unix entièrement réécrit par Linus Torvalds et son équipe de développeurs volontaires répartis sur l’ensemble de la planète et mis en contact grâce à Internet. Unix comme Linux sont : Portable, multi-utilisateurs, multi-tâches, rendu indépendants des périphériques d'entrées et de sorties, capables de gérer les ressources matérielles, d'une grande performance, sécurisés, équipé d'une ligne de commande puissante et d'une interface graphique.

Linux est compatible avec la norme POSIX et supporte d'autres API standard comme BSD ou SVR4. Linux possède toutes les fonctionnalités que l’on peut attendre d’un Unix moderne, dont le multi-tâche, multi-utilisateurs, mémoire virtuelle, librairies partagées, chargement à la demande, shared copy-on-write executables, gestion propre de la mémoire et utilisation de TCP/IP pour le réseau.

De plus en plus d'entreprises sélectionnent Linux pour ses performances, son cout faible et l'absence de royalties.

Unix est l'OS d'origine d'Internet. Il a été développé en 1970 aux laboratoires A&T Bell Labs. Il a ensuite été distribué gratuitement notamment aux gouvernements et aux universités. Divers organismes en supporte différentes distributions :

  • System V
  • BSD
  • SCO

La plupart des Unix sont soumis à des licences de copyright.

Linux a été diffusé pour la première fois par Linus Torvalds en 1991. Son modèle de développement est libéré du droit d'auteur. Il adopte la licence GPL créée par Richard Stallman quelques années auparavant. Richard Stallman est également à l'origine du projet GNU, sans lequel Linux ne servirait pas à grand chose. Certaines personnes préfèrent ainsi parler de système GNU/Linux. Linux implémente la plupart des commandes system V, BSD et Unix.

Se logger et se délogger

[modifier | modifier le wikicode]

Entrer dans une session est le premier pas pour accéder à un système Linux. Vous avez besoin d’un identifiant (ID) et d’un mot de passe pour pouvoir commencer à utiliser le système. L'identifiant "root" est l'identifiant du super-utilisateur qui a tous les privilèges et n'est normalement assigné qu’à l'administrateur du système. Lorsque l’on a réussi à entrer dans le système, quelques variables d'environnement vont être initialisées et le shell assigné au compte correspondant à l'identifiant sera lancé.

Exemples de variables initialisées au loggin: $HOME, $SHELL, $PATH, et d'autres. En modifiant le fichier /etc/login.defs, l'administrateur peut régler quelques paramètres du logging et les variables pour tous les utilisateurs. Comme par exemple:

UID_MIN 500
UID_MAX 60000
UMASK 022
ENV_PATH /usr/local/bin:/usr/bin:/bin

Pour sortir, utilisez les commandes exit ou logout.

Personne ne peut voir votre mot de passe, même l'administrateur. Pour changer votre mot de passe d’utilisateur ou de groupe, utilisez passwd.

passwd [options]

Options courantes: -l, -u : bloque et débloque un compte. -g [| r]: Utilisé pour les groupes. -g défini un mot de passe pour le groupe, et -r le remplace. -x|n : Nombre de jours maximum et minimum pendant lequel un mot de passe reste valide.

En règle générale, un mot de passe doit:

  • avoir une longueur minimale.
  • ne contenir aucun mot du langage courant.
  • Contenir des caractères alphanumériques
  • Contenir un mélange de lettres majuscules et minuscules.

Information sur les utilisateurs

[modifier | modifier le wikicode]

Une ligne est définie dans le fichier /etc/passwd pour chaque compte utilisateur. Le mot de passe crypté est stocké dans le fichier /etc/shadow. Le format de /etc/passwd est:

Root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/bin/bash
daemon:x:2:2:Daemon:/sbin:/bin/bash
yann:x:500:100:Yann Forget:/home/yann:/bin/bash

Le champs x est l'ancienne localisation pour le mot de passe.

Le format de /etc/shadow est:

root:IMXweyiV816gg:11996:0:10000::::
bin:!*:8902:0:10000::::
daemon:*:8902:0:10000::::
yann:GoIM8j1S.IuTY:11996:0:99999:7:::

L'* pour le mot de passe crypté veut dire qu'aucun mot de passe n'a encore été défini. Le ! devant le mot de passe crypté veut dire que le compte est bloqué.

Information sur les groupes

[modifier | modifier le wikicode]

Il y a une ligne dans le fichier /etc/group pour chaque groupe d’utilisateurs. Le mot de passe crypté est stocké dans /etc/gshadow. Le format de /etc/group est:

root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:
video:x:33:yann

Le format de /etc/gshadow est:

root:*:root:root
bin:*:root:root
daemon:*:root:root
video:*:root:root,yann

Les mots de passe pour les groupes ne sont pas souvent implémentés car il faut passer un membre du groupe pour en changer ...

Commandes variées

[modifier | modifier le wikicode]

Pour obtenir des informations sur une session, jouez la commande id.

id [options] [username]

Options courantes: -g : N'imprime que l'identifiant du groupe. -u : N'imprime que l'identifiant de l'utilisateur.

Exemple:

$ id
uid=0(root) gid=0(root) groupes=0(root), 1(bin), 14(uucp), 15(shadow),16(dialout)

Pour lancer un shell avec un nouvel utilisateur et/ou groupe, jouez la commande su.

su [options] [username]

Options courantes: -s : Sélectionne un autre shell.

Exemple:

$ su toto
passwd:

Un shell est un interpréteur de lignes de commandes qui :

  • attend les commandes (en affichant ce qu'on appelle l'invite)
  • Les interprète (ceci inclus les redirections d'entrée-sortie, les tuyaux, la génération de nom de fichiers, etc.)
  • les exécute
  • exécute des langages de script

Il y a plusieurs shells populaires :

  • sh: Bourn shell, le shell de scripts standard.
  • csh: Berkley shell, permet le contrôle de tâches, l’historique des commandes, les alias ...
  • ksh: Korn shell, Les syntaxes du Bourn avec les fonctionnalités du Berkley.
  • Bash: Bourne Again shell, libre, shell clone du Korn. Shell traditionnel de Linux.
  • Tcsh: Libre, clone du Berkley avec beaucoup d'extensions.

La plupart des shell vous permettent de personnaliser son invite et son environnement.

Pour le bash, la variable du prompt est PS1

Pour le bash, les fichiers utilisés pour la personnalisation de l'environnement sont:

.bashrc exécuté à chaque nouvelle session bash.

.bash_profile exécuté à la connexion au shell.

.bash_logout exécuté à la sortie du shell.