![如何仅允许程序在已安装目录时写入目录?](https://linux22.com/image/1293029/%E5%A6%82%E4%BD%95%E4%BB%85%E5%85%81%E8%AE%B8%E7%A8%8B%E5%BA%8F%E5%9C%A8%E5%B7%B2%E5%AE%89%E8%A3%85%E7%9B%AE%E5%BD%95%E6%97%B6%E5%86%99%E5%85%A5%E7%9B%AE%E5%BD%95%EF%BC%9F.png)
我有一个程序,它会将一些文件写入目录。我的问题是,如果由于某种原因目录未挂载,程序无论如何都会写入目录,但文件最终会进入系统的文件系统,而不是正常挂载的文件系统。如果目录未挂载,我希望写入目录的操作失败。如何在 Linux 中执行此操作?
答案1
使底层挂载点变为只读。
当附加文件系统被挂载时,它的权限优先于IIRC。
答案2
我也偶然遇到过这个问题。
在我的例子中,访问相关目录的脚本为根,因此只读选项并不是解决方案。
但还有另外两种可能的解决方法:
第一步:使用 mount 命令检查目录是否被挂载:
if mount | grep /that/mountpoint
then
...
第二步:在 FS 挂载后手动创建一个标志文件,并在脚本中检查。如果不存在标志文件,则 FS 可能无法挂载
mount /that/mountpoint
touch /that/mountpoint/.is_mounted
if test -e /that/mountpoint/.is_mounted
then
...
如果适合您的系统,第一个解决方案更可靠,而第二个解决方案更具可移植性。