我正在尝试将 NAS 安装到编码环境。
我发现需要这个命令,但我不知道它的细节。
有人能解释一下以下中的file_mode=0777
、dir_mode
和uid
是什么意思吗?gid
rw,file_mode=0777,dir_mode=0777,credentials=/config/cred,uid=$(id −u),gid =$(id -g),vers=3.0
我正在尝试将 NAS 安装到编码环境。
我发现需要这个命令,但我不知道它的细节。
有人能解释一下以下中的file_mode=0777
、dir_mode
和uid
是什么意思吗?gid
rw,file_mode=0777,dir_mode=0777,credentials=/config/cred,uid=$(id −u),gid =$(id -g),vers=3.0
-o
这本身并不是一个命令,而是所用命令的 (options) 参数的值mount
。因此该命令将是:其中
[device]
是操作系统所看到的 NAS,[mount point]
是要将 NAS 挂载到的目录,[fs type]
是 NAS 的文件系统类型。我们不知道您的 NAS 是什么文件系统,但很可能是cifs
(对于 Samba 类型共享),因为以下参数建议使用cifs
文件系统。file_mode
是 NAS 上新创建的文件(通过挂载创建)将获得的权限集。任何用户都可以读取、写入和执行这些文件。这可能是一种安全风险,但这取决于您。dir_mode
与 相同file_mode
,但针对的是新目录。uid
和gid
是 NAS 将用来访问文件的用户 ID 和组 ID。用户 ID 和组 ID 是数字。这意味着这些数字应该在 NAS 中定义为有效用户。在此特定命令中作为用户 ID 传递给 NAS 的值是命令的结果,id -u
即执行命令的用户的 IDmount
。在大多数系统上都是如此1000
。与作为 传递的组 ID 相同id -g
。此外,
credentials
还会传递一个文件。这通常用于包含访问 NAS 的用户名和密码。请注意,凭证文件中的用户名可能与参数冲突uid
。如果它们指向不同的用户,我不知道应该使用哪一个。最好省略其中一个。man mount
所有这些信息都可以从和其他文件中了解到man
,例如man mount.cifs
。对其中一些的解释:
rw 用于挂载具有读写权限的文件系统
file_mode=0777 设置文件的权限 (r/w/x)
dir_mode=0777:设置目录的权限
uid=$(id -u):表示所有者的用户 ID 与当前用户的 ID 相同
credentials=/config/cred:表示凭证文件位于 /config/cred
其余的我不太清楚。
设置
file mode
本地文件权限,dir mode
对目录执行相同操作。uid
(用户标识符)和 gid(组标识符)设置这些对象的相应本地所有者。这只是文件在客户端显示方式的掩码,它不会更改服务器上的文件和文件夹。我只是假设我们在这里谈论的是 SMB 支架,因为它们是最常见且最容易设置的。
这里有几个因素决定了文件的具体行为。它大致如下:
在服务器端(例如 Samba)设置:
Samba 配置文件片段的快速示例:
这些服务器设置仅控制服务器端的文件行为,它们不会影响文件在本地客户端计算机上的行为。
当您安装此类共享时,服务器会向客户端公开所有原始所有者和权限信息,但这些信息可能不适用于您访问这些文件的系统。因此,在客户端上安装时,您将使用某种方式屏蔽这些信息,以便您的本地用户能够正确处理这些文件。
例如:你以用户 JohnDoe 的身份登录到客户端计算机,你在服务器上的用户帐户可能是:JDoe,而你尝试访问的文件可能是由用户 SuperMan 创建的
(顺便说一句:服务器上您自己的文件因此归用户 JDoe 所有)
因此,当您在本地计算机上安装共享时,您应该使用 uid 和 gid 掩码来表示本地用户 JohnDoe 的 uid,并使用 gid 表示此用户在本地系统上所属的某个组。这样,您就成为这些文件的本地所有者(但仅限于本地系统,这只是一个掩码)。否则,您甚至无法在服务器上使用自己的文件,因为服务器用户与您在客户端计算机上的本地帐户不同。
出于同样的原因,您可以覆盖本地文件和目录权限。这样,您就可以解决权限问题,例如与组或其他用户有关的问题。我个人主要对文件使用 664,对目录使用 775。
最后:我认为服务器系统的 umask 设置也可能会影响新文件的权限创建方式。超出了这个答案的范围,但如果你开始看到一些不合理的内容,请牢记这一点。奖励信息随你便 :)