authorize 命令设置资源访问权限

在 AC 环境中有效
cminder12901cn
在 AC 环境中有效
使用 authorize 命令更改访问者对资源的访问权限。
此命令可修改与资源相关联的访问控制列表。 它一次只更改访问控制列表中的一个条目。
当访问者尝试访问资源时,
Privileged Identity Manager
将检查相应的访问控制列表来确定访问权限。 这些访问控制列表包括资源记录中的那些列表,还包括资源组记录中的访问控制列表。 如果在包含资源的任意 NACL 中拒绝访问者进行访问,则表示权限被拒绝,即使在其他 ACL 中授予了权限亦如此。
资源的所有者始终拥有资源的所有访问权限。 如果要更改所有者用户的访问权限,请将该资源的所有者更改为其他人,例如,用户 nobody。
注意:
此命令也存在于 Windows 环境中,但以不同的方式操作。
要使用 authorize 命令,您需要具有足够的权限,这表示必须满足一个或多个以下条件:
  • 您具有 ADMIN 属性。
  • 资源所属的资源组的属性为 GROUP-ADMIN。
  • 您是资源的所有者。
  • 您在与资源相对应的 ADMIN 类记录中具有修改访问权限。
authorize 命令对不同的类集具有不同的格式。 这些集包括:
  • TCP
  • HOST、GHOST、HOSTNET 以及 HOSTNP
  • 所有其他类
对于 TCP 类,此命令具有以下格式:
{authorize|auth} TCP tcpServiceName \ [{access|deniedaccess}(accessType)] \ {[ghost(ghostName [,ghostName]...)] | \ [host(hostName [,hostName]...)] | \ [hostnet(hostNetName [,hostNetName]...)] | \ [hostnp(hostNamePattern [,hostNamePattern]...)]} \ [{gid|uid|xgid|xuid}(accessor [,accessor]...])] ...
对于 HOST、GHOST、HOSTNET 以及 HOSTNP 类,此命令具有以下格式:
{authorize|auth} {HOST|GHOST|HOSTNET|HOSTNP} stationName [{access|deniedaccess}(accessType)] \ service({serviceName|serviceNumber|serviceNumberRange}) [BUSINESS IMPACT] N/A [ENVIRONMENT] N/A [TROUBLESHOOTING] N/A [REPRODUCTION STEPS] N/A [IF NOT A SUSPECTED DEFECT, WHAT IS THE REASON FOR TRANSFER TO L2?] N/A [ATTACHMENTS] N/A
对于所有其他类,此命令具有以下格式:
{authorize|auth} classNameresourceName \ [{access|deniedaccess}(accessType)] \ [calendar(calendarName)] \ [{unix|nt}]\ [via (pgm ( program [,program]...))] \ { gid | uid | xgid | xuid}(accessor [,accessor...]) ...
  • access (
    accessType)
    在资源 ACL 访问控制列表中定义访问权限条目。 此 ACL 用于指定授予访问者哪些访问权限。
    • accessType
      在资源 ACL 中定义访问类型,例如读取或写入。
    注意:
    如果省略 access(
    accessType
    ) 和 deniedaccess(
    accessType
    ) 选项,
    Privileged Identity Manager
    将分配由资源类的 UACC 类中记录的隐含访问权限属性指定的访问权限 (例如,如果资源是文件,则记录为 UACC 文件记录)。
  • calendar(
    calendarName
    )
    指定用于确定访问权限的日历。
  • className
    定义
    resourceName
    所属的类。
  • deniedaccess(
    accessType)
    更改资源 NACL 中的访问权限。NACL 可指定拒绝授予访问者的访问类型。
    • accessType
      指定要拒绝的访问类型,例如读取或写入。
  • gid (
    accessor
    [,
    accessor...
    ])
    定义一个或多个要为其设置访问权限的内部组。
  • ghost(
    ghostName [,ghostName]...
    )
    定义一个或多个要为其设置对 TCP/IP 服务的访问权限的组主机。
  • host(
    hostName [,hostName]...
    )
    定义一个或多个要为其设置对 TCP/IP 服务的访问权限的主机。
  • hostnet(
    hostNetName [,hostNetName]...
    )
    定义一个或多个要为其设置对 TCP/IP 服务的访问权限的 HOSTNET 记录。
  • hostnp(
    hostNamePattern [,hostNamePattern]...
    )
    定义一个或多个要为其设置对 TCP/IP 服务的访问权限的 HOSTNP 记录。
  • nt
    指定是否向 Windows 中的系统 ACL 添加值。
    仅对 FILE 类有效。
  • resourceName
    定义访问控制列表处于修改状态的资源记录。
  • service(
    serviceName
    |
    serviceNumber
    |
    serviceNumberRange
    )
    定义允许本地主机向远程主机或主机组提供的服务。
    serviceNumber |serviceNumberRange
    定义服务编号或范围。
    指定范围,两个整数之间用 -(连字符)分隔,例如 1-99。
    限制:
    0 到 65535 之间的整数。
  • stationName
    在指示的类中指定记录名称,如下所示:
    • HOST
      单个工作站的名称。
    • GHOST
      由 ghostcommand 在数据库中定义的主机组的名称。
    • HOSTNET
      由 IP 地址的一组掩码和匹配值定义的主机组的名称。
    • HOSTNP
      由名称模式定义的主机组的名称。
    对于无法解析的主机,以 IPv4 格式指定 IP 地址范围。
  • tcpServiceName
    指定要设置其访问权限的
    Privileged Identity Manager
    TCP 服务记录。
  • uid (
    accessor
    [,
    accessor...
    ])
    定义一个或多个要为其设置访问权限的内部用户。
    可以使用 * 来表示所有内部用户。
  • unix
    指定是否向 UNIX 中的系统 ACL 添加值。
    仅在支持 ACL 的 UNIX 环境中有效,且仅适用于 FILE 类中的记录。
  • via(pgm(
    programName [,programName]...
    ))
    为条件程序访问定义一个或多个程序。 via 参数用于在资源的 PACL 中指定条目。
    programName
    用于指定可访问资源的程序
    。 programName
    可包含通配符。 如果程序与 PACL 中的多个条目匹配,则具有最长非通配符匹配的条目优先。
    如果
    programName
    指定未在 PROGRAM 类中定义的程序或 shell 脚本,
    Privileged Identity Manager
    将自动创建一个 PROGRAM 记录以对其进行保护。
  • xgid (
    accessor
    [,
    accessor...
    ])
    定义一个或多个要为其设置访问权限的企业组。
  • xuid (
    accessor
    [,
    accessor...
    ])
    定义一个或多个要为其设置访问权限的企业用户。
