Systemverwaltungshandbuch: Oracle Solaris Container - Ressourcenverwaltung und Solaris Zones

Projektbezeichner

Der Projektbezeichner ist ein administrativer Bezeichner zur Identifikation von verwandten Aufgaben. Der Projektbezeichner ist im Prinzip das Arbeitslast-Tag-Äquivalent zu den Benutzer- und Gruppenbezeichnern. Ein Benutzer oder eine Gruppe können zu einem oder mehreren Projekten gehören. Mit diesen Projekten werden die Arbeitslasten dargestellt, an denen der Benutzer (oder die Benutzergruppe) teilnehmen darf. Diese Mitgliedschaft kann als Basis des Chargeback verwendet werden, auf der z. B. die Nutzung oder die ursprünglichen Ressourcenzuordnungen basieren. Obwohl einem Benutzer ein Standardprojekt zugewiesen sein muss, können die vom Benutzer gestarteten Prozesse zu jedem Projekt gehören, bei dem der Benutzer Mitglied ist.

Festlegen des Standardprojekt eines Benutzers

Jedem Benutzer muss ein Standardprojekt zugewiesen sein, damit er bzw. sie sich beim System anmelden kann. Ein Benutzer ist automatisch Mitglied dieses Standardprojekts. Dies gilt auch dann, wenn der Benutzer nicht in der für das Projekt angegebenen Benutzer- oder Gruppenliste enthalten ist.

Da jeder Prozess auf einem System über eine Projektmitgliedschaft verfügt, ist ein Algorithmus erforderlich, der bei der Anmeldung ein Standardprojekt oder einen anderen Anfangsprozess zuweist. Dieser Algorithmus ist in der Manpage getprojent(3C) beschrieben. Zur Ermittlung des Standardprojekts führt das System die im Folgenden aufgeführten Schritte in der angegebenen Reihenfolge aus. Wenn kein Standardprojekt gefunden wurde, wird die Benutzeranmeldung oder Anfrage nach einem Prozessstart verweigert.

Das System führt nacheinander die folgenden Schritte aus, um das Standardprojekt eines Benutzers zu ermitteln:

  1. Verfügt der Benutzer über einen Eintrag mit einem project-Attribut in der Datenbank mit den erweiterten Benutzerattributen /etc/user_attr, wird der Wert des project-Attributs als Standardprojekt verwendet. Weitere Informationen finden Sie in der Manpage user_attr(4).

  2. Ist ein Projekt mit dem Namen user.Benutzer-ID in der project-Datenbank vorhanden, wird dieses Projekt als Standardprojekt verwendet. Weitere Informationen entnehmen Sie bitte der Manpage krb5.conf (4).project(4)

  3. Ist ein Projekt mit dem Namen group.Gruppenname in der project-Datenbank vorhanden und ist Gruppenname der Name der Standardgruppe des Benutzers (gemäß der passwd-Datei), wird dieses Projekt als Standardprojekt verwendet. Weitere Informationen zur passwd-Datei finden Sie in der Manpage passwd(4).

  4. Ist das Sonderprojekt default in der project-Datenbank vorhanden, wird dieses Projekt als Standardprojekt verwendet.

Die Logik wird von der Bibliotheksfunktion getdefaultproj() bereitgestellt. Weitere Informationen finden Sie in der Manpage getprojent(3PROJECT).

Einrichten von Benutzerattributen mit den Befehlen useradd , usermod und passmgmt

Mit den folgenden Befehlen und der Option -K sowie einem Schlüssel=Wert-Paar können Sie die Benutzerattribute in lokalen Dateien einrichten:

passmgmt

Ändern vom Benutzerinformationen

useradd

Einrichten des Standardprojekts eines Benutzers

usermod

Ändern vom Benutzerinformationen

Lokale Dateien können Folgende umfassen:

Wenn eine lokale Datei mit einem Netzwerk-Namen-Service wie NIS um zusätzliche Einträge ergänzt wird, können diese Befehle nicht zum Ändern der vom Netzwerk-Namen-Service bereitgestellten Daten verwendet werden. Mit den Befehlen kann jedoch Folgendes mit einer externen Namen-Service-Datenbank verglichen werden:

Weitere Informationen finden Sie in den Manpages passmgmt(1M), useradd(1M), usermod(1M) und user_attr(4).

project-Datenbank

Sie können die Projektdaten in einer lokalen Datei, in einer Network Information Service (NIS)-Projektmap oder in einem Lightweight Directory Access Protocol (LDAP)-Verzeichnisservice speichern. Die Datei /etc/project oder der Namen-Service wird bei der Anmeldung und bei allen Anfragen zum Kontomanagement durch die plugfähige Authentifizierung (Pluggable Authentication Module, PAM) verwendet, um einen Benutzer an einen Standardprojekt zu binden.


Hinweis –

Aktualisierungen der Einträge in der Projektdatenbank, ob an der Datei /etc/project oder an einer Repräsentation der Datenbank in einem Netzwerk-Namen-Service, werden nicht für die jeweils aktiven Projekte übernommen. Die Aktualisierungen werden jedoch für neue Aufgaben übernommen, die einem Projekt über die Befehle login oder newtask hinzugefügt werden. Weitere Informationen finden Sie in den Manpages login(1) und newtask(1).


PAM-Untersystem

Zu den Vorgängen, bei denen Identitäten geändert oder eingestellt werden, gehören die Anmeldung beim System, das Aufrufen des Befehls rcp oder rsh, oder das Verwenden von ftp oder su. Wenn ein Vorgang u. a. eine Identität ändert oder einstellt, wird ein Set mit konfigurierbaren Modulen verwendet, um Funktionen zur Authentifizierung, Kontoverwaltung und Sitzungsverwaltung bereitzustellen.

Das PAM-Modul zur Kontoverwaltung für Projekte ist in der Manpage pam_projects(5) dokumentiert. Eine Übersicht zum PAM finden Sie in Kapitel 17, Using PAM in System Administration Guide: Security Services.

Konfiguration der Namen-Services

Die Ressourcenverwaltung unterstützt die project-Datenbanken der Namen-Services. Der Speicherort der project-Datenbank ist in der Datei /etc/nsswitch.conf definiert. Standardmäßig wird files zuerst aufgelistet, aber die Quellen können in einer beliebigen Reihenfolge erscheinen.


project: files [nis] [ldap]

Wenn mehrere Quellen für die Projektinformationen aufgelistet sind, sorgt die Datei nsswitch.conf dafür, dass die Suche nach Informationen in der ersten aufgeführten Quelle beginnt, dann werden alle aufgeführten Quellen nacheinander durchsucht.

Weitere Informationen zur Datei /etc/nsswitch.conf finden Sie in Kapitel 2, The Name Service Switch (Overview) in System Administration Guide: Naming and Directory Services (DNS, NIS, and LDAP) und in der Manpage nsswitch.conf(4).

Format der lokalen Datei /etc/project

Wenn Sie files als project-Datenbankquelle in der Datei nsswitch.conf auswählen, sucht der Anmeldeprozess in der Datei /etc/project nach Projektinformationen. Weitere Informationen finden Sie in den Manpages projects(1) und project(4).

Die Datei project enthält für jedes vom System erkannte Projekt einen einzeiligen Eintrag in dem folgenden Format:


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

Die Felder sind wie folgt definiert:

Projname

Der Name des Projekts. Der Name muss aus einer Zeichenfolge mit alphanumerischen Zeichen, Unterstrichen (_), Bindestrichen (-) und Punkten (.) bestehen. Der Punkt, der für Projekte mit besonderer Bedeutung für das Betriebssystem reserviert ist, kann nur in denNamen der Benutzer-Standardprojekte verwendet werden. Projname darf keinen Doppelpunkt (: ) oder ein Absatzzeichen enthalten.

Projid

Die einmalige numerische ID des Projekts (PROJID) innerhalb des Systems. Der Höchstwert im Feld Projid ist UID_MAX ( 2147483647).

