如何仅允许程序在已安装目录时写入目录?

如何仅允许程序在已安装目录时写入目录?

我有一个程序,它会将一些文件写入目录。我的问题是,如果由于某种原因目录未挂载,程序无论如何都会写入目录,但文件最终会进入系统的文件系统,而不是正常挂载的文件系统。如果目录未挂载,我希望写入目录的操作失败。如何在 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
    ...

如果适合您的系统,第一个解决方案更可靠,而第二个解决方案更具可移植性。

相关内容