Académique Documents
Professionnel Documents
Culture Documents
Page 1
Gestion
des fichiers sous Linux
Page 2
La ligne de commande donne des informations :
Utilisateur Répertoire
courant courant
root@MyServ:/home/moi# |
Nom de la # : Superutilisateur
machine $ : Utilisateur normal
Autre exemple
Sous répertoire du home de moi
« /home/moi/Documents/software/ »
moi@MyServ:~/Documents/software$ |
Page 3
La commande « pwd » permet de savoir quel est le répertoire
courant
La commande « ls » permet de lister les fichiers contenus dans un
répertoire
La commande « cd » permet de changer de répertoire
Les symboles suivants ont une signification particulière :
« . » : Le point désigne le répertoire courant
• Exemple : Exécuter un script depuis le répertoire courant
root@MyServ:/home/moi# ./script.sh
Page 4
Il existe 2 méthodes pour spécifier un chemin dans le système de
fichiers
Chemin relatif : Dépend du répertoire courant
Chemin absolu : Débute à la racine du système (« / »)
Exemples relatif absolu
root@MyServ:/home/moi# cd Documents = root@MyServ:/home/moi# cd /home/moi/Documents
Page 6
Dans quel répertoire je suis situé ?
ouerghi@ouerghi-VirtualBox:~/Documents/rep1$
Page 7
Dans quel répertoire je suis situé ?
ouerghi@ouerghi-VirtualBox:~/Documents/rep1$
Réponse : « /home/ouerghi/Documents/pub »
Commande la plus courte possible pour revenir dans le répertoire
rep2, situé à la racine de mon répertoire « home » ?
ouerghi@ouerghi-VirtualBox:~/rep1/sousrep1$
Page 8
Gestion
des fichiers sous Linux
Droits d’accès
Page 9
Linux est un système multi-utilisateurs
Plusieurs utilisateurs se partagent l’espace disque
Les fichiers et répertoires d’un utilisateur ne doivent pas être
accessibles par les autres
Les fichiers de configuration du système doivent être protégés
Nécessité de spécifier des droits pour chaque fichier/répertoire
Plusieurs types de droits : Lecture (R), écriture (W), exécution (X)
Ces droits s’appliquent pour 3 groupes d’utilisateurs :
• Le propriétaire (user) du fichier
• Le groupe (group) propriétaire (Tous les utilisateurs membre du
groupe)
• Les autres (others). Désigne tous les utilisateurs non membres des 2
précédents
Les droits sont responsables d’un grand nombre d’erreurs de
configuration
Page 10
Nous avons vu qu’il existe 3 types de droits : r, w et x
Ces droits n’ont pas la même signification pour un fichier que
pour un répertoire
Pour un fichier :
r : Lecture (afficher)
w : Ecriture (modification)
x : Exécution (exécution d’un script)
Pour un répertoire
r : Lire le contenu, lister les fichiers (avec ls par exemple)
w : Modifier le contenu, créer et supprimer des fichiers (avec les
commandes « cp », « mv », « rm »)
x : Permet d’accéder aux fichiers du répertoire. Mais aussi de
naviguer dans les sous-répertoires (avec « cd »)
En général, le droit w est souvent associé au droit x
Page 11
La commande « ls -l» permet d’afficher les droits qui s’appliquent
root@MyServ:/home/moi/Documents# ls -l
total 20
-rw-r--r-- 1 moi moi 0 2008-08-15 14:42 projet.txt
-rw-rw-r-x 1 moi compta 7406 2008-08-15 14:44 rapport2006.ods
-rw-rw-r-- 1 moi moi 7363 2008-08-15 14:44 rapport-activite.odt
-rw-rwxr-x 1 moi compta 255 2008-08-15 14:52 script.sh
Page 12
Le droit « w » accordé à un répertoire permet :
D’y effacer des fichiers quels que soient le propriétaire et les droits qui
s’appliquent à ces fichiers
Quand il est donné à un groupe, n’importe quel utilisateur de ce groupe peut
supprimer des fichiers (dangereux)
Les droits ne s’appliquent pas au « super-utilisateur »
Il a tous les droits sur tout le système de fichiers
C’est une très grande responsabilité puisque sous Linux tout ou presque
repose sur les fichiers
• La tendance évolue vers une utilisation très modérée voire interdite du compte
« root »
Le droit « x » accordé à un répertoire est un préalable indispensable pour
exercer des droits sur les fichiers contenus
L’utilisateur qui crée un fichier en devient le propriétaire
Ce fichier aura comme groupe propriétaire, le groupe primaire du
propriétaire (Groupe principal auquel appartient le propriétaire)
Page 13
Quel(s) utilisateur(s) pourra(ont) se déplacer dans le répertoire
suivant ?
drwxr-x--- 26 moi marketing 4096 2008-08-28 16:11 monrepertoire
Page 14
Quel(s) utilisateur(s) pourra(ont) se déplacer dans le répertoire
suivant ?
drwxr-x--- 26 moi marketing 4096 2018-08-28 16:11 monrepertoire
Page 15
Gestion
des fichiers sous Linux
Page 16
Déterminer le type d’un fichier
Page 17
Obtenir des informations par stat
Page 18
Afficher le contenu d’un répertoire
Page 19
Afficher le contenu d’un fichier texte
Exemples
Afficher le fichier « toto.txt »
cat toto.txt
Page 20
La commande « cp » copie des fichiers source vers une ou
plusieurs destinations
Syntaxe :
cp [OPTION]... SOURCE... DIRECTORY
Exemples
Copie le fichier « toto.txt » vers « /home/moi »
cp toto.txt /home/moi
/home/lui/*
cp
Copie le rep/home/moi
« /home/lui » tout entier vers « /home/moi »
cp -r /home/lui/ /home/moi
Copie en conservant les droits et l’appartenance (-a)
cp -a /home/lui/rapport.odt /home/moi
Page 21
Copier un fichier revient à créer un nouveau fichier
Identique à l’original
C’est donc l’utilisateur qui a effectué la copie qui devient le
propriétaire
A moins d’utiliser l’option –a
Exemple :
Je suis connecté en tant que root
Page 22
La commande « mv » déplace ou renomme une source vers une
destination.
Syntaxe :
mv [OPTION]... SOURCE... DIRECTORY
Exemples
Déplace le fichier « toto.txt » vers « /home/moi » sans le renommer
mv toto.txt /home/moi
Page 23
La commande « rm » permet d’effacer des fichiers et des
répertoires
A utiliser avec précaution (Surtout avec l’option –r)
Exemples :
Effacer le fichier « rapport.txt »
rout@MyServ:~$ rm /home/moi/rapport.txt
inode
Page 25
Un lien est un type spécial de fichier qui fait référence à un autre
fichier
Axe central du fonctionnement de Linux, le lien permet :
De créer des raccourcis vers des fichiers existants
• La compatibilité des logiciels entre les distributions Linux est assurée
par les liens
D’éviter de stocker plusieurs fois le même fichier dans des
répertoires différents
Un petit dessin :
support de stockage support de stockage
Page 27
Un lien physique est associé à un emplacement sur le support de
stockage
2 liens peuvent être associés au même « inode »
Similaire à la notion de « pointeurs » du langage C
Deux liens physiques sont considérés comme 2 fichiers
indépendants
• Même si leur contenu est au même emplacement sur le support
Le lien physique est vu comme un fichier régulier
Créer un lien physique avec la commande « ln » : nom fichier
rout@MyServ:~/Documents$ ln /home/moi/Documents/rapport2007-2008.doc rap0708
rout@MyServ:~/Documents/essais$ ls -il
total 176 cible
470930 -rw-r--r-- 2 rout rout 84091 2008-08-25 14:48 rap0708
470930 -rw-r--r-- 2 rout rout 84091 2008-08-25 14:48 rapport-annee2007_2008.doc
Page 29
Où seront copiés les fichiers ?
lui@MyServ:~/Documents$ cp /usr/docs-compta/* compta/
Page 31
Le compte « root » possède tous les droits
Celui qui possède le mot de passe root peut tout faire
La plupart des distributions récentes désactivent le compte
« root »
Certains utilisateurs peuvent endosser temporairement le rôle du
super-utilisateur
• Avec la commande « sudo » (Super User Do)
– La commande qui suit le « sudo » sera exécutée en tant que
« root »
rout@MyServ:~/Documents$ sudo commande
Page 33
Utilisé pour définir les droits par défaut
Droits appliqués pour un nouveau fichier lors de sa création
Les bits du masque à 1 empêchent le fichier d’obtenir le droit
correspondant
Exemple avec un masque de protection de 027
0 2 7
linux:~# ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 28480 2007-02-27 08:53 /usr/bin/passwd
Page 35
Identique au SUID mais appliqué au groupe propriétaire
La commande obtiendra les droits du groupe propriétaire s’il elle est
exécutée par un autre utilisateur
Attention, appliquée à un répertoire, le SGID :
Modifie le groupe propriétaire d’un fichier créé dans le répertoire
Ce ne sera plus le groupe primaire du propriétaire
• Mais plutôt le groupe propriétaire du répertoire
Il y a donc un mécanisme d’héritage entre le répertoire et les fichiers
nouvellement créés qu’il contient
Exemple :
drwxrws--- 2 root compta 4096 2008-08-24 13:05 docs-compta
• Mode symbolique :
– Basé sur des symboles (ugoa) et des opérateurs (+,-,=)
– u (user), g (group), o (others), a (all users)
– + (Ajouter le droit), - (Retirer le droit), = (Ajouter le droit et retirer
tous les autres)
– Exemple (Ajoute le droit d’exécution au propriétaire) :
chmod u+x rapport.txt
• Mode octal :
– Basé sur des nombres de 0 à 7
– A chaque bit de la traduction binaire correspond un droit
– Exemple ( rw- rw- r-- ) : chmod 664 rapport.txt
Page 37
Les droits sont représentés par un nombre octal (Base 8)
De 1 à 7
La représentation binaire (base 2) donne le détail des droits
Exemple : 654
Propriétaire : Lecture, écriture
Groupe : Lecture et exécution
110 101 100 Autres : Lecture seulement
Page 38
Retirer le droit d’écriture au propriétaire et au groupe
chmod u-w,g-w /home/moi/secret.txt
Page 39
La commande « chown » (Change owner) permet de changer
l’appartenance
Pour le propriétaire ou le groupe propriétaire
Syntaxe :
chown [OPTION]... [OWNER][:[GROUP]] FILE...
Exemples :
Modification du propriétaire (moi)
chown moi /usr/docs/toto.txt
Page 40
Commande « chmod » nécessaire pour attribuer le droit
d’écriture au groupe pour le répertoire suivant :
drwxr-x--- 26 moi marketing 4096 2008-08-28 16:11 monrepertoire
Quels seront les droits maximum accordés aux fichiers créés par
un utilisateur ayant un masque de protection de 023 ?
Quel sera le groupe propriétaire d’un fichier crée par « lui »
(Membre du groupe « compta ») dans le répertoire suivant :
drwxrsx--- 26 moi drh 4096 2008-08-28 16:11 les-cvs
Page 41
Commande « chmod » nécessaire pour attribuer le droit
d’écriture au groupe pour le répertoire suivant :
drwxr-x--- 26 moi marketing 4096 2008-08-28 16:11 monrepertoire
Réponse : « drh »
Page 42
Gestion
des fichiers sous Linux
Page 43
La commande cut
Exemples
affiche le 5ième caractère : cut -c5 fichier
affiche du 5ième au 10ème caractères : cut -c5-10 fichier
affiche le 5ième et le 10ème caractères : cut -c5,10 fichier
affiche à partir du 5ième (jusqu'à la fin) : cut -c5- fichier
affiche les champs 1 et 6 du fichier /etc/group sachant que le séparateur est ‘:’
cut -d":" -f1,6 /etc/group
Exercices
• L’action de base est l’affichage des fichiers trouvés (on peut ou pas
le spécifier par -print). Cependant on peut demander l’invocation
d’une commande à exécuter (comme par exemple la suppression
des fichiers trouvés ou leur déplacement vers un répertoire donnée,
etc.). Cette action peut être interactive.
Les expressions possibles pour find
-name <nom> recherche le fichier portant un nom
-links <n> recherche les fichiers possédant n liens
-user <utilisateur> recherche les fichiers appartenant à un utilisateur
-group <groupe> recherche les fichiers appartenant à un groupe
-type <type> recherche les fichiers ayant un type
(f=fichier, d=répertoire, b=périphérique)
-ctime <date> recherche les fichiers créés avant ou après
une date de création (on peut invoquer une date
d’accès avec –atime ou une date de modification
avec – mtime)
-perm <masque> recherche les fichier ayant le mode correspondant
à un masque (3 chiffres en octal)
-size <n> affiche le fichier qui contient <n> blocs
…
Combinaison de critères
Pour combiner ces tests, vous pouvez utiliser
• les opérateurs logiques :
<c1> -a <c2>
vrai si <c1> et <c2> sont vrais tous les deux
Notez que -a est implicite
<c1> -o <c2>
vrai si l'un de <c1> ou <c2> est vrai, ou les deux.
Notez que -o a une priorité moins grande que -a.
-not <c>
inverse le test <c>, donc -not <c> est vrai si <c> est faux.
• le parenthésage :
Lorsque on recours aux parenthèses, on doit désactiver leur
signification habituelle sans quoi le shell les prendra en compte
dans son interprétation !
Les actions possibles pour find
-print
Affiche le fichier pour lequel l’expression est réalisée
-ls
Affiche l'équivalent d'un ls -ilds sur chaque fichier trouvé sur la
sortie standard
-exec <commande>
Vrai si la commande restitue une valeur de sortie nulle
La fin de la commande doit être ponctuée par \ et le nom du
fichier examiné est représenté par {};
-ok <commande>
Même chose que -exec mais demande confirmation pour chaque
commande à exécuter
Exemples - commande find
find / -name passwd
find /home -type d
find /home/foulen -executable
find ~ -size 50M
find . -cmin -60
• Recherche des suites de 10 chiffres dans tous les fichiers du répertoire courant
Page 60