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.
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 :
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).
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).
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).
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).
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 :
Modifier les informations utilisateur
Définir le projet par défaut pour l'utilisateur
Modifier les informations utilisateur
Les fichiers locaux peuvent correspondre aux fichiers suivants :
/etc/group
/etc/passwd
/etc/project
/etc/shadow
/etc/user_attr
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 :
Utilisation d'un nom d'utilisateur (ou rôle) unique
Utilisation d'un ID d'utilisateur unique
Existence des noms de groupe indiqués
Pour plus d'informations, reportez-vous aux pages de manuel passmgmt(1M), useradd(1M), usermod(1M) et user_attr(4).
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.
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).
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.
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).
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 :
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.
Identificateur numérique unique du projet (IDPROJ) au sein du système. La valeur maximum du champ idproj est UID_MAX (2147483647).
Description du projet.
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 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.
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.
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 :
Pour ajouter des contrôles de ressources pour un projet, reportez-vous à la section Définition des contrôles des ressources.
Pour définir une limitation d'utilisation des ressources de mémoire physique pour un projet à l'aide du démon d'allocation restrictive décrit à la page de manuel rcapd(1M), reportez-vous à la section Attribut permettant de limiter l'utilisation de la mémoire physique pour les projets.
Pour ajouter un attribut project.pool à l'entrée d'un projet, reportez-vous à la section Création de la configuration.
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).
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).