Kommentar

Eine Beschreibung des Projekts.

Benutzerliste

Eine durch Kommata getrennte Liste der im Projekt zulässigen Benutzer.

In diesem Feld können Platzhalter verwendet werden. Bei einem Sternchen (*) ist es allen Benutzern gestattet, dem Projekt beizutreten. Bei einem Ausrufezeichen gefolgt von einem Sternchen (!*) sind alle Benutzer vom Projekt ausgeschlossen. Ein Ausrufezeichen (!) gefolgt von einem Benutzernamen schließt den angegebenen Benutzer vom Projekt aus.

Gruppenliste

Eine durch Kommata getrennte Liste der im Projekt zulässigen Gruppen.

In diesem Feld können Platzhalter verwendet werden. Bei einem Sternchen (*) ist es allen Gruppen gestattet, dem Projekt beizutreten. Bei einem Ausrufezeichen gefolgt von einem Sternchen (!*) sind alle Gruppen·vom Projekt ausgeschlossen. Ein Ausrufezeichen (!) gefolgt von einem Gruppennamen schließt die angegebene Gruppe vom Projekt aus.

Attribute

Eine durch Semikola getrennte Liste von Name/Wert-Paaren, zum Beispiel Resource Controls (siehe Kapitel 6Einführung in die Resource Controls). Name ist eine willkürliche Zeichenfolge, die das objektbezogene Attribut angibt, und Wert ist der optionale Wert für das Attribut.


name[=value]

In Name/Wert-Paaren sind die Namen auf Buchstaben, Zahlen, Unterstriche und Punkte beschränkt. Ein Punkt wird in der Regel als Trennzeichen zwischen den Kategorien und Unterkategorien der Resource Control (rctl) verwendet. Das erste Zeichen eines Attributnamens muss ein Buchstabe sein. Der Name ist abhängig von der Groß-/Kleinschreibung.

Werte können mithilfe von Kommata und Klammern strukturiert werden, um eine Rangfolge herzustellen.

Ein Semikolon dient zum Trennen von Name/Wert-Paaren. Es kann nicht in einer Wertdefinition verwendet werden. Ein Doppelpunkt dient zum Trennen von Projektfeldern. Er kann nicht in einer Wertdefinition verwendet werden.


Hinweis –

Programmroutinen, die diese Datei einlesen, stoppen bei einem falsch formatierten Eintrag. Projekte, die hinter einem falschen formatierten Eintrag aufgeführt sind, werden nicht zugewiesen.


Das folgende Beispiel zeigt die Standarddatei /etc/project:


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

Das folgende Beispiel zeigt die Standarddatei /etc/project, an deren Ende Projekteinträge hinzugefügt wurden:


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

Sie können der Datei /etc/project auch Resource Controls und Attribute hinzufügen:

Projektkonfiguration für NIS

Wenn Sie NIS verwenden, können Sie in der Datei /etc/nsswitch.conf angeben, die NIS-Projektmaps nach Projekten zu durchsuchen:


project: nis files 

Die NIS-Maps, entweder project.byname oder project.bynumber, weisen das gleiche Format wie die Datei /etc/project auf:


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

Weitere Informationen finden Sie in Kapitel 4, Network Information Service (NIS) (Overview) in System Administration Guide: Naming and Directory Services (DNS, NIS, and LDAP).

Projektkonfiguration für LDAP

Wenn Sie LDAP verwenden, können Sie in der Datei /etc/nsswitch.conf angeben, die LDAP-Datenbank project nach Projekten zu durchsuchen:


project: ldap files

Weitere Informationen zu LDAP finden Sie in Kapitel 8, Introduction to LDAP Naming Services (Overview/Reference) in System Administration Guide: Naming and Directory Services (DNS, NIS, and LDAP). Weitere Informationen zum Schema für Projekteinträge in einer LDAP-Datenbank finden Sie unter Solaris Schemas in System Administration Guide: Naming and Directory Services (DNS, NIS, and LDAP).