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é.

Le tableau suivant répertorie les différentes valeurs de l'attribut attr_name :
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 :
  • _NETINT

    Pour les interfaces réseau

  • FICHIER_FICHIER

    Pour les objets basés sur des fichiers. Le nom d'objet doit être le chemin d'accès absolu.

  • _UNITE

    Pour les unités. Le chemin d'accès absolu doit être spécifié.

  • Ports_NETPORT

    Pour les ports et les plages de ports

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
Les membres d'union suivants correspondent aux définitions des macros attr_char, attr_int, attr_long et attr_long du fichier usersec.h respectivement.
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
/etc/security/domobjs
rw

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.