用户文件

用途

包含扩展的用户属性。

描述

/etc/security/user 文件包含扩展用户属性。 这是一个 ASCII 文件,它包含用户的属性节。 mkuser 命令在此文件中为每个新用户创建一个节,并使用 /usr/lib/security/mkuser.default 文件中定义的缺省属性来初始化其属性。

/etc/security/user 文件中的每个节都由用户名标识,后跟 : (冒号) ,并包含格式为 Attribute=Value的属性。 每个属性值对都由换行符结束,并且每个节都由一个附加的换行符结束。 要获取节的示例,请参阅 示例 部分。

该文件支持缺省节。 如果没有为用户定义某个属性,那么将使用该属性的缺省值。

属性

如果具有适当的权限,可以设置以下用户属性:

描述
账户已锁定 指示是否锁定了用户帐户。 可能值包括:
true
用户的帐户已锁定。 值 yestruealways 是等价的。 拒绝用户访问系统。
false
用户的帐户未锁定。 值 nofalsenever 是等价的。 允许用户访问系统。 这是缺省值。
管理 定义用户的管理状态。 可能的值为:
true
用户是管理员。 只有 root 用户可以更改定义为管理员的用户的属性。
false
用户不是管理员。 这是缺省值。
admgroups 列示用户所管理的组。 Value 参数是逗号分隔的组名称列表。 有关组名的其他信息,请参阅 /etc/security/group 文件的 adms 属性。
auditclasses 列示用户的审计类。 Value 参数是逗号分隔的类列表,或者值 ALL 表示所有审计类。
auth1 列出用于认证用户的其他必需方法。 已不推荐使用 auth1 属性,在将来的发行版中可能不支持此属性。 应该使用 系统 属性来代替。 如果 auth1 属性指定的任何方法都失败,那么认证过程将失败。

参数是一个以逗号分隔的 方法;姓名 对列表。 Method 参数是认证方法的名称。 Name 参数是要认证的用户。 如果未指定 姓名 参数,那么将使用正在进行认证的用户的名称。

auth1auth2 属性的有效认证方法在 /etc/security/login.cfg 文件中定义。

auth2 列出用于认证用户的其他可选方法。 已不推荐使用 auth2 属性,在将来的发行版中可能不支持此属性。 应该使用 系统 属性来代替。 如果由 auth2 属性指定的任何方法失败,那么认证过程将不会失败。

参数是一个以逗号分隔的 方法;姓名 对列表。 Method 参数是认证方法的名称。 Name 参数是要认证的用户。 如果未指定 姓名 参数,那么将使用正在进行认证的用户的名称。

core_compress 启用或禁用核心文件压缩。 该属性的有效值为 On 和 Off。 如果该属性的值为 On,那么压缩已启用;否则为禁用。 该属性的缺省值为 Off。
core_path 启用或禁用核心文件路径规格。 该属性的有效值为 On 和 Off。 如果该属性的值为 On,那么核心文件将放置在由 core_pathname 指定的目录中(该功能已启用);否则,核心文件将放置在用户的当前工作目录中。 该属性的缺省值为 Off。
core_pathname 如果 core_path 属性设置为 On,那么将位置指定为用于放置核心文件。 如果该属性未设置且 core_path 设置为 On,那么核心文件将放置在用户的当前工作目录中。 该属性限制为 256 个字符。
core_naming 选择核心文件命名策略。 该属性的有效值为 On 和 Off。 在表单 core.pid.time 中,值 On 启用核心文件命名,与 CORE_NAMING 环境变量执行的操作相同。 值 Off 使用 core 的缺省名称。
守护程序 指示由 姓名 参数指定的用户是可以使用 Cron 守护程序还是 (系统资源控制器) 守护程序执行程序。 可能的值为:
true
用户可以启动 cron src 会话。 这是缺省情况。
false
用户不可以启动 cron src 会话。
dce_export 在 DCE 导出操作期间,允许 DCE 注册表用 DCE 用户信息覆盖本地用户信息。 可能的值为:
true
将覆盖本地用户信息。
false
将不会覆盖本地用户信息。
dictionlist 定义检查新密码时由组合限制使用的密码字典。

