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由名称模式定义的主机组的名称。
- tcpServiceName指定要设置其访问权限的Privileged Identity ManagerTCP 服务记录。
- 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 访问权限的情况下,这些命令才有效。