Provided by: ltp-dev_20091231+dfsg-1ubuntu2_amd64 bug

NAME

       get_attrib - Returns needed attributes to execute a command successfully on any system.

SYNOPSIS

       #include "get_attrib.h"

       char  *get_attrib  (char  *command_name,  char  *permits,  char  *active_categories,  char
       *authorized_categories, long flag);

DESCRIPTION

       The get_attributes routine is designed to determine the system type currently running  and
       return  the  needed  runcmd(1) string to run the command specified successfully on any 7.0
       and above systems.  On systems  with  TFM  configured  'ON'  some  commands  need  special
       attributes  that  can't  be determined easily, this routine then uses an internal table to
       return the needed attributes to run  the  command.   On  other  system  types  the  needed
       attributes are easily determined without use of this table.

       The get_attrib arguments are as follows:

       command_name
                 Pointer to the command the attributes are to be returned about.

       permits   Pointer  to  either  an  octal  or  name string of permits to be added to string
                 returned.

       active_category
                 Pointer to either an octal or name string of active categories to  be  added  to
                 string returned.

       authorized_categories
                 Pointer  to  either  an octal or name string of categories to be added to string
                 returned.

       flag      Long set to any combination of values defined in get_attrib.h.  These values are
                 used  to  specify  that  the  string returned should be for the specified system
                 type.

                      GA_BOTH_OFF    PRIV_SU and PRIV_TFM off.

                      GA_SU_ON       PRIV_SU on.

                      GA_TFM_ON      PRIV_TFM on.

                      GA_BOTH_ON     PRIV_SU and PRIV_TFM on.

                      GA_CURRENT_SYS Current system type.

EXAMPLE

       The following example shows how get_attrib can be used to determine the needed  attributes
       to run a command successfully:

       #include <stdio.h>
       #include "get_attrib.h"

       main()
       {
        char cmd[256];
        char *string;

        if ((string =
             get_attrib("mount",NULL,NULL,NULL,GA_CURRENT_SYS)) == (char *)NULL) {
           printf("get_attrib() failed\n");
           exit(1);
        } else {
           sprintf(cmd, "runcmd %s mount /dev/dsk/qtest3 /qtest3", string);
           printf("Command = %s\n",cmd);
        }

        if ((string =
             get_attrib("mount", NULL, NULL, NULL, GA_BOTH_OFF))==(char *)NULL) {
           printf("get_attrib() failed\n");
           exit(1);
        } else {
           sprintf(cmd, "runcmd %s mount /dev/dsk/qtest3 /qtest3", string);
           printf("Command = %s\n",cmd);
        }
       }

       On an MLS system with PRIV_SU ON the first sprintf would return,
       runcmd -u root mount /dev/dsk/qtest3 /qtest3.

       On the same system the second sprintf would return, runcmd -J secadm -j
       secadm  mount /dev/dsk/qtest3 /qtest3  Which is as if PRIV_TFM and PRIV_SU
       were OFF.

RETURN VALUE

       If  get_attrib()  completes  successfully, a pointer to a string containing the options of
       the runcmd string is returned; otherwise NULL is returned.

ERRORS

       If get_attrib() has problems, an error message will be put in GA_Err_Msg and NULL will  be
       returned.

SEE ALSO

       get_attrib(1)

       runcmd(1)