Guía de administración de sistemas: administración de recursos y contenedores de Oracle Solaris y zonas de Oracle Solaris

Identificadores de proyecto

El identificador de proyecto es un identificador alternativo que se utiliza para identificar el trabajo relacionado. El identificador de proyecto se puede considerar una etiqueta de carga de trabajo equivalente a los identificadores de usuario y grupo. Un usuario o grupo puede pertenecer a un proyecto o más. Estos proyectos pueden utilizarse para representar las cargas de trabajo en las que el usuario (o el grupo de usuarios) tiene permiso para participar. Esta pertenencia al grupo puede constituir la base del contracargo que se basa, por ejemplo, en el uso o las asignaciones de recursos iniciales. Aunque debe asignarse un usuario a un proyecto predeterminado, el proceso que inicia el usuario se puede asociar con cualquier proyecto del que es miembro el usuario.

Determinación de un proyecto predeterminado del usuario

Para iniciar sesión en el sistema, un usuario debe tener asignado un proyecto predeterminado. Un usuario es automáticamente miembro del proyecto predeterminado, aunque no se encuentre en la lista de usuarios o grupos del proyecto.

Dado que cada proceso del sistema procesa la pertenencia a un grupo del proyecto, se necesita un algoritmo para asignar un proyecto predeterminado al proceso de conexión u otro proceso inicial. El algoritmo se documenta en la página del comando man getprojent(3C). El sistema sigue una serie de pasos para determinar el proyecto predeterminado. Si no se encuentra ningún proyecto predeterminado, se deniega la conexión del usuario o su solicitud para iniciar un proceso.

El sistema sigue estos pasos de forma secuencial para determinar un proyecto predeterminado del usuario:

  1. Si el usuario tiene una entrada con un atributo project definido en la base de datos de atributos de usuario extendida /etc/user_attr, el valor del atributo project es el proyecto predeterminado. Consulte la página del comando man user_attr(4).

  2. Si hay un proyecto con el nombre user.ID_usuario en la base de datos project, dicho proyecto es el predeterminado. Consulte la página del comando man project(4) para obtener más información.

  3. Si hay un proyecto con el nombre group.nombre_grupo en la base de datos project, en el que nombre_grupo es el nombre del grupo predeterminado para el usuario, tal como se especifica en el archivo passwd, dicho proyecto es el predeterminado. Para obtener información sobre el archivo passwd, consulte la página del comando man passwd(4).

  4. Si el proyecto especial default está presente en la base de datos project, dicho proyecto es el predeterminado.

Esta lógica la proporciona la función de biblioteca getdefaultproj. () Consulte la página del comando man getprojent(3PROJECT) para obtener más información.

Definición de atributos de usuario con los comandos useradd, usermod y passmgmt

Puede utilizar los siguientes comandos con la opción -K y un par clave=valor para definir los atributos de usuario en los archivos locales:

passmgmt

Modificar información del usuario

useradd

Definir proyecto predeterminado para el usuario

usermod

Modificar información del usuario

Los archivos locales pueden incluir:

Si se utiliza un servicio de nombres de red como NIS para complementar el archivo local con entradas adicionales, estos comandos no pueden cambiar la información proporcionada por el servicio de nombres de red. Sin embargo, los comandos comprueban lo siguiente en la base de datos de servicio de nombres externa:

Para obtener más información, consulte las páginas de comando man passmgmt(1M), useradd(1M), usermod(1M), y user_attr(4).

Base de datos project

Puede almacenar los datos de proyecto en un archivo local, en el mapa de proyecto del Servicio de información de la red (NIS) o en un servicio de directorio de protocolo ligero de acceso a directorios (LDAP). El archivo /etc/project o el servicio de nombres lo utilizan durante la conexión todas las solicitudes de administración de cuentas del módulo de autenticación enchufable (PAM) para vincular un usuario a un proyecto predeterminado.


Nota –

Las actualizaciones de las entradas de la base de datos del proyecto, tanto si son para el archivo /etc/project como para una representación de la base de datos en un servicio de nombres de red, no se aplican a los proyectos activos. Las actualizaciones se aplican a las nuevas tareas que se unen al proyecto cuando se utilizan los comandos login o newtask. Para obtener más información, consulte las páginas de comando man login(1) y newtask(1).


Subsistema PAM

Las operaciones que cambian o definen identidades incluyen el registro en el sistema, la invocación de un comando rcp o rsh, utilizando ftp o su. Cuando una operación implica cambiar o definir una identidad, se utiliza un conjunto de módulos configurables para proporcionar autenticación y administración de cuentas, credenciales y sesiones.

El módulo PAM de administración de cuentas para los proyectos se documenta en la página del comando man pam_projects(5) Para ver una descripción general de PAM, consulte el Capítulo 17, Using PAM de System Administration Guide: Security Services.

Configuración de servicios de nombres

La administración de recursos admite las bases de datos project del servicio de nombres. La ubicación donde se almacena la base de datos project se define en el archivo /etc/nsswitch.conf. De modo predeterminado, files aparece en primer lugar, pero los orígenes pueden enumerarse en cualquier orden.


project: files [nis] [ldap]

