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:
- 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
| 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) |
- 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
- /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
- 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.
- 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.