0% ont trouvé ce document utile (0 vote)
37 vues53 pages

Linux SGF

Le document traite des bases des fichiers sous Linux, expliquant que tout est représenté par un fichier identifié par un inode unique. Il aborde les types de fichiers, la manipulation des fichiers et des répertoires, ainsi que les permissions de sécurité associées. Les commandes essentielles pour gérer les fichiers et les répertoires, ainsi que la hiérarchie du système de fichiers, sont également présentées.

Transféré par

yahyaouiimen
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPT, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
37 vues53 pages

Linux SGF

Le document traite des bases des fichiers sous Linux, expliquant que tout est représenté par un fichier identifié par un inode unique. Il aborde les types de fichiers, la manipulation des fichiers et des répertoires, ainsi que les permissions de sécurité associées. Les commandes essentielles pour gérer les fichiers et les répertoires, ainsi que la hiérarchie du système de fichiers, sont également présentées.

Transféré par

yahyaouiimen
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPT, PDF, TXT ou lisez en ligne sur Scribd

ISIET-UAS

2GI

Chapitre 2:

Les bases des fichiers


de LINUX

Octobre 2024
p. 1

Sous UNIX, tout est représenté par un fichier

Il est reconnu par son nom (un ou plusieurs) mais
un seul type est associé à un fichier

Le nom du fichier est un nom logique mais la
représentation au niveau système est via le
descripteur du fichier ou inode

L’inode d’un fichier contient toutes les informations
associées au fichier y compris l’emplacement
physique sauf le nom.

Tout inode aura un numéro unique dans le système
de fichiers qui le supporte
p. 2
Noms de fichiers

Noms de fichiers peuvent atteindre 255
caractères (Eviter les caractères avec CTRL ou
ESC ou l’espace)

NB: Noms de fichiers sont sensibles à la casse

Les fichiers dont le nom commençant par . sont
dits cachés

( en utilisant la commande ls -a: on liste tous
les fichiers y compris les fichiers cachés)

p. 3

Le type peut être vérifié avec la commande file nom_fichier

On distingue 7 types:
Ordinaire (texte ou image binaire)
Directory (répertoire ou dossier au sens de Windows)
Lien symbolique : pointer un autre fichier (rejoint la
notion de Raccourcis sous Windows) (cde ln –s)
Spécial associé au périphérique (device) , en mode bloc
ou caractère et est placé sous /dev
Pipe nommé: permet à 2 processus sans relation de
parenté de s’échanger des données comme par un tube.
Socket: interface logicielle avec les services du S.E q’un un
développeur
p. 4
exploitera les services d’un protocole .
p. 5
Les pipes
On veut connaitre le nombre d’utilisateurs en ligne
sachant qu’on dispose de la commande wc.
$ wc –l toto
15 toto toto fichier textuel de 15 lignes
Pour faire cette tâche:
$ who > res
$ wc –l res
Ici res fichier temporaire sur disque:
la sortie de who sera entrée de wc
Pipe est un procédé ou mécanisme plus performant
p. 6
Un pipe ( opérateur « | » ) nous permet de rediriger la
sortie d'une commande vers l'entrée d'une autre.
C’est une voie de communication en Mémoire Centrale
(par déf. Buffer de 4KO) entre deux processus de la
même famille; elle relie la sortie du 1er processus à
l’entrée du 2ème processus.
$ who | wc –l
Ici la sorite de 1er process( who ) est l’entrée du 2ème (wc )

On peut combiner l’exécution des commandes en créant