密码字典是以逗号分隔的绝对路径名的列表,从左到右进行求值。 所有字典文件和目录都必须对除 root 用户之外的所有用户进行写保护。 字典文件的格式为每行一个单词。 该词在第一列开始,并以换行符终止。 对于密码 7 仅支持 7 位 ASCII 字。 如果在系统上安装了文本处理,那么建议的字典文件是 /usr/share/dict/words 文件。 通过在字典文件中添加关键字为 "$USER" 的条目,可以在密码中不允许使用用户名。 此关键字 "$USER" 不能包含在字典文件中的条目的任何单词或模式中。 如果在字典文件中提到了正则表达式,那么在密码中也可能不允许使用该正则表达式。 要进行区分,请在字典文件中的单词和模式之间进行区分。 将以 ‘*’ 作为第一个字符来指示模式。 例如,如果管理员希望不允许任何以 "123" 结尾的密码,那么他/她可以在字典文件中提到以下条目:

*.*123
第一个 “*” 将用于指示模式条目,其余部分将是模式 (即 “.*123”)。 如果在系统上安装了文本处理,那么建议的字典文件是 /usr/share/dict/words 文件。
minloweralpha 定义必须在新密码中的最少小写字母字符数。 该值是十进制整数字符串。 缺省值为值 0,表示无最小值。 范围:0 到 PW_PASSLEN。
minupperalpha 定义必须在新密码中的最小大写字母字符数。 该值是十进制整数字符串。 缺省值为值 0,表示无最小值。 范围:0 到 PW_PASSLEN。
mindigit 定义必须在新密码中的最小数位数。 该值是十进制整数字符串。 缺省值为值 0,表示无最小值。 范围:0 到 PW_PASSLEN。
minspecialchar 定义必须在新密码中的最小特殊字符数。 该值是十进制整数字符串。 缺省值为值 0,表示无最小值。 范围:0 到 PW_PASSLEN。
efs_管理员权限访问 定义 efs_admin 密钥库位置。 只能有一个值:
文件
密钥库存储在 /var/efs/efs_admin/ 文件中。
注: 仅当系统已启用 EFS时,此属性才有效。
efs_允许用户更改窗口模式 定义用户是否可以更改该方式。 可能的值如下所示:
用户可 (使用 Efskeymgr 命令) 更改密钥库方式。
False
用户无法更改密钥库方式 (请使用 Efskeymgr 命令)。
注: 仅当系统已启用 EFS时,此属性才有效。
efs_文件算法 用于定义用于生成文件保护密钥的算法。 可能的值如下所示:
  • AES_128_CBC
  • AES_192_CBC
  • AES_256_CBC
注: 仅当系统已启用 EFS时,此属性才有效。
efs初始化键盘模式 定义用户密钥库的初始方式。 可能的值如下所示:
guard
当密钥库处于 root 用户保护方式时,如果没有此密钥库的正确密码,那么无法检索此密钥库中包含的密钥。
admin
当密钥库处于 root 用户管理方式时,可以通过 EFS (加密文件系统) 管理密钥来检索此密钥库中包含的密钥。
注意:
  • 仅当系统已启用 EFS时,此属性才有效。
  • 此为密钥库的初始方式。 使用 丘特 命令, Chgroup 命令或 切克塞 命令或通过手动编辑来更改此值不会更改密钥库的方式。 仅当您正在创建密钥库时才使用此属性,并且在删除密钥库并创建新密钥库之前不会再次使用此属性。 要更改密钥库方式,请使用 Efskeymgr 命令。
efs密钥库访问 定义用户密钥库位置。 可能的值如下所示:
没有密钥库。
文件
密钥库存储在 /var/efs/users/ 目录中。
注: 仅当系统已启用 EFS时,此属性才有效。
efs密钥库算法 定义在创建密钥库时用于生成用户专用密钥的算法。 可能的值如下所示:
  • RSA_1024
  • RSA_2048
  • RSA_4096