示例:授权 Angela 读取文件
以下 selang 命令将授权企业用户 Angela 读取受 FILE resource /projects/secrets 保护的文件:
auth FILE /projects/secrets xuid(Angela) access(read)
示例:仅授权 Angela 读取文件
以下 selang 命令将仅授权企业用户 angela 读取受 FILE resource /projects/secrets 保护的文件:
auth FILE /projects/secrets xuid(Angela) access(read) auth FILE /projects/secrets defaccess (none) chres FILE /projects/secrets owner(nobody)
注意:
使用 UNIX 时,如果您希望使用
读取
权限来控制用户是否可以执行获取文件信息的操作(例如 ls -l),则将 STAT_intercept 配置设置为 1。 有关详细信息,请参阅《
参考指南
》。
示例:授权组中的所有用户登录到终端
以下 selang 命令将授权企业组 RESEARCH 中的所有成员登录到受 TERMINAL 资源
tty10
保护的终端:
auth TERMINAL tty10 xgid(RESEARCH) access(read)
示例:授权 Joe 备份文件
以下 selang 命令将授权企业用户 Joe 备份受 GFILE 资源保护的文件 secret_files:
auth GFILE secret_files xuid(Joe) \ via(pgm(/bin/backup)) access(read)
Windows 端点的等效命令如下:
auth GFILE secret_files xuid(Joe) \ via(pgm(C:\WINDOWS\system32\ntbackup.exe)) access(read)
只有在资源的 ACL 或 NACL 未确定 Joe 访问权限的情况下,这些命令才有效。