Subroutine getobjattrs

Zweck

Ruft mehrere Objektsicherheitsattribute aus der der Domäne zugewiesenen Objektdatenbank ab.

Bibliothek

Sicherheitsbibliothek (libc.a)

Syntax

#include <usersec.h>
int getobjattrs ( Obj, Attributes, Count)
char * Obj;
dbattr_t *Attributes;
int Count;

Beschreibung

Die Subroutine getobjattrs liest ein oder mehrere Attribute aus der Objektdatenbank, die der Domäne zugeordnet ist. Das Array Attributes enthält Informationen zu jedem zu lesenden Attribut. Jedes Element im Array Attributes muss bei einem erfolgreichen Aufruf der Subroutine getobjattrs untersucht werden, um festzustellen, ob das Array Attributes erfolgreich abgerufen wurde. Die Werte der Attribute des Typs SEC_CHAR oder SEC_LIST werden an den zugeordneten Speicher zurückgegeben. Der Aufrufende muss diesen Speicher freigeben. Die Datenstruktur dbattr_t enthält die folgenden Felder:

Der Name des Zielobjektattributs. Die folgenden gültigen Objektattribute für die Subroutine getobjattrs sind in der Datei usersec.h definiert:
Attributname
Gibt den Namen an.
attr_idx
Dieses Attribut wird intern von der Subroutine getobjattrs verwendet.
Attributtyp
Der Typ eines Zielattributs
Attribut-Flag
Das Ergebnis der Anforderung ist das Lesen des Zielattributs. Bei erfolgreichem Abschluss wird der Wert null zurückgegeben. Andernfalls wird ein Wert ungleich null zurückgegeben.
attr_un
Eine Union-Verknüpfung, die die zurückgegebenen Werte für die angeforderte Abfrage enthält
In der folgenden Tabelle sind die verschiedenen Werte für das Attribut attr_name aufgelistet:
Ihren Namen Beschreibung Typ
S_Domänen Eine Liste der Domänen des Objekts. SEC_LISTE
S_CONFSETS Die Liste der Domänen, die in der Konfliktgruppe des Objekts definiert sind. SEC_LISTE
S_TYP Der Typ des Objekts. Gültige Werte sind: S_DEVICE, S_FILE, S_NETPORT, S_NETINT SEC_ZCHN
S_SECFLAGS Das dem Objekt zugeordnete Sicherheitsflag. Die gültigen Werte sind FSF_DOM_ALL und FSF_DOM_ANY. SEC_INT (GANZZAHL)
Die folgenden Union-Mitglieder entsprechen den Definitionen der Makros attr_char, attr_int, attr_long und attr_llong in der Datei usersec.h :
Au_Zeichen
Attribute der Typen SEC_CHAR und SEC_LIST speichern einen Zeiger auf den zurückgegebenen Wert in dieser Teildatei, wenn die Attribute erfolgreich abgerufen wurden. Der Aufrufende ist für die Freigabe dieses Speichers verantwortlich.
au_int
Die Speicherposition für Attribute des Typs SEC_INT.
au_long
Die Speicherposition für Attribute des Typs SEC_LONG.
Au_llong
Die Speicherposition für Attribute des Typs SEC_LLONG.

Wird ALL für den Parameter Obj angegeben, ist das einzige gültige Attribut, das im Array Attributes angezeigt wird, das Attribut S_DOMAINS. Wenn Sie ein beliebiges anderes Attribut mit dem Domänennamen ALL angeben, schlägt die Subroutine getobjattrs fehl.

Parameter

OBJ
Gibt den Objektnamen für das zu lesende Array Attributes an.
Attribute
Ein Zeiger auf ein Array von null oder mehr Elementen des Typs dbattr_t. Die Liste der domänenspezifischen Objektattribute wird in der Headerdatei usersec.h definiert.
count
Die Anzahl der Array-Elemente im Array Attributes .

Sicherheit

Dateien, auf die zugegriffen wird:
/etc/security/domains
Modus: r

Rückgabewerte

Wenn das durch den Parameter Obj angegebene Objekt in der der Domäne zugeordneten Objektdatenbank vorhanden ist, gibt die Subroutine getobjattrs den Wert null zurück. Nach erfolgreicher Beendigung muss das Attribut attr_flag jedes Elements im Array Attributes untersucht werden, um festzustellen, ob es erfolgreich abgerufen wurde. Wenn das angegebene Objekt nicht existiert, wird der Wert -1 zurückgegeben, und der Wert errno wird gesetzt, um den Fehler anzuzeigen.

Fehlercodes

Wenn die Unterroutine getobjattrs -1 zurückgibt, wird einer der folgenden errno-Werte gesetzt:
EINVAL

Der Parameter Obj ist NULL.

Der Parameter Anzahl ist kleiner als null.

Das Array Attributes ist NULL und der Parameter Anzahl ist größer als null.

Der Parameter Obj hat den Wert ALL, aber der Eintrag Attributes enthält ein anderes Attribut als S_DOMAINS.

ENOENT
Das im Parameter Obj angegebene Objekt ist nicht vorhanden.
ENOMEM
Speicher kann nicht zugeordnet werden.
EPERM
Die Operation ist nicht zulässig.
EACCES
Die Zugriffsberechtigung für die Datenanforderung wird verweigert.
Wenn die Subroutine getobjattrs ein Attribut nicht abfragen kann, wird einer der folgenden Fehler an das Feld attr_flag des entsprechenden Elements Attributes zurückgegeben:
EACCES
Das aufrufende Programm hat keinen Zugriff auf das im Feld attr_name angegebene Attribut.
EINVAL

Das Feld attr_name im Eintrag Attributes ist kein erkanntes Objektattribut.

Das Feld attr_type im Eintrag Attribute enthält einen ungültigen Typ.

Das Feld attr_un im Eintrag Attribute zeigt nicht auf einen gültigen Puffer.

ENOATTR

Das Feld attr_name im Eintrag Attributes gibt ein gültiges Attribut an. Für dieses Objekt ist jedoch kein Wert definiert.