17.4 调整 NCP 和 POSIX 文件访问权限

NetWare 管理员会对目录和文件安全性抱有一定的期望。例如,他们希望主目录为私用,且只有目录拥有者可以查看目录内容。但是,由于 NetWare 核心协议 (NCP) 与 POSIX 文件安全性模型之间存在差别(请参见部分 21.2.1, 比较 Linux 和 NetWare 核心协议 (NCP) 文件安全性模型),因此 POSIX 文件系统上的默认情况并非如此。

幸好在 OES 2 中安装 Linux 用户管理 (LUM) 时,有一个选项可将主目录设置为私用。此选项将自动提供 NetWare 管理员所习惯的私密性。遗憾的是,该选项仅应用于新创建的主目录,因此如果调整访问权限对于您来说是个问题,则您需要了解和采取更多步骤。

使用本节中的信息了解如何配置 POSIX 目录才能符合 NCP 模型。

17.4.1 管理访问权限

默认情况下,NCP 目录为私用。在将用户或组指派为目录或文件的受托者时,这些受托者可自动导航到已指派的区域,并行使您已在该级别及以下级别指派的任意访问特权。您可以根据需要向所需数量的受托者指派不同的访问特权。

另一方面,可以通过为 Linux 系统上每个文件对象定义的三组权限访问传统的 Linux (POSIX) 目录。这三组权限包括用于每种类型用户(即文件拥有者、组和其他用户这三种用户)的读 (r)、写 (w) 和执行 (x) 权限。OES 2 中的 Linux 内核还支持访问控制列表 (ACL) 扩展此功能。但是,ACL 不在本讨论范围之内。有关 ACL 的更多信息,请参见《SLES 10 SP1 安装和管理指南》中的Linux 中的访问控制列表

使用 Linux chown 目录,可以将文件拥有者和/或组更改为 LUM 用户或启用 LUM 的组。例如,chown -R user1 /home/user1user1 主目录及其所有子目录和文件的拥有者更改为 user1。有关更多信息,请参见 OES 2 Linux 服务器上的 chown 手册页。

Linux chmod 命令提供了一种非常简单快速的方法,可针对以下三种用户类型调整目录和文件的访问特权:拥有者、组和其他用户(所有用户)。在其最简单的格式中,该命令使用三个数字(从 0 至 7)表示三种用户类型各自的权限。第一个数字表示拥有者的权限,第二个数字表示组的权限,第三个数字表示所有其他用户的权限。每个数字表示单个分组的权限,如下所示:

编号

设置

二进制表示形式

0

- - -

0 0 0

1

- - x

0 0 1

2

- w -

0 1 0

3

- w x

0 1 1

4

r - -

1 0 0

5

r - x

1 0 1

6

r w -

1 1 0

7

r w x

1 1 1

熟悉二进制数字系统的用户会发现,使用此方法非常容易记住每个数字所代表的含义。

例如,命令 chmod 777 /home 将读、写和执行的权限 (7) 授予 /home 目录的拥有者、组和其他用户,而 chmod 700 /home 仅将这三种权限授予目录拥有者,而组和其他用户没有任何权限。chmod 750 /home 将 rwx 权限授予所有者,r-x 权限授予组,未授予其他用户任何权限。

有关 chmod 命令的更多信息,请参见 OES 2 Linux 服务器上的 chmod 手册页。

17.4.2 提供私用工作目录

要将 NCP 目录设为私用,则将单个用户指派为受托者,并确保在任何父目录中没有意外的用户或组拥有受托者权限。

