Sous-routine putobjattr

Objectif

Modifie l'objet défini dans la base de données des objets affectés à un domaine.

Bibliothèque

Bibliothèque de sécurité (libc.a)

Syntaxe

#include <usersec.h>
int putobjattr ( Obj, Attribute, Value, Type )
char * Obj;
char *Attribute;
void * Value;
int Type;

Descriptif

La sous-routine putobjattr modifie la base de données des objets affectés à un domaine. Vous pouvez ajouter un nouvel objet à la base de données d'objets affectée à un domaine en appelant la sous-routine putobjattr avec le type SEC_NEW et en spécifiant le nouveau nom d'objet. La suppression d'un objet ou d'un attribut d'objet est effectuée à l'aide du type SEC_DELETE pour la sous-routine putobjattr .

Les données modifiées par la sous-routine putobjattr doivent être explicitement validées en appelant la sous-routine putobjattr avec un paramètre Type spécifiant le type SEC_COMMIT. Jusqu'à ce que toutes 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 de domaine n'ont pas d'impact sur les considérations de sécurité tant que la base de données complète n'a pas été envoyée aux tables de sécurité du noyau à l'aide de la commande setkst ou tant que le système n'a pas été réamorcé.

Paramètres

Tableau 1. Paramètres
Article Descriptif
OBJ Nom de l'objet. Ce paramètre doit être spécifié sauf si le paramètre Type est SEC_COMMIT.
Attribut Indique l'attribut à écrire. Les attributs possibles suivants sont définis dans le fichier usersec.h :
  • _DOMAINS

    Liste des domaines auxquels appartient l'objet. Le type d'attribut est SEC_LIST.

  • S_CONFSETS

    Liste des domaines exclus de l'accès à l'objet. Le type d'attribut est SEC_LIST.

  • _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

Le type d'attribut est SEC_CHAR

S_SECFLAGS

Indicateurs de sécurité de l'objet. Les valeurs admises sont FSF_DOM_ALL et FSF_DOM_ANY. Le type d'attribut est SEC_INT

Valeur Indique une mémoire tampon, un pointeur vers une mémoire tampon ou un pointeur vers un pointeur en fonction des valeurs des paramètres Attribut et Type . Pour plus de détails, voir le paramètre Type .
type Indique le type de l'attribut. Les types valides suivants sont définis dans le fichier usersec.h :
  • SEC_INT

    Le format de l'attribut est un entier. Indiquez une valeur entière.

  • SEC_CHAR (CHAR)

    Le format de l'attribut est une chaîne de caractères terminée par une valeur nulle. Indiquez un pointeur de caractère.

  • LISTE DES SECTEURS

    Le format de l'attribut est une série de chaînes concaténées, chacune étant terminée par une valeur nulle. La dernière chaîne de la série se termine par deux caractères nuls successifs. Indiquez un pointeur de caractère.

  • COMMIT_SECT

    Indique que les modifications apportées aux objets nommés doivent être validées dans la mémoire permanente. Les valeurs des paramètres Attribut et Valeur sont ignorées. Si aucun objet n'est spécifié, les modifications apportées à tous les objets modifiés sont validées dans la mémoire permanente.

  • SUPPRESSION DE LA SÉCURITÉ

    Si le paramètre Attribut est spécifié, l'attribut correspondant est supprimé de la base de données d'objets. Si aucun paramètre Attribut n'est spécifié, la totalité de la définition d'objet est supprimée de la base de données d'objets affectée au domaine.

  • SEC_NOUVEAU

    Crée un nouvel objet dans la base de données d'objets affectée à un domaine.

Security

Fichiers accédés
Tableau 2. Fichiers accédés
Article Descriptif
File aff
/etc/security/domobjs
rw

Valeurs renvoyées

Si l'opération aboutit, la sous-routine putobjattr renvoie zéro. Sinon, la valeur -1 est renvoyée et la valeur globale errno est définie pour indiquer l'erreur.

Codes d'erreur

Si la sous-routine putobjattr échoue, l'une des valeurs errno suivantes est définie:

Tableau 3. Codes d'erreur
Article Descriptif
EINVAL

Le paramètre Obj est NULL et le paramètre Type n'est pas SEC_COMMIT.

Le paramètre Obj est la valeur par défaut ou ALL

Le paramètre Attribut est NULL et le paramètre Type n'est pas SEC_NEW, SEC_DELETE ou SEC_COMMIT.

Le paramètre Attribut ne contient pas l'un des attributs définis.

Le paramètre Type ne contient pas l'une des valeurs définies.

Le paramètre Valeur ne pointe pas vers une mémoire tampon valide ou vers des données valides pour ce type d'attribut.

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.