sub-rotina getdevattr

Propósito

Recupera as informações de segurança do dispositivo no banco de dados de dispositivos privilegiados.

Biblioteca

Biblioteca de Segurança (libc.a).

Sintaxe

#include <usersec.h>

int getdevattr (Device, Attribute, Value, Type)
    char *Device;
    char *Attribute;
    void *Value;
    int Type;

Descrição

A subroutina getdevattr lê um atributo especificado a partir do banco de dados do dispositivo. Se o banco de dados não estiver aberto, esta subroutine faz um implícito aberto para leitura. Para atributos dos tipos SEC_CHAR e SEC_LIST , a subroutina getdevattr retorna o valor para a memória alocada. O Caller precisa liberar essa memória.

Parâmetros

Item Descrição
Dispositivo Especifica o nome do dispositivo. O valor deve ser o caminho completo para o dispositivo no sistema. Este parâmetro deve ser especificado a menos que o parâmetro Type seja SEC_COMMIT.
Atributo Especifica o atributo que é lido. Os seguintes atributos possíveis são definidos no arquivo usersec.h :
S_READPRIVS
Privilégios necessários para ler a partir do dispositivo. Oito privilégios podem ser definidos. Um processo com qualquer um dos privilégios de leitura é permitido ler a partir do dispositivo. O tipo de atributo é SEC_LIST.
S_WRITEPRIVS
Privilégios necessários para escrever para o dispositivo. Oito privilégios podem ser definidos. Um processo com qualquer um dos privilégios de gravação é permitido para gravar no dispositivo.
Valor Especifica um ponteiro ou um ponteiro para um ponteiro de acordo com a matriz Atributos e os parâmetros Tipo . Veja o parâmetro Tipo para obter mais detalhes.
Tipo Especifica o tipo de atributo. Os tipos válidos a seguir são definidos no arquivo usersec.h :
SEC_INT
O formato do atributo é um inteiro. Para o subroutine getdevattr , o usuário deve fornecer um ponteiro para uma variável inteira definida.
SEC_CHAR
O formato do atributo é uma cadeia de caracteres terminada nula. Para a subroutine getdevattr , o usuário deve fornecer um ponteiro para uma variável de ponteiro de caracteres definida. O valor é retornado como memória alocada para a subroutina getdevattr . Caller precisa liberar essa memória.
SEC_LISTA
O formato do atributo é uma série de strings concatenadas, cada uma das quais é terminada nula. A última sequência na série é finalizada por dois caracteres nulos sucessivos. Para a subroutine getdevattr , o usuário deve fornecer um ponteiro para uma variável de ponteiro de caracteres definida. Caller precisa liberar essa memória.

Segurança

Arquivos acessados:
Arquivo Modo
/etc/security/privdevs rw

Valores De Retorno

Na conclusão bem-sucedida, a subroutina getdevattr retorna um valor de zero. Caso contrário, um valor de -1 é retornado e o valor global errno é definido para indicar o erro.

Códigos De Erro

Se a subroutina getdevattr falhar, um dos seguintes valores errno é definido:

Item Descrição
EINVAL O parâmetro Device é NULL ou default.
EINVAL O parâmetro Attribute ou Type é NULL ou não contém um dos valores definidos.
EINVAL O parâmetro Attribute é S_PRIVDEVS, mas o parâmetro Device não é ALL.
ENOENTE O dispositivo especificado no parâmetro Dispositivo não existe.
ENOATTR O atributo especificado no parâmetro Attribute é válido, mas nenhum valor é definido para o dispositivo.
EPERM A operação não é permitida.