Cours Linux initiation aux droits (exécuter, lire, écrire, traverser, etc.)

Cours Linux initiation aux droits (exécuter, lire, écrire, traverser, etc.), tutoriel & guide de travaux pratiques en pdf.

Prise de contact

Allons y : démarrer votre machine. Après un éventuel LILO (c’est un petit programme au démarrage de la machine, qui permet de démarrer soit Linux, soit Windows. En fait il permet de démarrer presque n’importe quoi, mais disons que le choix Windows/Linux est ce que l’on trouve habituellement…).
Après le défilement de nombreuses informations (Linux est bavard, ce qui est pratique pour détecter une panne !!!), vous arrivez à un écran de login, c’est à dire de connexion.
Entrez votre nom de login, et votre password : vous êtes connecté au système.
Bon, maintenant, qu’est ce qu’on fait ? Commençons par arrêter la session : tapez logout. Vous êtes déconnecté, l’écran repasse en mode de login.
Avant d’aller plus loin, revenons à des notions théoriques. Sous Linux (et sous UNIX en général), vous êtes dans une ARBORESCENCE. C’est à dire qu’il y a une organisation hiérarchique de répertoires, qui peuvent contenir des fichiers et/ou des répertoires. Cette notion est simple, puisque le monde Microsoft l’a repris. Par contre, il n’y a pas de C: ou de A:. Dans le monde Windows, il y a une arborescence pour chaque support. Sous Linux, Il n’y a qu’une et une seule arborescence !!! Et en plus c’est toujours la même, que vous soyez sur un système qui n’a même pas de disque dur (juste une clé USB par exemple), ou sur un super ordinateur avec 50 TOctets en ligne !!!
Cette arborescence a une racine, un début, un sommet… Celui ci est noté /
Comme vous le voyez, tout est bien défini. De plus, selon votre identité, vous aurez plus ou moins de droits d’accès sur chacun de ces répertoires : cela permet d’assurer une certaine stabilité du système, car un simple utilisateur ne peut pas effacer de programmes dans /bin par exemple, ni propager de virus…. Nous verrons cette gestion des droits, propre aux systèmes moderne, plus loin.
Dernier petit point : nous verrons plus tard comment utiliser un cdrom, ou une disquette. Disons simplement ici qu’il faut “monter” un périphérique dans un répertoire pour accéder à son contenu. C’est à dire qu’il faudra dire : “La disquette, ou la clé USB, qui est de type Microsoft Windows, lis la, et fais moi apparaître son contenu dans tel répertoire”. Après cette opération, et jusqu’à nouvel ordre, le répertoire représentera la disquette. On peut “monter” des périphériques dans n’importe quel répertoire créé pour l’occasion. En fin de travail, il ne faudra pas oublier de “démonter” le support, pour libérer le répertoire, et permettre à l’OS de stabiliser le contenu du support.
Remarquez enfin que l’on peut indiquer le type d’organisation du support magnétique (par exemple fat, vfat, minix, ntfs…). Si l’OS connaît ce type, alors il est capable d’en lire le contenu, et vous permet de le gérer !!!

Initiation aux droits (exécuter, lire, écrire, traverser, etc.)

Linux étant multi utilisateur, il offre la possibilité de sécuriser l’accès aux données. Ainsi, pour chaque fichier ou répertoire (et même pour un périphérique, car n’oublions pas qu’UNIX considère tout comme des fichiers), il va être possible de gérer les droits de lecture écriture exécution. Bienvenue dans le monde merveilleux des ACCESS DENIED…
Chaque utilisateur dispose d’un home directory, un répertoire qui lui est réservé… Si je me loggue sous le nom de sylvain, je disposerai d’un répertoire /home/sylvain. Je pourrais y enregistrer des données, et je pourrais gérer la sécurité d’accès à ces données… Un objet (fichier, répertoire, etc), appartient toujours à quelqu’un…. Et ce quelqu’un peut en gérer les droits. Il existe cependant un
utilisateur un peu particulier (root) qui peut tout faire. C’est l’administrateur du système.
L’administrateur du système (root) est chargé de la gestion de la machine, et des utilisateurs. C’est lui qui crée votre compte, active les services, organise la sécurité et les sauvegardes. Le système lui offre de regrouper les utilisateurs en groupes, car il sera plus facile ensuite de donner des droits à un groupe plutôt qu’a chaque utilisateur.
Attendez vous donc à être un utilisateur, et à appartenir à un (voire plusieurs) groupe(s). Vous disposerez donc d’un nom de login, d’un UID (User Identifier, un numéro unique) et d’un GID (Group Identifier). De même, chaque objet que vous verrez aura un propriétaire (un USER). Il existera des droits pour ce propriétaire, des droits pour un groupe précis (pas toujours le groupe du propriétaire d’ailleurs) et pour les autres…

Démarrage Arrêt de la machine

montage-cache-services-niveau init
Au démarrage, il est possible de choisir le niveau de démarrage (le niveau d’init). Cela peut faire penser au mode de démarrage de Windows. Selon les cas, vous pouvez démarrer la machine en mode autonome (vous êtes seul sur la machine), en mode multi-utilisateur, ou encore en mode multiutilisateur avec connexion graphique….
L’ensemble des services est lancé une fois pour toutes au démarrage, ce qui explique la multitude de messages Starting…. qui apparaissent au début. N’oubliez pas que Linux est un vrai serveur !!! La machine sur laquelle je tape ce texte (un simple P200 avec 48 Mo de RAM, du moins lors de sa première version :-)) dispose de 5 serveurs WEB, 1 serveur FTP, accepte des connexions réseau (telnet, et autres commandes r…), un SGBDR (PostGres), etc…
De plus, au démarrage, l’accès aux supports magnétiques est lancé, puis mis en cache (c’est à dire que le transfert de données se fera au moment le plus opportun, afin d’offrir un temps de réponse très court).
En ce qui concerne l’arrêt de la machine, pour des raisons de stabilisations (flush ou vidage du cache) et parce que Linux est un serveur, il faut bien demander l’arrêt de la machine. On peut le faire très rapidement en pressant CTRL ALT SUPPR. L’arrêt de tous les services est alors lancé, la synchronisation de tous les supports magnétiques est effectuée, et le système s’arrête….

Écrans Virtuels

Linux est un vrai système multi-utilisateurs : Il est donc possible de s’y connecter plusieurs fois. Votre PC sous Linux offre de base 6 écrans texte et un écran graphique. Comment faire pour y accéder alors que vous n’avez qu’un seul clavier écran ?
Réponse : en utilisant les touches ALT et les touches de Fonctions : Alt-F1 donne le premier écran,
Alt-F2 le second, Alt-F3 le troisième…Alt-F6 le sixième et Alt-F7 pointe sur l’écran graphique (si le
X Window est en route, bien sur)
Attention : Pour ressortir de X et repartir vers les écrans virtuels textes, utilisez la combinaison Alt+CTRL+Fx.
Bien sur, vous pouvez être un utilisateur différent sur chacun des écrans, ou le même partout, ou un mélange des deux. L’ensemble de ces écrans est indépendant, et il est souvent pratique de lancer un long travail sur l’un d’eux, et de travailler en interactif sur un autre.
On utilise aussi cette technique pour surveiller une tache, voir même débloquer un écran (si une tache se bloque, passez sur un autre écran, et “tuer” (arrêter) la tache bloquée…
Il est possible de lancer plusieurs sessions graphiques. Pour ce faire, allez dans un écran texte, et lancer un nouveau startx (il faut écrire exactement startx –:1). Le double tiret veut dire qu’on ne veut pas lancer un nouveau serveur X, mais juste une nouvelle interface. Et le :1 indique le deuxième écran graphique (et oui, le premier, c’est:0). Attention, si l’interface graphique est sur la console 7, alors, cette nouvelle sera sur l’écran 8… Et ainsi de suite (:0 correspond à l’écran 7,:1 à l’écran 8,:2 à l’écran 9…)

Démarrage et arrêt de session

commande login
Login est un programme qui est lance sur chaque terminal offert par votre pc. Celui vous demande votre nom (attention a la casse, c’est a dire les majuscules minuscules) puis votre mot de passe. Ce couple est ensuite compare aux informations contenues dans les fichiers charges de la sécurité des utilisateurs, c’est a dire /etc/passwd (nom de utilisateur, numéros, répertoire de base, et programme lance au démarrage) et /etc/shadow (mot de passe crypte). Si la paire est valide, vous vous retrouvez dans le programme détermine dans /etc/passwd (il s’agit souvent d’un shell, c’est a dire un programme qui attend que vous saisissiez des commandes), et votre répertoire actif est le home. Il existe d’autres systèmes d’authentification centralisés, dans lequel votre machine se tourne vers un système central pour que l’utilisateur obtienne ses accréditations.
commande who
Cette commande permet de connaître la liste des utilisateurs actuellement connectes a votre machine.
Si vous êtes connecté sur plusieurs terminaux virtuels, vous le verrez…
commande logout
Fin de connexion, cette commande ferme tous les travaux en cours, et remet le terminal dans son état de départ (attente de login).
Commande exit
Sortie du programme en cours, ce qui peut correspondre à une déconnexion (un logout)… mais pas
toujours…

Commandes de répertoires

pwd : Print Working Directory, cette commande vous indique le nom du répertoire actif, c’est a dire celui dans lequel vous êtes en train de travailler. On ne peut être qu’a un seul endroit a la fois…
ls : affiche le contenu du répertoire courant (ou du répertoire demande). Équivalent de DIR sous Dos.
cd : changement de répertoire. L’appel de .. permet de remonter d’un niveau. cd tout seul vous repositionne dans votre home… ATTENTION aux notions de RELATIF et d’ABSOLU (pour savoir où vous êtes, et comment se déplacer vers votre objectif (voir plus loin la complétion)
mkdir : permet la création d’un ou plusieurs répertoires
rmdir : permet la suppression d’un ou plusieurs répertoires (vides bien sur)
ls -al, ls -d : Ce sont des options de ls. Consultez le man pour en savoir plus (man ls)
le ~ (tilde) et les chemins (absolu et relatifs)…
Il faut bien comprendre l’arborescence des répertoires, et les fichiers. Les fichiers sont un ensemble cohérent de données, que l’utilisateur a décidé d’enregistrer. Afin de retrouver son travail, il doit donner un nom à ces données. Ce nom peut ou non avoir un rapport avec les données. Il n’est pas stocké dans les données, mais en tant que nom symbolique d’accès à ces données. Ces données (ou ce fichier, comme on veut) sont rangées quelque part : dans un répertoire. Le vrai nom des données est constitué de l’assemblage du nom du répertoire et du fichier (par exemple, le fichier truc dans le répertoire /usr/local/bin : Le nom complet du fichier est /usr/local/bin/truc). Ce nom est complètement qualifié, ou encore absolu. Prenez l’habitude de bien référencer vos données, de bien comprendre ou vous vous situez dans l’arborescence des répertoires, et d’être capable de vous déplacer dans cette arborescence.

La complétion et l’édition de la ligne de commande

Toute la puissance de la ligne de commande (l’interface texte) est accessible grâce à la complétion. En utilisant la touche TAB, le bash (l’interpréteur habituel sous Linux) ira chercher pour vous tous les noms qui correspondent au début de votre saisie.. Si il y a une solution unique, le bash complète pour vous…. Sinon, la machine beep !!! Une seconde pression sur TAB donne soit un beep (il n’y a pas de mot commençant par votre saisie !!) soit vous obtenez la liste de toutes les solutions possibles !! ici, pour obtenir la frappe de la commande file /usr/doc/heroes-data-1.3/INSTALL, je n’ai tapé que fi TAB TAB l TAB /u TAB d TAB TAB o TAB TAB h TAB -d TAB TAB I TAB
Il n’y a plus de faute de frappe (puisque c’est la machine qui saisie !), et on fait directement la lecture du contenu des répertoires en même temps que l’on saisie la commande ! De plus, on a une ligne de 37 caractères en tapant seulement 11 touches…

Commandes de fichiers

ls : liste le contenu d’un répertoire : Attention, certains fichiers sont cachés (ceux dont le nom commence par un .) L’option – a permet de voir tous les fichiers. L’option -l permet d’avoir plus d’informations sur chacun de ces fichiers
file : commande mineure, qui permet de savoir le type d’un fichier (Il est préférable de se baser sur le contenu réel du fichier plutôt que sur l’extension de son nom!!!!)
cp : copie les fichiers (comme copy en dos). cp origine arrivée. Origine peut être un ou plusieurs fichiers arrivé peut être un fichier (si une seule origine), ou un répertoire (si une ou plusieurs origines)
mv : comme cp, si ce n’est qu’il efface l’origine
rm : suppression du ou des fichiers donnés en argument
cat more et less: affiche le contenu du ou des fichiers donnés en argument. Cat est la commande la
plus simpliste, less la plus élaborée…
touch : commande mineure, qui permet de changer la date de dernier accès à un fichier, sans risque de modifier son contenu (penser aux sauvegardes). Utilisé souvent car il permet de créer le fichier si celui ci n’existait pas (il sera vide, 0 caractères)

Les aides

La commande man : man commande permet d’avoir accès à l’aide sur cette commande : toujours présenté selon une norme (NOM, SYNOPSYS, DESCRIPTION, OPTIONS, BUGS), elle est assez complète (souvent plusieurs pages écrans). On peut se déplacer grâce aux touches de directions, ou Espace et Entrée pour avancer, rechercher un mot avec la touche / suivi du mot, et on sort avec la touche Q.
la commande apropos (ou whatis, si il y a eu un makewhatis) : apropos commande affiche une ligne d’information sur l’objectif de la commande en question.
La commande info : Commande plus récente, elle permet, à la mode EMACS (éditeur de RMS, très très complet) d’accéder à l’aide, hypertextuelle et parfois encore plus complète que man. Le curseur vous permet de vous déplacer sur des mots clefs (précédés d’une étoile), de valider pour afficher la page correspondante, n et p pour les pages suivantes et précédentes (Next et Previous), espace et backspace pour avancer et reculer dans la page, et q pour quitter l’aide.
Le –help : en général, les programmeurs ont prévu une aide succincte dans la commande, accessible par l’option –help (ou -?)
les HOWTO : Souvent rangés dans /usr/share/doc, les HOWTO (et mini HOWTO) sont des description assez complètes d’ordre générique (comment fonctionne le SCSI, qu’est-ce qu’un FileSystem, comment graver des Cds, etc..)

L’entrée et la sortie standard

Redirections
redirections : toute commande bien née utilise l’entrée standard (stdin, ou 0), la sortie standard (stdout, ou 1), et la sortie d’erreur (stderr, ou 2). Il s’agit du ficher en entrée (en programmation : Shell commande read, ou cin (en C++), ou scanf (en C), ou System.in(en Java)), en sortie (write, cout ou printf ou System.out), et du fichier qui va récupérer les messages d’erreur (perror).
En général, c’est le clavier qui est considéré comme stdin, et l’écran est assigné à stdout et stderr. C’est pour cette raison que les messages d’erreur apparaissent en même temps que les bons résultats. Dès que l’on a compris cette notion de stdin, stdout, et stderr, on peut s’amuser à ne visualiser que les sorties qui nous intéresse, ou encore utiliser une autre entrée que le clavier… Par exemple, demandons à la machine de nous afficher le contenu des tous les répertoires et sous répertoires de /home… Évidement, nous allons avoir énormément de réponses. Mais si nous supprimons le stdout, et ne gardons que le stderr… Nous verrons tous, et seulement, les messages d’erreur… En général, il s’agira des fichiers et répertoires auquel l’accès nous est interdit… Vous devinez l’intérêt d’une telle commande ?

Cours gratuitTélécharger le cours complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *