手册页部分 1M: 系统管理命令

退出打印视图

更新时间: 2014 年 7 月
 
 

roleadd(1M)

名称

roleadd - 管理系统中的新角色帐户

用法概要

roleadd [-c comment] [-b base_dir | -d dir] [-e expire] [-f inactive] 
     [-g group] [-G group [, group...]] [-m [-k skel_dir]] 
     [-u uid [-o]] [-s shell] [-S repository]
     [-A authorization [,authorization...]] [-K key=value] role
roleadd -D [-b base_dir | -d dir] [-e expire] [-f inactive] 
     [-g group] [-A authorization [,authorization...]] 
     [-P profile [,profile...] [-K key=value]]

描述

roleadd 将角色条目添加到 –S 选项指定的 passwdshadowuser_attr 数据库中。缺省的系统信息库为 files–A–P 选项分别向角色分配授权和配置文件。不能将角色指定给其他角色。–K 选项将 key=value 对添加到角色的 user_attr。多次使用 –K 选项可添加多个 key=value 对。

如果请求的话,roleadd 还可为角色创建补充组成员关系(–G 选项)以及为角色创建起始目录(–m 选项)。在 passwd(1) 命令执行之前,新角色帐户将一直保持锁定状态。

指定带有 –g–b–f–e–K 选项(或这些选项的任意组合)的 roleadd –D 可设置各个字段的缺省值。请参见 –D 选项。不带有 –D 选项的后续 roleadd 命令将使用这些参数。

使用此命令创建的系统文件条目每行最多允许有 512 个字符。为多个选项指定长参数可能会超出此限制。

角色 (role) 字段接受由以下字符组成的长度不超过八字节的字符串:字母字符、数字字符、句点 (.)、下划线 (_) 和连字符 (-)。第一个字符应为字母且字段应至少包含一个小写字母字符。如果不满足这些限制,将写入一条警告消息。将来的 Solaris 发行版可能拒绝接受不满足这些要求的角色字段。

role 字段必须至少包含一个字符且不能包含冒号 (:) 或换行符 (\n)。

管理员必须具有 "User Management"(用户管理)配置文件才能创建新角色。在 passwdshadowuser_attr 中设置各种字段所需的授权可以在 passwd(4)shadow(4)user_attr(4) 中找到。分配组所需的授权可以在 group(4) 中找到。

选项

支持以下选项:

–A authorization

一个或多个以逗号分隔的在 auth_attr(4) 中定义的授权。只有对授权具有授予权限的用户或角色才能将授权分配给帐户。

–b base_dir

如果未指定 –d dir,则为系统的缺省基目录。base_dir 与帐户名串联在一起用于定义起始目录。如果未使用 –m 选项,则必须存在 base_dir

–c comment

任意文本字符串。它通常为角色的简短描述。该信息存储在角色的 passwd 条目中。

–d dir | server:dir

指定新角色的起始目录路径。如果未指定任何服务器名称,则在 passwd(4) 数据库中维护指定的目录。

可选服务器名称指定起始目录所在的主机。采用此格式的条目依赖于自动挂载程序,并在 auto_home 映射中进行维护。/home/username 路径在 passwd(4) 数据库中维护。用户随后引用 /home/username 时,自动挂载程序将在 /home/username 中挂载指定的目录。

–D

显示 groupbase_dirskel_dirshellinactiveexpirekey=value 对的缺省值。与 –g–b–f–K 选项结合使用时,–D 选项设置指定字段的缺省值。缺省值包括:

group

other(GID 为 1)

base_dir

/export/home

skel_dir

/etc/skel

shell

/bin/pfsh

inactive

0

expire

Null

auths

Null

profiles

Null

key=value(在 user_attr(4) 中定义的键/值对)

不存在

–e expire

指定角色的失效日期。此日期过后,没有任何用户能够访问此角色。到期选项参数是使用模板文件 /etc/datemsk 中包含的日期格式之一输入的日期。请参见 getdate(3C)

如果所选日期包含空格,必须将其放在引号中。例如,您可以输入 10/6/90October 6, 1990。Null 值 (" ") 会使到期日期处于无效状态。此选项对创建临时角色非常有用。

–f inactive

在声明角色 ID 无效之前,允许该 ID 在连续两次使用之间间隔的最大天数。正常值为正整数。0 值会使此状态无效。

–g group

现有组的整数 ID 或字符串名称。如果不带 –D 选项,它将定义新角色的主组成员关系并成为缺省组。可通过调用 roleadd –D –g group 重置此缺省值。

–G group

现有组的整数 ID 或字符串名称。它定义新角色的补充组成员关系。使用 –g–G 选项指定的 group 之间的重复项将被忽略。指定的组数不能大于 NGROUPS_MAX

–k skel_dir

包含可复制到新角色起始目录中的框架信息(例如 .profile)的目录。该目录必须已存在。系统提供的 /etc/skel 目录可用于此用途。

–K key=value

要添加到角色的属性中的 key=value 对。可使用多个 –K 选项添加多个 key=value 对。可以使用通用 –K 选项以及相应键来代替特定的隐式键选项(–A–P)。有关有效的 key=value 对列表,请参见 user_attr(4)。对于此选项,“type” 键不是有效键。键不能重复。

–m

如果新角色的起始目录不存在,则创建该目录。如果该目录已存在,group 必须对其具有读取、写入和执行权限,其中 group 为角色的主组。如果指定给 –d 选项的服务器名称是远程主机,系统将不尝试创建起始目录。

如果该目录不存在且父目录是 ZFS 数据集的挂载点,则创建该数据集的子项,并将其挂载到指定位置。授予角色创建 ZFS 快照并对其进行提升的权限。新创建的数据集将继承其父项的加密设置。如果该数据集已加密,将授予角色更改其包装密钥的权限。

–o

此选项允许 UID 重复(不唯一)。

–P profile

一个或多个由逗号分隔的在 prof_attr(4) 中定义的的执行配置文件。

–s shell

程序的全路径名,登录时可用作用户的 shell。其缺省值为一个空字段,这将使系统使用 /bin/pfsh 作为缺省值。shell 的值必须为一个有效的可执行文件。

–S repository

有效的系统信息库包括 filesldap。系统信息库指定将更新哪个名称服务。缺省的系统信息库为 files。系统信息库为 files 时,授权、配置文件和角色可存在于其他名称服务系统信息库中,并可以分配给 files 系统信息库中的用户。当系统信息库是 ldap 时,LDAP 服务器和客户机都必须配置 EnableShadowUpdate=true。另外,所有可分配的属性都必须存在于 ldap 系统信息库中。

–u uid

新角色的 UID。此 UID 必须是一个小于 <sys/param.h> 中定义的 MAXUID 的非负十进制整数。UID 缺省为高于当前分配的最大编号的下一个可用(唯一)编号。例如,如果分配了 UID 100、105 和 200,则下一个缺省 UID 号为 201。(UID 0-99 为保留值,供将来的应用程序使用。)

退出状态

如果出现错误,roleadd 命令将输出一条错误消息并以下列值之一退出。如果错误是因为 LDAP 配置不当而发生的,下列值的前面会附有 "LDAP configuration problem"(LDAP 配置问题):

1

无权执行尝试的操作。

2

命令语法无效。将显示 usermod 命令的用法消息。

3

为选项提供的参数无效。

4

使用 –u 选项指定的 giduid 已在使用中。

5

passwordshadow 文件相互不一致。可使用 pwconv(1M) 更正可能的错误。请参见 passwd(4)shadow(4)

6

要修改的登录项不存在,giduid 不存在。

7

grouppasswdshadow 文件缺失。

9

组名或用户名已在使用中。

10

无法更新 passwdshadowuser_attr 文件。

11

空间不足,无法移动起始目录(–m 选项)。

12

无法创建、删除或移动新的起始目录。

13

请求的登录名已在使用中。

14

意外失败。

16

无法更新组数据库。

17

无法更新项目数据库。

18

授权不足。

19

没有角色。

20

没有配置文件。

21

没有特权。

22

没有标签。

23

没有组。

24

系统未运行 Trusted Extensions。

25

没有项目。

26

无法更新 auto_home

文件

/etc/datemsk

/etc/passwd

/etc/shadow

/etc/group

/etc/skel

/usr/include/limits.h

/etc/user_attr

属性

有关下列属性的说明,请参见 attributes(5)

属性类型
属性值
可用性
system/core-os
接口稳定性
Committed(已确定)

另请参见

auths(1)passwd(1)pfexec(1)profiles(1)roles(1)users(1B)groupadd(1M)groupdel(1M)groupmod(1M)grpck(1M)logins(1M)pwck(1M)userdel(1M)usermod(1M)getdate(3C)auth_attr(4)group(4)passwd(4)prof_attr(4)shadow(4)user_attr(4)attributes(5)

使用 Oracle Solaris 11.2 目录和命名服务:LDAP

诊断

如果出现错误,roleadd 将输出错误消息并以非零状态退出。

以下情况表示指定的 login 已在使用中:

UX: roleadd: ERROR: login is already in use. Choose another.

以下情况表示使用 –u 选项指定的 uid 不唯一:

UX: roleadd: ERROR: uid uid is already in use. Choose another. 

以下情况表示使用 –g 选项指定的 group 已在使用中:

UX: roleadd: ERROR: group group does not exist. Choose another. 

以下情况表示使用 –u 选项指定的 uid 处于保留的 UID 范围 (0-99) 之内:

UX: roleadd: WARNING: uid uid is reserved.

以下情况表示使用 –u 选项指定的 uid 大于 <sys/param.h> 中定义的 MAXUID

UX: roleadd: ERROR: uid uid is too big. Choose another.

以下情况表示 /etc/passwd/etc/shadow 文件不存在:

UX: roleadd: ERROR: Cannot update system files - login cannot be created.

以下情况表示执行此命令的用户没有足够的授权来执行操作:

UX: roleadd: ERROR: Permission denied.