setsecattr 命令

用途

设置命令、设备、特权文件、进程或域指派对象的安全属性。

语法

塞塞卡特 [-R load_module]{ -c | -d | -p | -f | -o} 属性 = 值 [ 属性 = 值 ...] 名称

描述

setsecattr 命令设置 Name 参数指定的命令、设备或进程的安全属性。 此命令将 Name 参数视为命令、设备、特权文件或进程,这取决于是否指定了下列标志:-c(命令)、-d(设备)、-f(特权文件)或 -p(进程)。

如果将系统配置成 Name 参数所指定的下列其中一个值,系统将按 /etc/nscontrol.conf 文件中相应数据库节的 secorder 属性指定的顺序执行:
  • 使用多个域中的数据库
  • 设置特权命令的安全属性
  • 设置特权设备的安全属性
  • 设置特权文件的安全属性
  • 设置域指派对象的安全属性

仅修改第一个匹配条目。 其他域的复制条目将不会被修改。 使用 -R 标志修改指定域的条目。 如果在任何域中都找不到匹配的条目,将在第一个域中创建一个新的 Name 参数条目。 使用 -R 标志向指定的域中添加条目。

要设置属性的值,请用 Attribute=Value 参数指定属性名称及新值。 要清除属性,请为 Attribute = Value 对指定 Attribute= 。 要对列出其值的属性进行递增更改,请将 Attribute=Value 对指定为 Attribute=+ValueAttribute=-Value。 如果指定为 Attribute=+Value,属性的值将从现有值开始递增。 如果指定为 Attribute=-Value,属性的值将从现有值除去。

标志

描述
-c 指定系统中待设置命令的安全属性。 如果您使用 Name 参数指定的命令名称不在特权命令数据库中,将在 /etc/security/privcmds 特权命令数据库中创建该命令条目。 如果将要清除某个属性,并且此属性是对该命令设置的唯一属性,那么还将从特权命令数据库中除去该命令。 直到使用 setkst 命令将该数据库发送到内核安全表之后,才会使用对特权命令数据库所作的修改。
-d 指定系统中待设置设备的安全属性。 如果您使用 Name 参数指定的设备名称不在特权设备数据库中,将在 /etc/security/privdevs 特权设备数据库中创建该设备条目。 如果将要清除某个属性,并且此属性是对该设备设置的唯一属性,那么还将从特权设备数据库中除去该设备。 直到使用 setkst 命令将该数据库发送到内核安全表之后,才会使用对特权设备数据库所作的修改。
-f 指定系统中待设置特权文件的安全属性。 通过 Attribute=Value 对请求的更改将在 /etc/security/privfiles 特权文件数据库中执行。 如果指定的文件不在特权文件数据库中,将在数据库中创建该文件条目。 如果将要清除某个属性,并且此属性是对该命令设置的唯一属性,那么还将从特权文件数据库中除去该命令。
-O 指定系统中将要设置的对象安全属性。 如果您使用 Name 参数指定的对象名不在域对象数据库中,那么将在 /etc/security/domobjs 域对象数据库中创建对象条目。 如果将要清除某个属性,并且此属性是对该对象设置的唯一属性,那么还将从域对象数据库中除去该对象条目。 直到使用 setkst 命令将该数据库发送到内核安全表之后,才会使用对域对象数据库所作的修改。
-p 指定系统中待设置活动进程的数字进程标识 (PID)。 使用 Attribute=Value 对指定的更改将立刻影响指定活动进程的状态。 但数据库中不保存此次修改。
-R 加载模块 指定安全属性修改要使用的可安装模块。

参数

描述
属性 = 值 设置对象的安全属性值。 有效属性名称列表取决于使用 -c-d-p-o 标志指定的对象类型。
对于特权命令数据库标志(-c),请使用下列属性:
accessauths
指定访问权限。 以逗号分隔,指定权限名称列表。 您总共可以指定 16 种权限。 使用任何一种您指定的授权的用户均可运行该命令。 该属性有三个特殊添加值:ALLOW_OWNER、ALLOW_GROUP 及 ALLOW_ALL,它们分别允许该命令用户、某个组或是所有用户可以运行此命令,而无需检查访问权限。
authprivs
指定授权特权。 指定授予了向进程中添加特权的授权及特权对列表。 授权及其对应的特权以等号(=)分隔,个别特权以加号(+)分隔,授权及特权对以逗号(,)分隔,请参阅下列示例:
auth=priv+priv+...,auth=priv+priv+...,...
您最多可以指定 16 对权限或特权。指定在成功执行命令前需要认证的用户的角色。 指定一列用逗号分隔的角色。 每个角色应该由不同的用户进行认证,例如一个用户一次不能对多个角色执行认证。
authroles
指定命令可成功运行前需要认证的用户角色。 如果列示多个角色,请用逗号分隔各个角色。 例如:
authroles=so,isso
每个角色必须由不同的用户认证。 例如,一个用户不能对多个角色执行认证。
innateprivs
指定固有特权。 以逗号分隔,指定在命令运行时分配给进程的特权列表。
inheritprivs
指定可继承特权。 以逗号分隔,指定子进程可继承的特权列表。
euid
指定命令运行时要设定的有效用户标识。
egid
指定命令运行时要设定的有效组标识。
 