Si se enumera más de un origen para la información del proyecto, el archivo nsswitch.conf dirige la rutina para empezar a buscar la información en el primer origen enumerado y luego buscar los orígenes subsiguientes.

Para obtener más información sobre el archivo /etc/nsswitch.conf, consulte el Capítulo 2, The Name Service Switch (Overview) de System Administration Guide: Naming and Directory Services (DNS, NIS, and LDAP) y nsswitch.conf(4).

Formato de archivo /etc/project local

Si selecciona files como origen de la base de datos project en el archivo nsswitch.conf, el proceso de inicio de sesión busca el archivo /etc/project para obtener información del proyecto. Consulte las páginas del comando man projects(1) y project(4) para obtener información adicional.

El archivo project contiene una entrada de una línea con el siguiente formato para cada proyecto reconocido por el sistema:


projname:projid:comment:user-list:group-list:attributes

Los campos se definen del modo siguiente:

nombre_proyecto

Nombre del proyecto. El nombre debe ser una cadena que esté compuesta por caracteres alfanuméricos, guiones bajos (_), guiones (-) y puntos (.). El punto, que queda reservado para los proyectos que tengan un significado especial para el sistema operativo, sólo se puede utilizar en los nombres de proyectos predeterminados para usuarios. projname no puede contener dos puntos (: ) o caracteres de línea nueva.

ID_proyecto

El ID numérico exclusivo del proyecto (PROJID) en el sistema. El valor máximo del campo projid es UID_MAX (2147483647).

comentario

Descripción del proyecto.

lista_usuario

Lista separada por comas de los usuarios que se permiten en el proyecto.

En este campo pueden utilizarse comodines. El símbolo de asterisco (*) permite a los usuarios unirse al proyecto. Un signo de exclamación de cierre seguido de un asterisco (!*) excluye del proyecto a todos los usuarios. Un signo de exclamación (!) seguido de un nombre de usuario excluye del proyecto al usuario especificado.

lista_grupos

Lista separada por comas de los grupos de usuarios que se permiten en el proyecto.

En este campo pueden utilizarse comodines. El símbolo de asterisco (*) permite a todos los grupos unirse al proyecto. Un signo de exclamación de cierre seguido de un asterisco (!*) excluye del proyecto a todos los grupos. Un signo de exclamación (!) seguido de un nombre de grupo excluye del proyecto al grupo especificado.

atributos

Una lista de pares de nombre-valor separados por puntos y coma, como los controles de recursos (consulte el Capítulo 6Controles de recursos (descripción general)). nombre es una cadena arbitraria que especifica el atributo relacionado con el objeto y valor es el valor opcional de dicho atributo.


name[=value]

En el par de nombre-valor, los nombres se restringen a letras, dígitos, subrayados y puntos. Un punto suele utilizarse como separador entre las categorías y subcategorías del control de recursos (rctl). El primer carácter de un nombre de atributo debe ser una letra. El nombre distingue entre mayúsculas y minúsculas.

Los valores pueden estructurarse utilizando comas y paréntesis para establecer el orden de precedencia.

El símbolo de punto y coma se utiliza para separar pares de nombre-valor. No se puede utilizar un punto y coma en una definición de valor. El símbolo de dos puntos se utiliza para separar campos de proyecto. No se puede utilizar el símbolo de dos puntos en una definición de valor.


Nota –

Las rutinas que leen este archivo se detienen si detectan una entrada mal creada. Cualquier proyecto que se especifique después de la entrada incorrecta no podrá asignarse.


Este ejemplo muestra el archivo /etc/project predeterminado:


system:0:System:::
user.root:1:Super-User:::
noproject:2:No Project:::
default:3::::
group.staff:10::::

Este ejemplo muestra el archivo /etc/project predeterminado con entradas de proyecto añadidas al final:


system:0:System:::
user.root:1:Super-User:::
noproject:2:No Project:::
default:3::::
group.staff:10::::
user.ml:2424:Lyle Personal:::
booksite:4113:Book Auction Project:ml,mp,jtd,kjh::

También puede añadir controles de recursos y atributos al archivo /etc/project:

Configuración del proyecto para NIS

Si utiliza NIS, puede especificar en el archivo /etc/nsswitch.conf la búsqueda de las asignaciones de proyecto NIS para los proyectos:


project: nis files 

Las asignaciones NIS, tanto project.byname como project.bynumber, tienen la misma forma que el archivo /etc/project:


projname:projid:comment:user-list:group-list:attributes

Para más información, consulte el Capítulo 4, Network Information Service (NIS) (Overview) de System Administration Guide: Naming and Directory Services (DNS, NIS, and LDAP).

Configuración del proyecto para LDAP

Si utiliza LDAP, puede especificar en el archivo /etc/nsswitch.conf la búsqueda de bases de datos LDAP project para los proyectos:


project: ldap files

Para obtener más información acerca de LDAP, consulte el Capítulo 8, Introduction to LDAP Naming Services (Overview/Reference) de System Administration Guide: Naming and Directory Services (DNS, NIS, and LDAP). Para obtener más información sobre el esquema para las entradas de proyecto en una base de datos LDAP, consulte Solaris Schemas de System Administration Guide: Naming and Directory Services (DNS, NIS, and LDAP).