注意:
  • 仅当系统已启用 EFS时,此属性才有效。
  • 使用 丘特 命令, Chgroup 命令或 切克塞 命令或者通过手动编辑来更改此属性的值时,不会重新生成专用密钥。 仅当您正在创建密钥库时才使用此属性,并且在删除密钥库并创建新密钥库之前不会再次使用此属性。 要更改这些密钥的算法,请使用 Efskeymgr 命令。
expires 标识帐户的截止日期。 参数是一个由 10 个字符组成的字符串,格式为 MMDDhhmmyy ,其中 MM = 月, DD = 日, = 小时, 毫米 = 分钟, yy = 1939 年到 2038 年的最后 2 位数。 所有字符都是数字。 如果 Value 参数为 0,那么帐户不到期。 缺省值是 0。 请参阅 日期 命令以获取更多信息。
histexpire 指定用户不能重复使用密码的时间段 (以周为单位)。 该值是十进制整数字符串。 缺省值为 0,表示不设置时间限制。
histsize 指定用户无法复用的先前密码的数目。 该值是十进制整数字符串。 缺省值是 0。
login 指示用户是否可以使用 login 命令登录到系统。 可能的值为:
true
用户可以登录到系统。 这是缺省情况。
false
用户不能登录到系统。
logintimes 指定用户有权访问系统的时间和/或天数。 该值是以逗号分隔的以下格式的条目列表:
[!]:time-time
        -or-
[!]day[-day][:time-time]
        -or-
[!]date[-date][:time-time]

The variable must be one digit between 0 and 6 that represents one of the days of the week. 0 (零) 表示星期天, 6 表示星期六。

time 变量是 24 小时军事时间 (1700 是 5:00 p.m.)。 前导零是必需的。 例如,您必须输入0800,800. 时间 变量长度必须为 4 个字符,并且必须有一个前导冒号 (:)。 仅由时间规范组成的条目适用于每一天。 时间值的开始时间必须小于结束时间值。

日期 变量是一个四位数字符串,格式为 姆德毫米 表示日历月,而 表示日号。 例如0001表示 1 月 1 日。 可能是00以指示整个月份 (如果条目不是范围) ,或指示月份的第一天或最后一天,具体取决于它是显示为范围的开始还是结束的一部分。 例如,0000指示一月的整个月份。0600指示 6 月的整个月份。0311-0500指示 4 月 11 日至 6 月的最后一天。

此列表中的条目指定了允许或拒绝用户访问系统的次数。 条目前面没有一个!(惊叹号) 允许访问,称为 ALLOW 条目。 带有前缀的条目!(惊叹号) 拒绝对系统的访问,称为 DENY 条目。 该!运算符仅适用于一个条目,而不适用于整个限制列表。 它必须出现在每个条目的开头。

loginretries 定义在系统锁定帐户之前,最后一次成功登录之后允许的未成功登录尝试数。 该值是十进制整数字符串。 零或负值指示不存在限制。 一旦用户的帐户被锁定,用户将无法登录,直到系统管理员重置用户的帐户unsuccessful_login_count/etc/security/lastlog 文件中的属性小于 loginretries的值。 要实现这一操作,请输入以下命令:
chsec -f /etc/security/lastlog -s username -a \
unsuccessful_login_count=0
maxage 定义密码的最长寿命(以周为单位)。 到该时间必须更改密码。 该值是十进制整数字符串。 缺省值为 0,表示无最长寿命。
maxexpired 定义用户可以更改到期密码的超出 maxage 值的最长时间(以周为单位)。 在该定义的时间后,只有管理用户可以更改密码。 该值是十进制整数字符串。 默认值为 -1 ,表示未设置任何限制。 如果 maxexpired 属性为 0,那么当达到 maxage 值时,密码到期。 如果 maxage 属性为 0,那么忽略 maxexpired 属性。
maxrepeats 定义新密码中字符可以重复的最大次数。 由于值 0 是无意义的,所以缺省值 8 指示没有最大次数。 该值是十进制整数字符串。
minage 定义在可以更改之前,密码必须的最短寿命(以周为单位)。 该值是十进制整数字符串。 缺省值为值 0,指示无最短寿命。
minalpha 定义必须在新密码中的最小字母字符数。 该值是十进制整数字符串。 缺省值为值 0,表示无最小值。
mindiff 定义在新密码中(而非在旧密码中)要求的最小字符数。 该值是十进制整数字符串。 缺省值为值 0,表示无最小值。
minlen 定义密码的最小长度。 该值是十进制整数字符串。 缺省值为 0 ,指示无最小长度。 允许的最大值为 PW_PASSLEN 属性。 此属性由添加到 明斯 属性值中的 米诺法 属性值确定。 如果这些值之和大于 米伦 属性值,那么会将最小长度设置为结果。
注: PW_PASSLEN 属性在 /usr/include/userpw.h中定义。 PW_PASSLEN 属性的值由 /etc/security/login.cfg 中定义的系统范围密码算法确定。

密码的最小长度由 米伦 属性确定,并且应该永远不会大于 PW_PASSLEN 属性。 如果 minalpha 属性 + minother 属性 大于 PW_PASSLEN 属性,那么 明斯 属性将减少为 PW_PASSLEN 属性-minalpha 属性

minother 定义必须在新密码中的最小非字母字符数。 该值是十进制整数字符串。 缺省值为值 0,表示无最小值。
projects 定义可以将用户的流程分配到的项目列表。 该值是逗号分隔的项目名称的列表,并且从左到右进行求值。 项目名称应该为如系统中定义的有效项目名称。 如果在列表上找到无效的项目名称,那么 user 命令会将其报告为错误。
pwdchecks 定义强加在新密码上的密码限制方法。 该值是逗号分隔的方法名的列表,并且从左到右评估。 方法名是绝对路径名或相对于可执行装入模块的 /usr/lib 路径名。
pwdwarntime 定义系统发出警告要求密码更改之前的天数。 该值是十进制整数字符串。 零或负值指示不发出任何消息。 该值必须小于 maxage minage 属性的差。 大于此差值的值将被忽略,并在到达 米纳热 值时发出消息。
registry 定义在其中管理用户的认证注册表。 它用于将远程受管用户解析为本地受管域。 当网络服务意外失败或在本地复制网络数据库时,可能会发生此情况。 示例值为 filesNISDCE
rlogin 使用 泰尔内 登录 命令允许从远程位置访问该帐户。 可能的值为:
true
可以远程访问用户帐户。 这是缺省 rlogin 值。
false
无法远程访问该用户帐户。
su 指示另一个用户是否可以使用 su 命令切换到指定的用户帐户。 可能的值为:
true
另一个用户可以切换到指定的帐户。 这是缺省情况。
false
另一个用户不能切换到指定的帐户。
sugroups 列出可以使用 命令来切换到指定用户帐户的组。 Value 参数是以逗号分隔的组名列表,或者是用于指示所有组的值 ALL! 组名前面的 (感叹号) 将排除该组。 如果未指定此属性,那么所有组都可以使用 su 命令切换到此用户帐户。
系统

定义用于用户的系统认证机制。 该值可以是描述要使用哪些认证方法的表达式,也可以是关键字 NONE

SYSTEM 机制始终用于认证用户,而不考虑 auth1auth2 属性的值。 如果 SYSTEM 属性设置为 NONE,那么仅使用 auth1auth2 属性执行认证。 如果与 TCP 套接字守护程序 (ftpdrexecdrshd) 一样, auth1auth2 属性为空白或被忽略,那么不会执行任何认证。

方法名为 孔帕特文件NIS 由安全库提供。 可以在文件 /usr/lib/security/methods.cfg中定义其他方法。