ruid
指定命令运行时采用的实用户标识。 仅有效值为 0。 如果该命令通过在其 accessauths 属性中指定特殊值 ALLOW_ALL 来向所有用户提供访问权,那么将忽略此属性值。
secflags
指定文件安全标志。 以逗号分隔,指定安全标志列表。 对于该标志,使用以下值:
FSF_EPS
使命令运行时装入有效特权集的最大特权集。
 
对于特权设备数据库标志(-d),请使用下列属性:
readprivs
以逗号分隔,指定用户或进程必有的对该设备进行读取访问的特权列表。 您最多可指定八种特权。 用户或进程必须拥有特权列表中的某一种特权以对设备进行读取操作。
writeprivs
以逗号分隔,指定用户或进程必须拥有的对设备的写入访问特权列表。 您最多可指定八种特权。 用户或进程必须拥有特权列表中的某一种特权以对设备进行写入操作。
 
对于特权文件标志(-f),请使用下列属性:
readauths
指定读取访问权限。 以逗号分隔,指定权限名称列表。 用户使用任何一种授权均可读取该文件。
writeauths
指定写入访问权限。 以逗号分隔,指定权限名称列表。 用户使用任何一种授权均可读取或写入该文件。
对于特权进程标志(-p),请使用下列属性:
eprivs
指定有效特权集。 以逗号分隔,指定将要为进程激活的特权列表。 该进程可能会将这些特权从特权集中除去,并将最大特权集中的特权添加至它的有效特权集中。
iprivs
指定可继承的特权集。 指定以逗号分隔的特权列表,这些特权传递给子进程的有效和最大数目特权集。 可继承的特权集是限制性特权集的一个子集。
mprivs
指定最大特权集。 以逗号分隔,指定进程可添加至它的有效特权集中的特权列表。 最大特权集为有效特权集的超集。
lprivs
指定极限特权集。 以逗号分隔,指定组成进程的最大可能特权集的特权列表。 极限特权集是最大大特权集的超集。
uprivs
指定使用的特权集。 以逗号分隔,指定进程生命周期中使用的特权列表。 该特权集主要由 tracepriv 命令使用。
  对于域指派对象数据库标志 (-o),请使用下列属性:
domains
指定对象所属的域的列表(以逗号分隔)。
conflictsets
指定域的列表(以逗号分隔),将不访问这些域中的对象。
objtype
指定对象的类型。 有效值是 device、netint、netport 和 file。
secflags
指定对象的安全标志。 有效值是:
  • FSF_DOM_ANY:此值指定,如果对象具有 domains 属性中指定的任何域,那么进程能够访问该对象。
  • FSF_DOM_ALL:此值指定,仅当对象具有 domains 属性中指定的所有各个域时,进程才能访问该对象。 这是未指定 secflags 时的缺省值。

FSF_DOM_ANY 标志与 FSF_DOM_ALL 标志互斥。

名称 指定要修改的对象。 Name 参数的解释取决于您指定的标志。 一次只能指明一个名称进行处理。

安全性

setsecattr 命令为特权命令。 root 用户及安全组可将方式设置为 755 来使用该命令。 要成功运行该命令,您必须已经作为一个至少拥有以下授权的角色: 对于可信进程,审计系统将不会为各个进程记录任何对象审计事件。 但是,用户可以使用事件审计来捕获事件。

描述
aix.security.cmd.set 必须拥有此权限才能使用 -c 标志来修改命令属性。
aix.security.device.set 必须拥有此权限才能使用 -d 标志来修改设备属性。
aix.security.file.set 必须拥有此权限才能使用 -f 标志来修改设备属性。
aix.security.proc.set 必须拥有此权限才能使用 -p 标志来修改进程属性。
aix.security.dobject.set 必须拥有此权限才能使用 -o 标志来修改进程属性。

访问的文件

描述
文件 方式
/etc/security/privcmds rw
/etc/security/privdevs rw
/etc/security/privfiles rw
/etc/security/domobjs rw

示例

  1. 要设置授权特权对,请执行以下操作:/usr/sbin/mount命令,请输入以下命令:
    setsecattr -c authprivs=aix.fs.manage.mount=PV_FS_MOUNT /usr/sbin/mount
  2. 以递增方式将 PV_AU_WRITE 和 PV_DAC_W 特权添加到现有写特权集/dev/mydev设备,请输入以下命令:
    setsecattr -d writeprivs=+PV_AU_WRITE,PV_DAC_W /dev/mydev
  3. 要为 /etc/security/user 文件设置读取授权,请输入以下命令:
    setsecattr -f readauths=aix.security.user.change /etc/security/user
  4. 要从活动进程的有效特权集中逐次移除 PV_DAC_R 特权,请输入以下命令:
    setsecattr -p eprivs=-PV_DAC_R 35875
  5. 要设置访问权限,/usr/sbin/mount在 LDAP 中输入以下命令:
    setsecattr -R LDAP -c accessauths=aix.fs.manage.mount /usr/sbin/mount 
  6. 要对网络接口 en0 设置域,请输入以下命令:
    setsecattr –o domains=INTRANET,APPLICATION conflictsets=INTERNET
    objtype=netint secflags=FSF_DOM_ANY en0