Maison >Tutoriel système >Linux >Comment rendre un fichier lisible, inscriptible et en lecture seule sous Linux ?

Comment rendre un fichier lisible, inscriptible et en lecture seule sous Linux ?

WBOY
WBOYavant
2024-02-14 17:00:03783parcourir

Dans le processus d'exploitation et de maintenance de Linux, nous constatons souvent que le répertoire de stockage d'une application est plein, sans aucune planification préalable, et que le répertoire ou le disque ne peut pas être étendu. À l'heure actuelle, notre solution courante consiste à créer un logiciel. lien, via ln, ceci est réalisé en liant de manière logicielle le répertoire initialement stocké à un répertoire d'un autre grand disque.

L'inconvénient des liens souples est qu'après plusieurs couches de liens souples, ils seront étourdis, ce qui peut facilement provoquer un mauvais fonctionnement. Aujourd'hui, je vais vous présenter une autre méthode

.

monter – lier

Les amis d'opération et de maintenance de la commande mount devraient le connaître, donc je ne le présenterai pas trop

Jetons d'abord un coup d'œil à l'introduction chez l'homme

Comment rendre un fichier lisible, inscriptible et en lecture seule sous Linux ?

Vous pouvez remonter la structure des répertoires de fichiers via mount –bind et connecter deux répertoires. Il monte le premier répertoire sur le dernier répertoire. Tout accès à ce dernier répertoire est en fait un accès au répertoire précédent.

Exemple

Regardez l'exemple, créez deux répertoires différents et créez des fichiers différents dans les deux répertoires différents

Comment rendre un fichier lisible, inscriptible et en lecture seule sous Linux ?Afficher l'inode du fichier

Comment rendre un fichier lisible, inscriptible et en lecture seule sous Linux ?Montez test1 sur test2 via mount –bind et revérifiez le contenu de l'inode et du répertoire

Comment rendre un fichier lisible, inscriptible et en lecture seule sous Linux ?Vous pouvez voir que le numéro d'inode et le fichier sont tous deux test1

Ensuite, accédez et modifiez les fichiers dans le répertoire test2. En fait, ce qui est modifié, c'est le répertoire test1. Lors de notre test, nous créons des fichiers dans le répertoire test2

.

Comment rendre un fichier lisible, inscriptible et en lecture seule sous Linux ?Puis après avoir contacté mount, nous vérifierons le contenu des deux prochains répertoires

Comment rendre un fichier lisible, inscriptible et en lecture seule sous Linux ?Vous pouvez voir que le répertoire test1 reste dans l'état modifié et que les fichiers du répertoire test2 existent toujours et restent inchangés

Principe

Prenons mount –bind test1 test2 comme exemple. Lorsque la commande mount –bind est exécutée, Linux bloquera l'entrée du répertoire monté (

c'est-à-dire le bloc du fichier répertoire, qui enregistre les informations du répertoire inférieur). répertoires de niveau), c'est-à-dire que le chemin de niveau inférieur de test2 est masqué (Remarque, il s'agit simplement de masquer mais pas de supprimer, les données n'ont pas changé, elles sont simplement inaccessibles). En même temps, le noyau enregistre l'entrée du répertoire de montage (test1) dans un objet s_root dans la mémoire. Lorsque la commande mount est exécutée, VFS créera un objet vfsmount. Cet objet contient toutes les informations de montage de l'ensemble. système de fichiers, parmi lesquels Il inclura également les informations dans ce montage. Cet objet est une table de correspondance de valeurs HASH (la valeur HASH est calculée en calculant la chaîne de chemin. La table contient la correspondance de valeurs HASH entre les deux répertoires /test1 vers). /test2

Une fois la commande exécutée, lors de l'accès aux fichiers sous /test2, le système informera que l'entrée du répertoire de /test2 est bloquée, et accédera automatiquement à la mémoire pour trouver VFS et apprendra la relation correspondante entre /test2 et /test1 via vfsmount, donc Lire l'inode de /test1, afin que tous les fichiers lus sous /test2 soient des fichiers dans le répertoire /test1

Attention

La relation correspondante entre les deux répertoires existe dans la mémoire. Une fois redémarrée, la relation de montage disparaîtra, la relation de montage doit donc être écrite dans /etc/fstab

Utilisation avancée

  • Test de lecture du fichier de configuration temporaire

    Dans certains scénarios d'application, il est nécessaire de modifier le fichier de configuration pour les tests, mais cela ne peut pas affecter l'activité en cours. Si vous n'êtes pas sûr et ne souhaitez pas modifier directement le fichier de configuration d'origine, nous pouvons écrire dans /tmp et d'autres répertoires. . Un fichier de configuration de test est monté dans le répertoire de lecture du fichier de configuration via mount –bind, et le programme en cours d'exécution lit le fichier de configuration temporaire une fois le test terminé, seul umount est nécessaire, ce qui n'affecte pas la configuration d'origine

    .
  • Montage en lecture seule

    Dans certains scénarios, par exemple, si vous devez autoriser les développeurs à afficher certaines configurations, mais ne leur permettez pas de modifier les configurations, vous pouvez monter un répertoire en lecture seule via mount –bind,ro. Le répertoire d'origine est accessible en écriture. et peut être monté. Le répertoire est en lecture seule, il vous suffit de donner au développeur l'autorisation de répertoire en lecture seule

    .

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer