windows 中的 chmod 和 -rwx server.key

chmod og-rwx server.key in windows

我正在尝试为 PostgreSQL 创建证书。

this link 最后一步是使用命令:

chmod og-rwx server.key

但我有 Windows 10. 该命令的等效项是什么?

这可能有效,icacls server.key /grant Everyone:F

说明:所以,chmod 所做的是更改文件权限。 root 或任何有 chmod 能力的人都可以允许或删除权限,例如 r 读取文件,w 写入文件,或ex正在执行文件。 所以语句 chmod og-rwx server.key 意味着 o 允许不是该文件所有者的用户,并且 g,属于此文件组的用户 rwx(或读取、写入和执行)。现在,告诉 chmod 我们正在对哪个文件执行此操作? server.key.

那么问题就变成了,我们如何在 windows10 中复制这个命令和选项?根据微软的 technet 页面:icacls 是要使用的命令。接下来,镜像 chmod 描述的选项..所以我们授予每个人完全访问权限。

希望这对您有所帮助(更重要的是有效!)

正确答案:

Windows 10 中 chmod og-rwx server.key 最接近的等价物是:

icacls server.key /reset
icacls server.key /inheritance:r /grant:r "CREATOR OWNER:F"

请注意,icacls 命令在 Windows Server 2003 SP2、Windows Vista 和更新版本中也可用,但在 Windows XP.

Linux命令:

PostgreSQL 文档中提到的 chmod og-rwx server.key 命令正在使用 symbolic mode of chmod:

根据main page of chmod,符号模式的格式是[ugoa...][[-+=][perms...]...]

在上面的命令中 字母 og 表示“更改除文件所有者之外的所有其他用户和组的访问权限".

og后的减号(-)是运算符,意思是“从文件中删除指定的权限".

因此 chmod og-rwx server.key 有效地删除了除所有者之外的所有用户对 server.key 文件的读取、写入和执行权限 (rwx)。

Windows命令:

Windows 命令 icacls server.key /reset 删除文件 的显式设置权限 ,仅保留继承的权限

命令 icacls server.key /inheritance:r /grant:r "CREATOR OWNER:F" 仅向文件的所有者 授予 完全控制权,并且 删除所有 users/groups.

它通过以下方式实现:

  • /inheritance:r 选项,删除从父目录继承的所有权限;
  • /grant:r "CREATOR OWNER:F" 选项,用 Full control 替换所有者的显式权限(F 代表 Full control)。

这些选项的更好解释可以在 icacls 命令的帮助中找到:

PS> icacls /?
...
ICACLS name /reset [/T] [/C] [/L] [/Q]
    replaces ACLs with default inherited ACLs for all matching files.
...
/grant[:r] Sid:perm grants the specified user access rights. With :r,
    the permissions replace any previously granted explicit permissions.
    Without :r, the permissions are added to any previously granted
    explicit permissions.
...
/inheritance:e|d|r
    e - enables inheritance
    d - disables inheritance and copy the ACEs
    r - remove all inherited ACEs
...

提示

为了完整起见,您可以使用 Windows GUI 实现相同的目的。

Windows 中 server.key 文件的适当权限如下所示:

在使用此命令之前,请确保将文件的所有者设置为 运行 PostgreSQL 服务器的服务帐户,否则该服务将无法读取该文件。