在传统的 Linux 卷上提供私用工作区域:

  1. 将该用户设置为目录拥有者。例如,可以使用 chown 命令更改拥有者(用户),

    chown -R 用户: / 路径/ 用户目录

    其中,用户 是 eDirectory 用户,路径 是工作目录的文件路径,用户目录 是工作目录名。-R 选项将该命令递归应用于所有子目录和文件。

  2. 仅授予用户对该目录的读、写和执行权限 (rwx --- ---)。例如,可以按如下方式使用 chmod 命令,

    chmod -R 700 / 路径/ 用户目录

    其中,路径 是工作目录的文件路径,用户目录 是工作目录名。

  3. 检查路径中的每个父目录,直至检查到 root (/) 目录,确保所有用户(在 Linux 中称为其他用户)在各个目录中都具有读和执行的权限 (r-x),如第三组权限 (. . . . . . r-x) 所示。(拥有者权限和组权限用点 (.) 表示,因为它们的设置并不相关。)

    原因是在父目录中,目录所有者为“其他”用户,需要能够向下查看他们自己的私用目录。

    由于 r-x 是对 Linux 上大多数目录的默认权限,因此可能不需要更改权限。

17.4.3 提供组工作区域

在 NCP 卷上,通过将用户指派给组,然后授予组对目录的受托者权限,可以提供组工作区域。除此之外,如果用户需要工作区域内不同级别的访问权限,也可以将每个用户指派为受托者,并仅授予所需的权限。

在传统的 Linux 卷上提供组工作区域:

  1. 使用 chown 命令可设置对目录的组所有权。例如,可以输入

    chown -R : / 路径/ 组目录

    其中, 是组名,路径 是工作区域的文件路径,组目录 是组工作目录。-R 选项将操作应用于 group_dir 中的所有子目录和文件。

  2. 授予组读、写和执行的权限 (. . . rwx . . .)。(拥有者权限和其它权限用点 (.) 表示,因为它们的设置并不相关。)

    例如,可以输入

    chmod -R 770 / 路径/ 组目录

    其中,路径 是工作区域的文件路径,组目录 是组工作目录。第二个 7 将 rwx 权限授予给组。(该示例假定目录的所有者也保留所有权限。因此,第一个数字也是 7。)

  3. 检查路径中的每个父目录,直至检查到 root (/) 目录,确保组在各个目录中都具有读和执行的权限 (r-x),如第二组权限 ( . . . r-x . . .) 所示。

    使用 chmod 命令可根据需要调整此权限,方法是将组权限指定为数字 5。有关更多信息,请参见管理访问权限

17.4.4 提供公共工作区域

在 NCP 卷上,通过将 [Public] 指派为受托者,然后对目录授予所需的受托者权限,就可以提供公共工作区域。

对于工作区域本身,可以将拥有者、组和所有其他用户的权限设置为读、写和执行权限 (rwx rwx rwx) (chmod 777)。

所有其他用户还必须拥有系统上每个父目录(路径中一直到 Linux 系统根的目录)的读和执行权限。这意味着已将所有父目录的权限设置为 rwx --- r-x。

要在传统的 Linux 卷上提供公共工作区域:

  1. 使用 chown 命令将所有权限 (rwx) 指派给其他用户(所有用户)。例如,可以输入

    chmod -R 707 / 路径/ 组目录

    其中,路径 是工作区域的文件路径,组目录 是组工作目录。第三个 7 向组授予 rwx 权限。(该示例假定目录的拥有者也应保留所有权限,且组设置并不相关。)

  2. 检查路径中的每个父目录,直至检查到 root (/) 目录,确保所有用户(其他用户)在各个目录中都具有读和执行的权限 (r-x),如第三组权限 (. . . . . . rwx) 所示。(拥有者权限和组权限用点 (.) 表示,因为它们的设置并不相关。)

    使用 chmod 命令在必要时调整此权限,方法是将其它权限指定为数字 5。有关更多信息,请参见本节开头的管理访问权限

17.4.5 设置权限继承

按照 NCP 模型调整 POSIX 权限的最后一步是在 NCP 配置文件中设置继承 POSIX 权限卷标志,以便在此区域中创建的所有文件和子目录都继承了与父目录一样的权限。有关说明,请参见《OES 2:NCP Server for Linux 管理指南》中的为 NCP 卷配置继承 POSIX 权限