Elm*_*mor 20 symbolic-link read-only
我的一个脚本动态创建了一个符号链接,如下所示:
ln -s /home/hosting/projects/images /home/hosting/projects/demo/images
Run Code Online (Sandbox Code Playgroud)
我怎样才能使通过链接的访问是只读的?
ger*_*ijk 19
您可以创建只读的 bind-mount。
mount --bind /path/to/source/ /path/to/dest/
mount -o bind,remount,ro /path/to/dest
Run Code Online (Sandbox Code Playgroud)
是的,这必须在 Linux 内核 2.6.25 之后的内核中分两步完成(请参阅上面的链接了解原因)。
或者,作为一个/etc/fstab行示例ref:
/path/to/source/ /path/to/dest/ none bind,ro
Run Code Online (Sandbox Code Playgroud)
在任何一种方法中,绑定安装都位于虚拟文件系统层 (VFS) 中,因此它并不特定于任何文件系统,您也不会真正“安装”任何东西。所以,基本上,这是为您创建一种符号链接,但这并没有显示出来。
并回复下面关于数据丢失的评论......不,这些说明不会删除任何文件。如果目标路径上存在文件,则此安装将覆盖此文件。只需卸载即可在下方文件系统的路径中列出您的文件。甚至更好;通常,避免安装在非空目标路径的顶部。
小智 5
使用一个命令挂载只读绑定:
mount --bind -r /path/to/source/ /path/to/dest/
Run Code Online (Sandbox Code Playgroud)
卸载
umount /path/to/dest/
Run Code Online (Sandbox Code Playgroud)