Un de mes scripts crée dynamiquement un lien symbolique comme ceci:
ln -s /home/hosting/projects/images /home/hosting/projects/demo/images
Comment puis-je faire en sorte que l'accès via le lien soit en lecture seule?
la source
Un de mes scripts crée dynamiquement un lien symbolique comme ceci:
ln -s /home/hosting/projects/images /home/hosting/projects/demo/images
Comment puis-je faire en sorte que l'accès via le lien soit en lecture seule?
Vous pouvez créer un montage de liaison en lecture seule .
mount --bind /path/to/source/ /path/to/dest/
mount -o bind,remount,ro /path/to/dest
Oui, cela doit être fait en deux étapes dans les noyaux après les noyaux Linux 2.6.25 (voir le lien ci-dessus pour savoir pourquoi).
Ou, alternativement, comme un /etc/fstab
exemple de ligne ref :
/path/to/source/ /path/to/dest/ none bind,ro
Dans l'une ou l'autre approche, un montage de liaison réside dans la couche Virtual Filesystem (VFS), donc ce n'est spécifique à aucun système de fichiers, et vous ne «montez» vraiment rien. Donc, fondamentalement, cela crée une sorte de lien symbolique pour vous, mais cela n'apparaît pas comme tel.
Et pour répondre au commentaire ci-dessous sur la perte de données ... non, ces instructions ne suppriment aucun fichier. Si vous avez des fichiers présents sur le chemin de destination, ce montage se superposera à cela. Démontez simplement pour pouvoir lister vos fichiers dans le chemin du système de fichiers en dessous. Encore mieux; en général, évitez de monter au-dessus d'un chemin de destination non vide.
mount -o bind,remount,ro /path/to/dest
Voir lwn.net/Articles/637501 à partir de ce même thread.mount -o remount,ro /path/to/dest
me donne l'erreur suivante:mount: mount point is busy.
@gertvdijkpour monter bind en lecture seule avec une seule commande:
démonter
la source