des pipeleines entre elles
(caractéritique puissante d'UNIX)
p. 7
$ X | Y
Ecr Lec

Buffer 4KO

Processus X
Processus Y
Deb: demande (buffer)
Deb: attendre
ecrire(buffer)
lire(buffer)
signaler
vider(buffer)
aller à Deb
aller à Deb
Pipe nommé: voie sur disque entre 2 processus n’ayant pas de relation de parenté;
même mécanisme mais sur disque créé avec

$mkfifo tube
p. 8
La double redirection
Combien d’entrées dispose votre directory de connexion ?
lister son contenu
$ cd; ls | wc –w #Le nombre d’entrées
ls # liste du contenu
On remarque que la commande ls est exécutée
deux fois :
Amélioration:
Utilisation de la double redirection et ce,
par le biais de la commande tee qui exclut
l’exécution de la commande ls 2fois
p. 9
Dans notre exemple:
$ ls | tee res | wc –w
Ecr Lec Ecr Lec
Pipe1 Pipe 2

$ cat res
tee reçoit la sortie de ls (par le biais du 1er pipe), la
1.

mémorise dans un fichier de travail (ici c’est res) et en


même temps fait passer le même contenu à la commande
wc (par le biais du 2ème pipe)
p. 10
Le répertoire de travail ou
Directory courante

Pwd (Print Work Directory)
 Affiche le path ou chemin absolu de la directory
courante.( Point courant de l’arborescence)

ls
 Liste le contenu de la directory courante (par
défaut) ou d’une directory ou d’un fichier
spécifique (fourni en argument)

p. 11
• Affichage des entrées de la directory courante:
$ ls –l
Taille en blocs
Total = 9 (1bloc=512 O)
drw-r--r-- 2 belhadj staff 4096 24 Oct. 09:19 trav
-rw-r--r-- 1 belhadj staff 58 16 Oct. 09:10 [Link]

nb liens propriétaire groupe taille date nom


group
type

-rw-r--r--
user
others
p. 12
Changer de directory


La commande cd change de directory en utilisant:
 Un chemin absolu
$ cd /home/joshua/work
 Un chemin relatif (par rapport à la d. Courante)
$ cd work
$ cd ../work
$ cd ../../work

p. 13
Chemin d’un fichier


Chemin Absolu

exemple :/home/belhadj/fich

Chemin relatif

si directory courante est /home/belhadj

Ce fichier sera fich ou ./fich

p. 14
• pwd retourne: -
/home/belhadjsami/cours

• se déplacer: cd /
[/home/belhadjsami/cours]$ cd ..
[/home/belhadjsami]$ tmp home
[/home/belhadjsami]$ cd /tmp
[/tmp]$
• chemin relatif rep belhadjsami
• chemin absolu

• créer une directory: mkdir .cshrc cours docs


[/tmp]$ mkdir rep

• supprimer une directory: rmdir [Link]


[/tmp]$ rmdir rep répertoire courant
p. 15
Hiérarchie root (racine)
• Sous Linux, toute l'arborescence part de "/" appelée
root(racine). Ici se trouvent toutes les directories
élémentaires dont voici la description cas de Linux:
. /var - logs, fichiers spool( lp, mail, cron,at;…)
• /bin, /usr/bin - commandes utilisateurs les +(-) utilisées
• /sbin, /usr/sbin - commandes d’administration les +(-)
utilisées
• /proc - fenêtre virtuelle au noyau
• /etc - fichiers de configuration (administratifs)
• /lib - librairies partagées
• /dev - fichiers de périphériques (ou spéciaux)
• /tmp -travaux temporaires

p. 16
Hiérarchie root (racine)

• /home : contient les directories


personnelles des utilisateurs
• /lost+found : les données récupérés par un
check du système de fichiers racine
• /root : la directory de connexion de
l’administrateur (choix Linux)

p. 17
Notion de lien direct
• Pour un fichier ordinaire:
Un lien est un Chemin (par défaut nb liens=1)
Le fichier est physiquement présent dans le
S.F tant qu'il y a de liens physiques s'y
référant.

Le lien physique ne peut passer au travers de
lecteurs ou partitions (ou Système de Fichiers
Création d’un nouveau lien:
$ ln <filename> <linkname>
p. 18
• Pour une Directory:
Un lien est une référence à une directory
Par défaut: toute directory dispose de
deux liens:
Un lien vers elle-même .
Un lien vers la directory mère ..
On augmente le nombre de liens d’une
directory en y créant des sous-directories

p. 19
Donc, on augmente le nombre de liens:
•Fichier ordinaire, en créant un nouveau :
$ ln fich fich2
Attention: fich et fich2 sont deux noms du
même fichier physique (même inode)
•Directory, en créant dedans une
nouvelle sous-directory (mkdir)
Attention:
Si trav directory, la commande
$ ln trav trav2 est impossible
p. 20
Lien Symbolique
• Rejoindre la notion de raccourci sous
Windows
• Créer un lien symbolique sur toto de nom
ractoto:
$ ln -s toto ractoto
ractoto (de taille 4 caractères) pointe sur toto
(Avec ls –l le nom figure: ractoto -> toto)
 *ln –s possible pour n’importe que type de
fichiers
*toto et ractoto ont deux inodes distincts
p. 21
Manipulation de fichiers

mv : déplace ou renomme des fichiers

$ mv toto tata : renommer

Si trav est une directory:
$ mv toto trav : déplacer toto sous trav

cp : copie de fichiers

$ cp fich1 fich2 : copier fich1 sur fich2

$ cp f1 trav : copier f1 dans trav avec nom f1

$ cp f1 f2 trav : copier f1 et f2 dans directory trav
en conservant les même noms
p. 22

touch : crée un fichier vide fourni comme argument
si ce fichier n’existe pas ou met à jour le temps
d'accès si ce fichier existe

rm : supprime les fichiers (les liens) avec
confirmation (utiliser -i)

* toto a deux liens: $ rm toto supprime le
lien toto donc physiquement le fichier existe encore
avec l’autre lien

* toto a un seul lien: $ rm toto spprime ce lien
donc suppression physique de ce fichier

$ rm -i toto : suppression avec confirmation
p. 23
Éditer les fichiers de texte

cat une rapide façon d‘afficher les fichiers de texte:
affichage par totalité


more : effectuer un affichage progressif: ligne par
ligne ou page par page (ou les 2 à la fois)


head et tail permettent d'afficher quelques lignes au
début ou à la fin du fichiers : affichage partiel

p. 24
Afficher un fichier entier

Syntaxe:
 $ cat [options] [file ...]

Le contenu des fichiers est affiché séquentielle-
ment sans rupture

Les fichiers sont affichés concaténés

$ cat file1 file2 file3

p. 25
Autres commandes pour afficher les fichiers
 $ more filename

Affiche le contenu du fichier page par page

$ head [-n] filename

Affiche le début du fichier (par défaut, n=10 lignes)

$ tail [-n] filename

Affiche la fin du fichier (par défaut, n=10 lignes )

NB: Pour sélectionner une partie du milieu d’un fichier, utiliser head et
tail séparés par le pipe (|)

$ tail -2 toto | head -1

affiche l’avant dernière ligne de toto
p. 26
Manipulation des directories


mkdir : crée une directory

rmdir : supprime une directory(déja vide)
rm -r : supprime une directory et son contenu
en seule opération
copy : copier une directory sur une autre

p. 27
Directory personnelle
Home Directory

Chaque utilisateur a une directory personnelle
typiquement sous /home (directory de connexion):
espace de travail réservé pour cet utilisateur

Contient des fichiers spécifiques de configuration
(généralement des fichiers
cachés: .bash_profile, .bashrc, .bash_logout) ainsi
que les fichiers/directories propres à l’utilisateur,..)

Cette directory est représentée par le caractère ~ (cas
LINUX) et constitue le paramètre par défaut de la
commande cd

p. 28
Sécurité des fichiers

Chaque fichier (quelque soit le type) doit avoir des
droits de protection (sécurité) ou permissions ou
autorisations pour trois catégories d’usagers: son
propriétaire (user), son groupe(group) et les autres
(other).

Pour chaque catégorie, on dispose de trois droits:

- Lecture : r

-Ecriture: w

-Exécution : x

Tout fichier a neuf droits
p. 29
La sécurité des fichiers

Pour un fichier ordinaire:

- r : droit de consulter

- w : droit de mise à jour

- x : droit d’éxécution pour un fichier binaire ou un script shell

Pour une directory:

- r : droit de lister le contenu

- w : droit de mise à jour c-a-d ajout/retrait d’entrées

- x : droit de naviguer (cad exécuter cd)

p. 30
Examiner les permissions

On peut examiner les permissions en utilisant la
command ls :
$ ls -l /bin/login
-rwxr-xr-x 1 root root 18972 avr 8 2001 /bin/login

Le type du fichier et les permissions sont symbolisés par
une chaîne de 10 caractères
¨Pour le type (1er caractère)
l: lien symbolique, d: directory, -: fichier ordinaire,
b: f.s. bloc, c: f. s. caractère, s: socket,
p:pipe nommé
p. 31
Examiner les fichiers ordinaires
• Affichage des caractéristiques: ls –l [Link]

groupe
-rw-r--r-- 1 belhadj staff 58 16 Jul 09:19 [Link]

nb liens propriétaire taille date nom


group
type

-rw-r--r--
user
others
p. 32
Examiner les répertoires

Le premier caractère dans la chaîne d'accès est un
caractère qui distingue un répertoire d'un fichier
ordinaire ou d’un autre type de fichier
$ ls -ld /bin : voir les informations sur /bin
drwxr-xr-x 2 root root 4096 jan 18 11:44 /bin/
$ ls -l /bin : voir les informations sur le contenu (les
entrées ) de la directory /bin

p. 33
Examiner les permissions
d'utilisateur

Les caractères 2, 3 et 4 dans le mode d'accès
identifie les droits d'accès du propriétaire
$ ls -l /etc/passwd

-rw-r--r-- 1 root root 18972 avr 8 15:20 /etc/passwd



Ce fichier est ouvert en lecture et écriture pour
son propriètaire (qui est root)

p. 34
Les permissions de groupes


Les caractères 5, 6 et 7 identifient les permissions
de groupe
-rw-rw-r-- 1 joe visitor 18972 avr 8 2001 /joe/essai

Ce fichier peut être lu et modifié par les
utilisateurs du groupe 'visitor' mais il ne peut
être exécuté (absence de x)

p. 35
Les permissions des autres
utilisateurs


Les caractères 8, 9 et 10 identifient les caractères
des autres utilisateurs
-rw-rw-r-- 1 joe visitor 18972 avr 8 2001 /joe/essai

Ce fichier peut être lu par les utilisateurs autres
que ceux appartenant au groupe visitor

p. 36
Les permissions de fichiers par défaut

Les permissions par défaut sont définies par le
masque de la session courante

umask peut être utilisée pour connaitre ou pour
spécifier les permissions par défaut lors de création
des fichiers et/ou directories
Exemple: Les utilisateurs non privilégiés ont un
umask de 003 ==> les permissions sont :
pour les fichiers: 664, pour les directories: 774

L'umask du root est 022

==>fichiers ordinaires:644,dir: 755
p. 37
Exemple comment interpréter ce masque:.
$ umask
00 27
U G O
0 2 7
C7 : 7 5 0
B2 : 111 101 000

Création d’une directory: rwx r–x ---

Création d’un fichier : rw- r–- ---

Règle: Un fichier ordinaire est par défaut non exécutable


p. 38
Les types de permissions spéciales


Le bit setuid attribue au processus les droits du
propriétaire du fichier en exécution. Sans effet
pour les répertoires

Le bit setgid attribue au processus le GID du
fichier en exécution. Pour les répertoires, ce bit
force tous les fichiers créés dans ce répertoire à
avoir le groupe de ce dernier

Le bit sticky empêche les utilisateurs d'effacer des
fichiers qui ne leurs appartiennent pas (pour les
répertoires . Pas d'effet sur les fichiers normaux).

p. 39

Exemple: SET UID

Les caractères 2, 3 et 4 dans le mode d'accès
identifie les droits d'accès du propriétaire
$ ls -l /bin/login
-rwsr-xr-x 1 root root 18972 avr 8 2001 /bin/login
setuid

Ce fichier est ouvert en lecture, écriture et
exécution. Celui qui l'exécute s'octroie les droits du
propriétaire root (s dans la 4ème position)
p. 40

Exemple: Stiky bit

Les caractères 8, 9 et 10 dans le mode d'accès
identifie les droits d'accès des autres.
$ ls -l /tmp
drwxrwxrwt 14 root root 4096 avr 9 19:12 /tmp

stiky bit

Cette directory est ouverte en lecture, écriture et
exécution pour les autres. Celui crée une entrée dans
/tmp c’est celui qui le supprime (t dans la 10ème
position)

p. 41
Changer les droits d'accès


Pour changer les droits d'accès par le propriétaire
du fichier (bien sur + root) :
 chmod [-R] mode file ...

p. 42
La sécurité des fichiers
• Changer les permissions: chmod Changer les permissions
chmod <classe op perm, …>|nnn <fic>

– classe:
u : user
– chaque perm = 1 valeur:
g : group
r 4
o : others
w 2
a : all
x 1
– op:
rien 0
= : affectation
- : suppr. – déf. des permissions (par addition)
+ : ajout pour chaque classe
– perm:
r : lecture
exemples:
w : écriture chmod u=rwx,g=rx,o=r [Link]
x : exécution chmod a+x [Link]
chmod 755 [Link]

p. 43
Compteurs sur un fichier textuel

wc [options] fichier

Sans option: Compter dans le fichier le nombre
de lignes, mots et caractètres

Options: -l: compter les lignes
-
- w: compter mots
-c: compter les caractères

Exemples: Combien d‘utilisateurs en ligne

$ who | wc –l

$ users | wc -w
p. 44
La commande cut

Afficher les colonnes spécifiques ou champs d'un
fichier de données (textuel):
 *Selection par colonne: utiliser l’option -c
 -c spécifie la colonne (-c4-10, -c4,10, -c8)
 $ cut -c4 results (Colonne 4 de results)
 $ ls –l toto | cut –c2-10 (permissions de toto)
 *Selection par champs: utiliser les options –d et -f
 -d spécifie le délimiteur de champs
 -f spécifie le numéro du champs (-f1-3 -f2 -f2,4)
$ cut -f3 -d : /etc/passwd (le champs n°3
et le délimiteur de champ est : )
p. 45
Sélectionner du fichier TOTO
Les colonnes 6 à 9

abcde fghi jkl yuion


ABCD EGII IJKMF
12345 7890 123456789
aaaaa bbbb ccccccc

cut –c6-9 TOTO


(résultat est par défaut à l’écran)
p. 46
Toute ligne du fichier /etc/passwd a la structure suivante:
Nom_user:x:UID:GID:Nom_complet:[Link]:Shell_conexion
$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
-----
user8:x:1008:1005::/home/user8:/bin/bash
user9:x:1009:1005::/home/user9:/bin/bash
$cut -f1,3 -d : /etc/passwd (Séle.c Nom et UID)
root:0
bin:1
daemon:2
----
user8:1008
user9:1009
p. 47
La commande grep

grep [options] Chaine fichier(s)

Afficher les lignes de fichier contenant Chaine

Options: -v: afficher les lignes ne contenant pas Chaine
-y: ne pas distinguer entre Miniscule et Majscule.
-n: lignes sont précédées de leur Numéro

“^Chaine”: les lignes qui commencent par

“Chaine$”: les lignes qui se terminent par
Ex: user1 figure-t-il dans /etc/passwd, n° de sa ligne associée?

$ grep -n “^user1:” /etc/passwd


43: user1:x:501:101:Eleve1:/home/user1:/bin/bash
p. 48
La commande find

find [path] [options] [action]

Rechercher dans la sous arborescence dont la
racine est path tous les fichiers satisfaisant
certain critères (fournis dans options) et lancer
une action

Action peut être:

-print: c’est l’action par défaut

-exec commande { } \;

(commande à lancer sur tout fichier)
p. 49
• Les critères:
-name Nom_fichier ou nom_générique
-type type du fichier (f , d , c , b , l , p , s )
-user Nom_util ou son UID
- group Nom_groupe ou son GID
- links n
-size n[c,K,M,G] (l’unité est le bloc; 512o)
find . -size 10 find . -size 5210c
-perm xyz (xyz: chiffres octaux)
-mtime n -ctime, -atime (L’unité : le jour)
(-csec, -cmin,-chou, -msec, -mmin,-mhou, -asec –amin, -ahou)
-inum n
p. 50
Ces critères peuvent être combinés dans une expression logique
où on utilise les opérateurs:

ET : simple concaténation des critères

OU : -o

NON: !
S’il faut des parenthèses:

\( expression \)
Pour les critères avec un nombre , il faut utiliser:


+ : pour signaler l’opérateur supérieur

- : pour signaler l’opérateur inférieur

Exemple: Vos fichiers ordinaires ayant plus de un lien

find ~ -type f –links +1
p. 51


find <liste_répertoires> [options] -exec <cmd> {} \;

Les fichiers retrouvés sont passés à la commande <cmd>
comme arguments

{} représente l'emplacement de chacun des noms de
fichiers
 Le point-virgule -précédé du caractère d'échappement (\)
délimite les commandes générées.
Exemple:
$ find ~ -name “tmp*” –exec rm {} \;

Cette ligne recherche dans mon compte tous les fichiers dont le
nom commence par “tmp” puis les supprime
p. 52
MERCI DE VOTRE
ATTENTION

Moncef DRIRA

p. 53

Vous aimerez peut-être aussi