Роли могут быть назначены пользователям. Предопределенных ролей не существует, но можно легко создать новые роли, назначив им один из трех предопределенных профилей. Предполагается, что системный администратор будет самостоятельно создавать роли и назначать их, по мере необходимости, тем или иным пользователям. Соответствие ролей и пользователей (т.е. разрешение конкретному пользователю играть ту или иную роль) описывается файлом /etc/user_attr:
# Copyright (c) 1999-2001 by Sun Microsystems, Inc. # All rights reserved. # # /etc/user_attr # # user attributes. see user_attr(4) # #pragma ident "@(#)user_attr 1.5 01/12/11 SMI" # root::::auths=solaris.*,solaris.grant;profiles=All lp::::profiles=Printer Management adm::::profiles=Log Management printmgr::::type=role;profiles=All
Значащих полей в этом файле всего два: имя пользователя (или роли) и атрибуты. Среди атрибутов выделяется атрибут type: он имеет значение role для записи о роли и normal - о пользователе. По умолчанию подразумевается запись о пользователе.
Формат записей в /etc/user_attr следующий:
user:qualifier:res1:res2:attr
где:
user - имя пользователя, такое как в /etc/passwd;
qualifier - зарезервировано;
res1 - зарезервировано;
res2 - зарезервировано;
attr - атрибуты, разделенные точкой с запятой, вида имя=значение; допустимые атрибуты - это auths, profiles, roles, type and project.
Атрибут auths предназначен для перечисления предопределенных прав (authorizations), в том числе и групп прав, где значение "все возможные" представляется символом "звездочка" (*), например,
auths=solaris.printer.*
обозначает все возможные права набора прав solaris.printer.
Атрибут roles позволяет разрешить пользователю играть различные роли, здесь они перечисляются через запятую. Если в строке, описывающей пользователя, не указан атрибут roles, пользователю запрещается играть какие бы то ни было роли. Например, запись о ролях может быть такой:
roles=printmgrs, useradmin
Атрибут type служит для определения того, относится ли текущая запись к обычному пользователю или же описывает роль. Для обычного пользователя следует указывать атрибут
type=normal
и для роли -
type=role
Аналогичным образом может быть назначен проект (project) и профиль прав (profiles) для пользователя или роли.