Sous-routine putobjattrs
Objectif
Modifie les attributs de sécurité de plusieurs objets dans la base de données d'objets affectée à un domaine.
Bibliothèque
Bibliothèque de sécurité (libc.a)
Syntaxe
#include <usersec.h>
int putobjattrs ( Obj, Attributes,Count )
char * Dom;
dbattr_t *Attributes;
intCount;Descriptif
La sous-routine putobjattrs modifie un ou plusieurs attributs de la base de données des objets affectés à un domaine. La sous-routine ne peut être appelée qu'avec un objet qui existe déjà dans la base de données d'objets affectée au domaine.
Pour créer ou supprimer un objet, utilisez la sous-routine putobjattr à la place. Les données modifiées par la sous-routine putobjattrs doivent être explicitement validées en appelant la sous-routine putobjattr avec un paramètre Type spécifiant SEC_COMMIT. Jusqu'à ce que les données soient validées, seules les sous-routines getobjattr et getobjattrs du processus renvoient les données modifiées.
Les modifications apportées à la base de données d'objets de domaine n'ont pas d'impact sur les considérations de sécurité tant que la totalité de la base de données n'a pas été envoyée aux tables de sécurité du noyau à l'aide de la commande setkst .
Le tableau Attributs contient des informations sur chaque attribut à mettre à jour. Chaque valeur spécifiée dans le tableau Attributs doit être examinée lors d'un appel réussi à la sous-routine putobjattrs afin de déterminer si la valeur du tableau Attributs a été écrite avec succès. La structure de données dbattr_t contient les zones suivantes:
| Article | Descriptif |
|---|---|
| nom_attr | Indique le nom. |
| attr_idx | Cet attribut est utilisé en interne par la sous-routine putobjattrs . |
| type_attr | Type de l'attribut en cours de mise à jour. |
| indice_attr | Résultat de la demande de mise à jour de l'attribut cible. Une fois l'opération terminée, la valeur zéro est renvoyée. Sinon, une valeur différente de zéro est renvoyée. Union contenant la valeur avec laquelle mettre à jour l'attribut demandé. |
| Nom | Descriptif | Type |
|---|---|---|
| _DOMAINS | Liste des domaines auxquels appartient l'objet. | LISTE DES SECTEURS |
| S_CONFSETS | Liste des domaines exclus de l'accès à l'objet. | LISTE DES SECTEURS |
| _OBJTYPE | Type de l'objet. Les valeurs valides sont :
|
SEC_CHAR (CHAR) |
| S_SECFLAGS | Indicateurs de sécurité de l'objet. Les valeurs admises sont FSF_DOM_ALL et FSF_DOM_ANY. | SEC_INT |
| Article | Descriptif |
|---|---|
| caractère_aug | Pointeur de caractères vers la valeur à écrire pour les attributs des types SEC_CHAR et SEC_LIST. |
| au_int | Valeur entière à écrire pour les attributs de type SEC_INT. |
| au_long | Valeur longue à écrire pour les attributs de type SEC_LONG. |
| au_llong | Valeur longue qui doit être écrite pour les attributs de type SEC_LLONG. |
Paramètres
| Article | Descriptif |
|---|---|
| OBJ | Indique le nom d'objet affecté au domaine pour lequel les attributs doivent être mis à jour. |
| Attributs | Un pointeur vers un tableau de zéro ou plusieurs attributs du type dbattr_t . La liste des attributs d'objet affectés à un domaine est définie dans le fichier d'en-tête usersec.h . |
| count | Nombre d'éléments de tableau dans le paramètre Attributs . |
Security
Fichiers accédés :
| Article | Descriptif |
|---|---|
| Fichier | Mode |
|
|
Valeurs renvoyées
Si l'objet spécifié par le paramètre Obj existe dans la base de données d'objets affectée au domaine, la sous-routine putobjattrs renvoie zéro, même si aucun attribut du tableau Attributs n'a été mis à jour. En cas de réussite, l'attribut attr_flag spécifié dans le tableau Attributs doit être examiné pour déterminer s'il a été mis à jour. Si l'objet spécifié n'existe pas, la valeur -1 est renvoyée et la valeur errno est définie pour indiquer l'erreur.
Codes d'erreur
Si putobjattrs renvoie -1, l'une des valeurs errno suivantes est définie :
| Article | Descriptif |
|---|---|
| EINVAL | Le paramètre Obj est NULL ou par défaut. Le paramètre Nombre est inférieur à zéro. Le tableau Attributs est NULL et le paramètre Nombre est supérieur à zéro. Le tableau Attributs ne pointe pas vers des données valides pour l'attribut demandé. |
| ENOENT | L'objet spécifié par le paramètre Obj n'existe pas. |
| ENOMEM | La mémoire ne peut pas être allouée. |
| EPERM | Or, cette opération n'est pas permise. |
| EACCES | Les droits d'accès sont refusés pour la demande de données. |
Si la sous-routine putobjattrs ne parvient pas à mettre à jour un attribut, l'une des erreurs suivantes est renvoyée dans la zone attr_flag de l'élément Attributes correspondant:
| Article | Descriptif |
|---|---|
| EINVAL | La zone nom_attr de l'entrée Attributs n'est pas un attribut d'objet reconnu. La zone attr_type de l'entrée Attributs contient un type non valide. La zone attr_un de l'entrée Attributs ne pointe pas vers une mémoire tampon valide ou vers des données valides pour ce type d'attribut. |
| EACCES | L'appelant ne dispose pas d'un accès en écriture à la base de données de domaine. |