使用以下语法来指定 系统 的值:

"SYSTEM"       ::= EXPRESSION
EXPRESSION     ::= PRIMITIVE  |
                    "("EXPRESSION")"  |
                     EXPRESSION OPERATOR EXPRESSION
PRIMITIVE      ::= METHOD  |
                    METHOD "["RESULT"]"
RESULT         ::= "SUCCESS" | "FAILURE" | "NOTFOUND" |
                   "UNAVAIL"  | "*"
OPERATOR       ::= "AND" | "OR"
METHOD         ::= "compat" | "files" | "NONE" |
                   [a-z,A-Z,0-9]*

语法的一个示例为:

SYSTEM = "DCE OR DCE[UNAVAIL] AND 
compat"
tpath 指示用户的可信路径状态。 可能的值为:
always
用户只可以执行可信的进程。 这意味着用户的初始程序在可信的 shell 或一些其他可信的进程中。
notsh
用户不能调用可信路径上的可信 shell。 如果用户在登录后输入安全警告密钥 (SAK),那么登录会话结束。
nosak
对用户运行的所有进程禁用安全警告密钥 (SAK)。 如果用户传送可能包含 SAK 序列的二进制数据,那么使用该值。 这是缺省值。
on
用户具有正常的可信的路径特征,并且可以使用安全警告密钥 (SAK) 来调用可信路径(输入可信 shell)。
ttys 列出可访问由 姓名 参数指定的帐户的终端。 Value 参数是完整路径名的逗号分隔的列表,或指示所有终端的值 ALLRSHREXEC 的值也可用作终端名称。 ! 终端名称前面的 (惊叹号) 将排除该终端。 如果不指定此属性,那么所有终端可以访问用户帐户。 如果 Value 参数不是 ALL,那么/dev/pts必须指定网络登录才能正常工作。
umask 确定文件许可权。 创建文件时,该值与创建进程的许可权一起确定文件的许可权。 缺省值为 022。

更改用户文件

您应该通过为此目的定义的命令和子例程来访问此文件。 您可以使用下列命令来更改 用户 文件:

  • chuser
  • lsuser
  • mkuser
  • rmuser

mkuser 命令在 /etc/security/user 文件中为每个新用户创建一个条目,并用 /usr/lib/security/mkuser.default 文件中定义的属性初始化其属性。 要更改属性值,请使用 丘特 命令。 要显示属性和它们的值,请使用 lsuser 命令。 要除去一个用户,请使用 rmuser 命令。

要在 /etc/security/user 文件中编写影响属性的程序,请使用相关信息部分中列出的子例程。

安全性

访问控制

此文件应该仅向 root 用户和安全组的成员授予读 (r) 访问权。 对其他用户和组的访问权取决于系统的安全策略。 只有 root 用户应该具有写 (w) 访问权。

审计事件

事件 信息
USER_WRITE 文件名

示例

  1. 对于用户而言,典型节类似于以下示例dhs:
    dhs:
        login = true
        rlogin = false
        ttys = /dev/console
        sugroups = security,!staff
        expires = 0531010090
        tpath = on
        admin = true
        auth1 = SYSTEM,METH2;dhs
  2. 要允许所有 ttys ,请执行以下操作:/dev/tty0要访问用户帐户,请更改 ttys 条目,以使其如下所示:
    ttys = !/dev/tty0,ALL

文件

描述
/etc/group 包含组的基本属性。
/etc/passwd 包含基本用户属性。
/etc/security/audit/config 包含审计系统配置信息。
/etc/security/environ 包含用户的环境属性。
/etc/security/group 包含组的扩展属性。
/etc/security/limits 包含用户进程资源限制。
/etc/security/login.cfg 包含用户登录和认证的配置信息。
/etc/security/passwd 包含密码信息。
/usr/lib/security/mkuser.default 包含缺省用户配置。
/etc/security/user 包含扩展的用户属性。
/etc/security/lastlog 包含上次登录信息。