如何检查远程文件系统的挂载权限?

如何检查远程文件系统的挂载权限?

我正在将测试服务器安装到工作中的共享文件系统。这是一个 cifs 安装,因此我查看了此参考页面:https://linux.die.net/man/8/mount.cifs

我想尝试以“尽可能少地了解”的方式进行挂载,以防止人们篡改测试服务器的共享文件系统。因此在文档中我看到:

当服务器不提供所有权信息时,ui​​d=arg 会设置挂载文件系统上所有文件或目录的所有者 uid。可以将其指定为用户名或数字 uid。如果未指定,则默认为 uid 0。mount.cifs 帮助程序必须是 1.10 或更高版本,才能支持以非数字形式指定 uid。有关更多信息,请参阅下面有关文件和目录所有权和权限的部分。

听起来不错。但我的问题是:

  • 我如何检查服务器是否提供所有权信息,如果是,我如何找到它实际上是什么?

附加问题:

  • 当您可以覆盖权限时,提供权限有什么意义呢file_mode=0777,dir_mode=0777

答案1

您正在查看 CIFS,而不是 NFS。我从未遇到过使用 Linux 工具从 Windows CIFS 共享中提取所有权信息的方法(如果有人知道如何 - 请证明我错了!)。它的工作原理如下:

  • 在服务器上,您提供的凭据决定了您的访问权限。您无法使用 来“否决”只读访问权限file_mode=0777,在这种情况下,当您尝试写入文件时,访问权限将被拒绝。
  • 由于默认 CIFS 共享不导出任何所有权信息,因此uidgidumaskfile_mode选项dir_mode提供了一种将 Linux 文件安全性置于已安装共享之上的方法。这样,您可以说只有特定的本地 Linux 用户/组才能读取/写入已安装的共享。如果您在安装期间未提供这些选项,则使用默认值(最有可能uid=0, gid=0, umask=0适用于该共享内的所有目录和文件)
  • 看看官方文档,可以看到有“unix extensions for CIFS”允许导出uid / gid所有权信息。但我不知道是否有办法确定服务器是否支持这些扩展。

相关内容