Guide d'administration système : Gestion des ressources des conteneurs et des zones Oracle Solaris

Identificateurs de projet

L'identificateur de projet est un élément administratif prévu pour identifier les charges de travail. Il peut être comparé à une balise de charge de travail à l'échelle des utilisateurs et des groupes. Un utilisateur ou un groupe peut appartenir à un ou plusieurs projets. L'intérêt de ces projets est de représenter les charges de travail auxquelles l'utilisateur (ou le groupe d'utilisateurs) est autorisé à participer. Il est possible de se baser sur ce critère d'appartenance pour imputer les ressources en fonction de leur utilisation ou des allocations initiales. Bien qu'il soit nécessaire d'assigner l'utilisateur à un projet par défaut, les processus lancés par l'utilisateur peuvent être associés à tout projet dont l'utilisateur est membre.

Détermination du projet par défaut des utilisateurs

Pour se connecter au système, l'utilisateur doit être affecté à un projet par défaut. L'utilisateur fait automatiquement partie de ce projet par défaut, même s'il ne figure pas dans la liste d'utilisateurs ou de groupes spécifiée dans ce projet.

Comme chaque processus du système a une appartenance au projet, il est nécessaire de prévoir un algorithme pour attribuer un projet par défaut au processus de connexion ou autre processus initial. Cet algorithme est décrit à la page de manuel getprojent(3C). Le système suit des étapes dans un ordre précis pour déterminer le projet par défaut. Si aucun projet par défaut n'est trouvé, la connexion utilisateur ou la demande de démarrrage d'un processus est refusée.

Le système procède dans l'ordre suivant pour déterminer le projet par défaut d'un utilisateur :

  1. Si l'utilisateur possède une entrée pour laquelle l'attribut project a été défini dans la base de données étendue des attributs utilisateur /etc/user_attr, la valeur de l'attribut project correspond au projet par défaut. Voir la page de manuel user_attr(4).

  2. Si un projet répondant au nom de user.id-utilisateur est présent dans la base de données project, ce projet est considéré comme le projet par défaut. Pour plus d'informations, reportez-vous à la page de manuel project(4).

  3. Si un projet intitulé group.nom-du-groupe est présent dans la base de données project, où nom-du-groupe représente le nom du groupe par défaut pour l'utilisateur, comme indiqué dans le fichier passwd, ce projet est considéré comme le projet par défaut. Pour plus d'informations sur le fichier passwd, reportez-vous à la page de manuel passwd(4).

  4. Si le projet spécial default est présent dans la base de données project, ce projet est considéré comme le projet par défaut.

Cette logique est fournie par la fonction de bibliothèque getdefaultproj. () Pour plus d'informations, voir la page de manuel getprojent(3PROJECT).

Définition des attributs utilisateur à l'aide des commandes useradd , usermod et passmgmt

Vous pouvez exécuter les commandes suivantes avec l'option -K et une paire clé=valeur pour définir les attributs utilisateur dans les fichiers locaux :

passmgmt

Modifier les informations utilisateur

useradd

Définir le projet par défaut pour l'utilisateur

usermod

Modifier les informations utilisateur

Les fichiers locaux peuvent correspondre aux fichiers suivants :

En cas d'utilisation d'un service d'attribution de noms de réseau tel que NIS pour compléter le fichier local, ces commandes ne permettent pas de changer les informations fournies par ce service. Elles se chargent, en revanche, d'effectuer les vérifications suivantes par rapport à la base de données du service d'attribution de noms externe :

Pour plus d'informations, reportez-vous aux pages de manuel passmgmt(1M), useradd(1M), usermod(1M) et user_attr(4).

Base de données project

Vous pouvez stocker les données de projet dans un fichier local, dans une correspondance de projets NIS (Network Information Service) ou un service d'annuaire LDAP (Lightweight Directory Access Protocol). Le fichier /etc/project ou le service d'attribution de noms est utilisé au moment de la connexion et par toutes les requêtes de gestion de compte émises par le module d'authentification enfichable (PAM) pour lier un utilisateur à un projet par défaut.


Remarque –

Les mises à jour des entrées dans la base de données project, apportées au fichier /etc/project ou à une représentation de la base de données dans un service d'attribution de noms du réseau, ne sont pas appliquées aux projets actuellement actifs. Elles concernent les nouvelles tâches rejoignant le projet lorsque vous exécutez la commande login ou newtask. Pour plus d'informations, reportez-vous aux pages de manuel login(1) et newtask(1).


Sous-système PAM

Les opérations permettant de se connecter au système, faisant appel à la commande rcp ou rsh et utilisant la commande ftp ou su ont toutes pour effet de changer ou de définir l'identité. Pour ce type d'opération, il est nécessaire d'utiliser un ensemble de modules configurables pour assurer l'authentification, la gestion de compte, la gestion des informations d'identification et la gestion de session.

Le module PAM de gestion de compte relatif aux projets est décrit dans la page de manuel pam_projects(5) Pour une présentation des modules d'authentification enfichables (PAM), reportez-vous au Chapitre 17, Using PAM du System Administration Guide: Security Services.

Configuration des services d'attribution de noms

La gestion des ressources prend en charge les bases de données project de services d'attribution de noms. L'emplacement de la base de données project est défini dans le fichier /etc/nsswitch.conf. Par défaut, files figure en premier dans la liste, mais les sources peuvent être répertoriées dans n'importe quel ordre.


project: files [nis] [ldap]

Si la liste contient plusieurs sources d'informations de projet, le fichier nsswitch.conf s'assure que la routine commence par rechercher les informations dans la première source avant de s'intéresser aux sources suivantes.

Pour plus d'informations au sujet du fichier /etc/nsswitch.conf, reportez-vous au Chapitre 2, The Name Service Switch (Overview) du System Administration Guide: Naming and Directory Services (DNS, NIS, and LDAP) et à la page de manuel nsswitch.conf(4).

Format de fichier /etc/project local

Si vous sélectionnez files en guise de source de base de données project dans le fichier nsswitch.conf, le processus de connexion recherche les informations de projet dans le fichier /etc/project. Pour plus d'informations, reportez-vous aux pages de manuel projects(1) et project(4).

Le fichier project contient une entrée d'une seule ligne sous la forme suivante pour chaque projet reconnu par le système :


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

Voici à quoi correspond chacun de ces champs :

nomproj

Nom du projet. Le nom doit être une chaîne composée de caractères alphanumériques, de caractères de soulignement (_), de tirets (-) et de points (.). Le point, qui est réservé aux projets ayant une signification particulière pour le système d'exploitation, peut être utilisé uniquement dans les noms de projets par défaut des utilisateurs. nomproj ne doit pas contenir de deux-points (: ) ni de caractères de saut de ligne.

idproj

Identificateur numérique unique du projet (IDPROJ) au sein du système. La valeur maximum du champ idproj est UID_MAX (2147483647).

commentaire

Description du projet.

liste-utilisateurs

Liste des utilisateurs (noms séparés par des virgules) ayant le droit de participer au projet.

Ce champ peut contenir des caractères génériques. L'astérisque (*) signifie que tous les utilisateurs rejoignent le projet. Un point d'exclamation suivi d'un astérisque (!*) a pour effet d'exclure tous les utilisateurs du projet. Le point d'exclamation (!) suivi d'un nom d'utilisateur permet d'exclure l'utilisateur spécifié du projet.

liste-groupes

Liste des groupes d'utilisateurs (noms séparés par des virgules) ayant le droit de participer au projet.

Ce champ peut contenir des caractères génériques. L'astérisque (*) signifie que tous les groupes rejoignent le projet. Un point d'exclamation suivi d'un astérisque (!*) a pour effet d'exclure tous les groupes du projet. Le point d'exclamation (!) suivi d'un nom de groupe permet d'exclure le groupe spécifié du projet.

attributs

Liste de paires nom-valeur séparées par un point-virgule, les contrôles de ressources par exemple (voir le Chapitre 6Contrôles des ressources (présentation)). nom représente une chaîne arbitraire qui définit l'attribut ayant trait à l'objet et valeur représente la valeur facultative de cet attribut.


name[=value]

Dans la paire nom-valeur, les noms peuvent être composés de lettres, de chiffres, de traits de soulignement et de points. Par convention, le point sert de séparateur entre les catégories et les sous-catégories du contrôle de ressource (rctl). Un nom d'attribut doit impérativement commencer par une lettre. Il fait également la distinction entre les minuscules et les majuscules.

Vous pouvez structurer les valeurs en utilisant des virgules et des parenthèses pour définir l'ordre de priorité.

Le point-virgule sert de caractère de séparation pour les paires nom-valeur. Vous ne pouvez pas utiliser ce symbole dans une définition de valeur. Le signe deux-points sert de caractère de séparation pour les champs du projet. Il est interdit de l'utiliser dans une définition de valeur.


Remarque –

Les routines de lecture de ce fichier s'interrompent chaque fois qu'elles rencontrent une entrée mal formée. Les projets spécifiés après l'entrée incorrecte ne sont pas assignés.


L'exemple suivant montre à quoi ressemble le fichier /etc/project par défaut :


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

L'exemple suivant présente le contenu du fichier /etc/project par défaut avec des entrées de projet ajoutées à la fin :


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::

Vous êtes libre également d'ajouter des contrôles de ressources et des attributs au fichier /etc/project  :

Configuration de projet pour le système d'information réseau NIS

Si vous avez recours au système d'information réseau NIS, vous pouvez configurer le fichier /etc/nsswitch.conf dans le but de rechercher les correspondances de projets NIS pour les projets :


project: nis files 

Les correspondances NIS, project.byname ou project.bynumber , se présentent sous la même forme que le fichier /etc/project :


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

Pour plus d'informations, reportez-vous au Chapitre 4, Network Information Service (NIS) (Overview) du System Administration Guide: Naming and Directory Services (DNS, NIS, and LDAP).

Configuration de projet pour le service d'annuaire LDAP

Si vous avez recours au service d'annuaire LDAP, vous pouvez configurer le fichier /etc/nsswitch.conf dans le but d'effectuer des recherches dans la base de données project pour les projets :


project: ldap files

Pour plus d'informations sur le service d'annuaire LDAP, reportez-vous au Chapitre 8, Introduction to LDAP Naming Services (Overview/Reference) du System Administration Guide: Naming and Directory Services (DNS, NIS, and LDAP). Pour plus d'informations sur le schéma pour les entrées de projet dans une base de données LDAP, reportez-vous à la section Solaris Schemas du System Administration Guide: Naming and Directory Services (DNS, NIS, and LDAP).