S. Lavirotte, D. Lopez, H. Renard Polytech’Nice – Sophia PeiP 1 2014-2015 TD sé

S. Lavirotte, D. Lopez, H. Renard Polytech’Nice – Sophia PeiP 1 2014-2015 TD séances n° 6 Gestion avancée de Fichiers sous Unix Ce TP est destiné à vous familiariser avec les droits d'accès et les liens sous l'environnement Unix. 1 Droits d’accès Comme nous l'avons vu précédemment, les systèmes Unix sont multi utilisateurs, ceci implique que plusieurs utili- sateurs peuvent utiliser la même machine et les mêmes ressources. Pour maintenir la bonne sécurité de ces res- sources les systèmes linux proposent un système de permissions sur les fichiers. À chaque fichier est associé un ensemble d'informations permettant d'identifier qui est le propriétaire du fichier mais aussi sa taille ou encore les droits d'accès qui lui sont associés. Pour consulter ces informations, on utilise la commande ls -l. Voici un exemple de résultat d'une commande ls -l -rwxrwxrwx 1 kernel users 3.8M jan 2 2014 /mnt/multimedia/test.mp3 Les droits d'accès du fichier /mnt/multimedia/test.mp3 sont les suivants : -rwxrwxrwx. Le premier caractère indique le type de fichier. − - décrit un fichier ordinaire − d décrit un répertoire − l décrit un lien symbolique Les caractères suivant indiquent les droits d'accès associés à ce fichier. Il existe trois types de droit d'accès : − l'accès en lecture (r) : pour autoriser la lecture du fichier ou la visualisation du contenu d'un répertoire. − l'accès en écriture (w) : pour autoriser à modifier un fichier ou le contenu d'un répertoire − le droit d'exécution (x) : pour autoriser l'exécution d'un fichier. Attention le droit d'exécution x sans le droit de lecture r est autorisé mais ne vaut rien. Il faut pouvoir lire un fichier pour l'exécuter. « x » sur un répertoire rend ce dernier traversant, c'est-à-dire que l'on va pouvoir accéder aux répertoires qu'il con- tient. Vous ne pouvez pas renommer, supprimer ou copier des fichiers dans un répertoire si vous n'avez pas accès en écriture à ce répertoire. Si vous avez accès en écriture à un répertoire, vous POUVEZ supprimer un fichier même si vous ne disposez pas de droits d'écriture pour ce fichier (un répertoire est en fait juste un fichier décrivant une liste de fichiers, donc si vous avez accès en écriture sur le répertoire, vous pouvez modifier les liste des fichiers qu’il contient). Cela permet même de modifier un fichier (le supprimer et le recréer) même protégé en écriture. Ces trois types de droits d'accès sont ensuite répartis sur trois niveaux : − utilisateur (u) : pour le propriétaire du fichier − groupe (g) : pour les membres du groupe associé − autres (o) : pour tous les autres (groupes et propriétaire exclus) Voici comment sont organisées les permissions des fichiers : Polytech’Nice – Sophia / Université de Nice – Sophia Antipolis 930, Route des Colles – B.P. 145 - 06903 Sophia Antipolis Cedex – France Tél : +33 (0)4 92 96 50 50 – Fax : +33 (0)4 92 96 50 55 – http://www.polytech.unice.fr/ 1 1 S. Lavirotte, D. Lopez, H. Renard Polytech’Nice – Sophia PeiP 1 2014-2015 TD séances n° 6 Gestion avancée de Fichiers sous Unix Voici d'autres exemples : -rw-r--r-- Lisible et modifiable pour le propriétaire, seulement lisible pour les autres. -rw-r---- Lisible et modifiable pour le propriétaire, seulement lisible pour les utilisateurs appartenant au groupe du fichier. drwx------ Répertoire seulement accessible par son propriétaire -------r-x Fichier exécutable seulement par les autres, mais ni par votre groupe ni par vous-même. Droits d'ac- cès typique d'un piège ! La commande chmod permet de modifier les droits d'accès à un fichier. Un utilisateur peut seulement modifier les droits de ses fichiers (sauf le super-utilisateur qui peut tout faire sur la machine). La commande chmod respecte la syntaxe suivante : $ chmod permissions fichiers ou dossier L'option -R permet d'appliquer la commande chmod récursivement (sur tout ce qui est contenu dans le répertoire cible y compris les sous-répertoires). Il existe deux formats de permissions possibles : symbolique ou en base 8. En base 2, les droits d'accès de chaque niveaux ont pour valeur 0 ou 1. Ainsi par exemple, rwxr-x--- peut être traduit en 111 101 000 en binaire, qui en base 8 peut être converti en 750. Pour mettre de telles permissions à un fichier, on écrira la commande : chmod 750 fichier. En format symbolique, on décrit les permissions pour chaque niveau. Ce format est plus simple à comprendre avec des exemples. En voici quelques-uns : − chmod a+rw : on ajoute le droit pour tous de lire et d’écrire − chmod u+x : on ajoute pour l’utilisateur le droit d’exécuter − chmod g-w : on retire pour le groupe le droit d’écrire − chmod o-rwx : on retire pour les autres le droit de lire, écrire et exécuter − chmod 644 : on donne le droit de lecteur et d’écriture à l’utilisateur, le droit de lecture au groupe et aux autres − 2 Liens physiques et liens symboliques Un fichier stocké sur le disque dur est un ensemble de données qui sont enregistrées. Il faut ensuite un moyen d'accéder à ces données. C'est le rôle que joue alors le nom du fichier qui permet d'indiquer à quelles données on fait référence. 2.1 Lien physique : ln Lors de la création d'un fichier, on lui associe traditionnellement un seul nom. Mais en fait il peut y en avoir plu- sieurs. Chacun de ces noms de fichier est appelé lien physique vers celui-ci. Il faut voir cela comme un point d'ac- cès vers les données se trouvant dans l'arborescence. Lors de l'utilisation de la commande ls avec l'option -l, on peut voir le nombre de ces liens physiques. $ touch find Polytech’Nice – Sophia / Université de Nice – Sophia Antipolis 930, Route des Colles – B.P. 145 - 06903 Sophia Antipolis Cedex – France Tél : +33 (0)4 92 96 50 50 – Fax : +33 (0)4 92 96 50 55 – http://www.polytech.unice.fr/ 2 2 S. Lavirotte, D. Lopez, H. Renard Polytech’Nice – Sophia PeiP 1 2014-2015 TD séances n° 6 Gestion avancée de Fichiers sous Unix $ ls -l find -rwxr-xr-- 1 user user 0 sept. 12 2014 find C'est la deuxième colonne qui l'indique. On l'appelle compteur de référence. Ici on sait donc qu'il y a une seule référence existant vers le contenu de ce fichier, celui-ci s'appelant find. C'est le cas le plus courant. On peut rajou- ter un lien physique à l'aide de la commande « ln ». On lui passe en paramètre un des liens physiques déjà existant suivi par le nom du nouveau lien à créer. On pourrait par exemple ajouter un lien physique du nom de search. Cet exemple montre aussi le résultat ensuite. $ ln find search (il faut être super utilisateur pour avoir l’autorisation dans ce cas : ajouter sudo devant cette commande pour avoir les droits du super utilisateur, nous verrons cela un peu plus tard) $ ls -l find -rwxr-xr-- 2 user user 0 sept. 12 2014 find $ ls -l search -rwxr-xr-- 2 user user 0 sept. 12 2014 search Le nombre de liens physiques est alors passé à 2. Il faut bien voir que tous les liens physiques sont strictement équivalents. Lors de la suppression d'un de ces liens (à l'aide de la commande rm), le compteur de référence est décrémenté. $ rm find $ ls -l -rwxr-xr-- 1 user user 0 sept. 12 2014 search S'il est différent de 0, rien n'est fait au niveau du fichier. La suppression du fichier ne sera effective que lorsque le dernier lien physique vers celui-ci sera supprimé (compteur = 0). Etant donné que généralement on ne crée des fichiers qu'avec un seul lien physique, la suppression de celui-ci avec rm est équivalente à la suppression du fichier. 2.2 Lien symbolique : ln -s Il existe un autre type de lien, les liens symboliques. Ce sont eux qui s'approchent le plus de la notion intuitive de lien. Un lien symbolique est en fait un type de fichier spécial qui contient le chemin vers un fichier du disque (en réalité un de ses liens physiques). On les crée aussi avec la commande ln mais en utilisant l'option -s (c'est ce qui se rap- proche des raccourcis sous Windows). Voici un exemple pour illustrer cela. On suppose que le lien physique créé précédemment a été supprimé. $ ln -s search cherche $ ls -l search -rwxr-xr-- 1 user user 0 sept. 12 2014 search $ ls -l cherche lrwxrwxrwx 1 Tian users 6 sept. 21 2014 cherche -> search La première chose à observer est le fait que le compteur de référence de search n'a pas été modifié. Un fichier n'a absolument pas connaissance du nombre de liens symboliques pointant vers lui. Polytech’Nice – Sophia / Université de Nice – Sophia Antipolis 930, Route des Colles – B.P. 145 - 06903 Sophia Antipolis Cedex – France Tél : +33 (0)4 92 96 50 50 – Fax : +33 (0)4 92 96 50 55 – http://www.polytech.unice.fr/ 3 3 S. Lavirotte, D. Lopez, H. Renard Polytech’Nice – Sophia PeiP 1 uploads/Litterature/ synthese-linux.pdf

  • 13
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager