Comando de Pilha

Propósito

Verifica a correção de uma definição de usuário.

Sintaxe

usrck { -l [ -b ] |  -n | -p  -t  -y } { TODOSUsuário ... }

Descrição

O comando usrck verifica a correção das definições do usuário nos arquivos de banco de dados do usuário, verificando as definições para ALL os usuários ou para os usuários especificados pelo parâmetro User . Se mais de um usuário for especificado, deve haver um espaço entre os nomes. Você deve selecionar uma sinalização para indicar se o sistema deve tentar fixar atributos errôneos.

O comando primeiro verifica as entradas no arquivo /etc/passwd . Se você indicar que o sistema deve corrigir erros, os nomes de usuários duplicados são informados e desativados. IDs duplicados são relatados apenas, porque não há correção de sistema. Se uma entrada tiver menos de seis campos separados por colon, a entrada é relatada, mas não fixa. O comando usrck next verifica atributos específicos do usuário em outros arquivos.

O comando usrck verifica se cada nome de usuário listado no arquivo /etc/passwd tem uma stanza no /etc/security/user, /etc/security/limits e arquivos /etc/security/passwd . O comando usrck também verifica se cada nome de grupo listado no arquivo /etc/group tem uma stanza no arquivo /etc/security/group . O comando usrck usando a sinalização -y cria estrofes nos arquivos de segurança para o usuário ausente e nomes de grupo.

Observação:
  • Este comando grava suas mensagens em stderr.
  • Se o atributo domainlessgroups for configurado, o comando usrck lançará um erro para os usuários do Lightweight Directory Access Protocol (LDAP).

Uma lista de todos os atributos do usuário segue, com notações declarando quais atributos são verificados:

Item Descrição
account_locked Sem cheque. O comando usrck define este atributo para contas True e desativa.
admgroups Verifica se os admgrupos estão definidos no banco de dados do usuário e, se você indicar que o sistema deve corrigir erros, o comando remove quaisquer grupos que não estejam no banco de dados.
auditclasses Verifica se as auditclasses são definidas para o usuário no arquivo /etc/security/audit/config . Se você indicar que o sistema deve corrigir erros, o comando excluirá todas as auditoras que não estão definidas no arquivo /etc/security/audit/config .
auth1 Verifica o método de autenticação primária. A menos que o método seja NONE ou SYSTEM, ele deve ser definido no arquivo /etc/security/login.cfg e o atributo do programa deve existir e ser executável pelo usuário root. Se você indicar que o sistema deve corrigir erros, ele desativará a conta do usuário se um erro for encontrado.
Nota: O atributo auth1 é obsoletado e não deve ser usado.
auth2 Verifica o método de autenticação secundária. A menos que o método seja NONE ou SYSTEM, ele deve ser definido no arquivo /etc/security/login.cfg e o atributo do programa deve existir e ser executável pelo usuário root. Não há correção de sistema.
Nota: O atributo auth2 é obsoletado e não deve ser usado.
core Garante que os valores são sensatos. Se não, o comando reconfigura os valores para 200 blocos, o valor mínimo.
core_hard Garante que os valores são sensatos. Se não, o comando reconfigura os valores para 200 blocos, o valor mínimo.
cpu Garante que os valores são sensatos. Se não, o comando redefine os valores para 120 seconds, o valor mínimo.
cpu_hard Garante que os valores são sensatos. Se não, o comando redefine os valores para 120 seconds, o valor mínimo.
data Garante que os valores são sensatos. Se não, o comando reconfigura os valores para 1272 blocos (636K), o valor mínimo.
data_hard Garante que os valores são sensatos. Se não, o comando reconfigura os valores para 1272 blocos (636K ), o valor mínimo.
dictionlist Verifica a lista de arquivos de dicionário. Se você indicar que o sistema deve corrigir erros, todos os arquivos de dicionário que não existem são excluídos do banco de dados do usuário.
expires Sem cheque.
fsize Garante que os valores são sensatos. Se não, o comando reconfigura os valores para 200 blocos, o valor mínimo.
fsize_hard Garante que os valores são sensatos. Se não, o comando reconfigura os valores para 200 blocos, o valor mínimo.
gecos Sem cheque.
histexpire Garante que os valores são sensatos. Se você indicar que o sistema deve corrigir erros, valores que são muito grandes são configurados para o maior valor possível e valores que são pequenos demais são configurados para o menor valor possível.
histsize Garante que os valores são sensatos. Se você indicar que o sistema deve corrigir erros, valores que são muito grandes são configurados para o maior valor possível e valores que são pequenos demais são configurados para o menor valor possível.
home Verifica a existência e acessibilidade do diretório home por modo de leitura e modo de pesquisa. Se você indicar que o sistema deve corrigir erros, ele desativará a conta do usuário se um erro for encontrado.
id Verifica a exclusividade do ID do usuário. Se você indicar que o sistema deve corrigir erros, o comando excluirá qualquer entrada inválida no arquivo /etc/passwd .
login Sem cheque.
loginretries Verifica se o usuário tentou logins malsucedidos mais do que a quantidade permitida. Se sim, o sistema desabilita a conta de usuário.
logintimes Garante que a sequência de especificadores de tempo é válida. Se você indicar que o sistema deve corrigir erros, o sistema desabilita a conta do usuário se um erro for encontrado.
Item Descrição
maxage Garante que os valores são sensatos. Se você indicar que o sistema deve corrigir erros, valores que são muito grandes são configurados para o maior valor possível e valores que são pequenos demais são configurados para o menor valor possível.
maxexpired Garante que os valores são sensatos. Se você indicar que o sistema deve corrigir erros, valores que são muito grandes são configurados para o maior valor possível e valores que são pequenos demais são configurados para o menor valor possível.
maxrepeats Garante que os valores são sensatos. Se você indicar que o sistema deve corrigir erros, valores que são muito grandes são configurados para o maior valor possível e valores que são pequenos demais são configurados para o menor valor possível.
minage Garante que os valores são sensatos. Se você indicar que o sistema deve corrigir erros, valores que são muito grandes são configurados para o maior valor possível e valores que são pequenos demais são configurados para o menor valor possível. O sistema também indica se o atributo minage é maior do que o atributo maxage .
minalpha Garante que os valores são sensatos. Se você indicar que o sistema deve corrigir erros, valores que são muito grandes são configurados para o maior valor possível e valores que são pequenos demais são configurados para o menor valor possível.
mindiff Garante que os valores são sensatos. Se você indicar que o sistema deve corrigir erros, valores que são muito grandes são configurados para o maior valor possível e valores que são pequenos demais são configurados para o menor valor possível.
minlen Garante que os valores são sensatos. Se você indicar que o sistema deve corrigir erros, valores que são muito grandes são configurados para o maior valor possível e valores que são pequenos demais são configurados para o menor valor possível.
minother Garante que os valores são sensatos. Se você indicar que o sistema deve corrigir erros, valores que são muito grandes são configurados para o maior valor possível e valores que são pequenos demais são configurados para o menor valor possível. O sistema também indica se o atributo minage mais o atributo maxage é maior do que o tamanho máximo de senha.
nome Verifica a exclusividade e a composição do nome de usuário. O nome deve ser uma sequência exclusiva de oito bytes ou menos. Não pode começar com um + (sinal de mais), a: (cólon), a-(sinal de menos), ou a ~ (inclinação). Os nomes iniciados com um + (sinal de mais) ou com um-(sinal de menos) são assumidos como nomes no domínio NIS (Network Information Service), e nenhum processamento adicional é realizado. Ele não pode conter um cólon (:) na string e não pode ser as palavras-chave ALL ou default . Se você indicar que o sistema deve corrigir erros, o comando desabilita a conta do usuário se um erro for encontrado e deleite qualquer entrada inválida no arquivo /etc/passwd .

O comando usrck verifica se, para cada nome de usuário listado no arquivo /etc/passwd , há uma estrofe no /etc/security/user, /etc/security/limits, e arquivos /etc/security/passwd . O comando adiciona estrofes para cada um identificado como desaparecido. O comando usrck adicionalmente verifica se cada nome de grupo listado no arquivo /etc/group tem uma stanza no arquivo /etc/security/group .

nofiles Garante que o valor é sensato. Se não, redefine o valor para 200, o valor mínimo.
nofiles_hard Garante que o valor é sensato. Se não, redefine o valor para 200, o valor mínimo.
pgrp Verifica a existência do grupo primário no banco de dados do usuário. Se você indicar que o sistema deve corrigir erros, ele desativará a conta do usuário se um erro for encontrado.
pwdchecks Verifica a lista de métodos de restrição de senha externa. Se você indicar que o sistema deve corrigir erros, todos os métodos que não existem são excluídos do banco de dados do usuário.
pwdwarntime Garante que o valor é sensato. Se não, o sistema reconfigura o valor para a diferença entre os valores maxage e minage .
rlogin Sem cheque.
rss Verifica-se para garantir que os valores sejam sensatos. Se não, o comando reconfigura os valores para 128 blocos (64KB), o valor mínimo. O valor não é configurado pelo sistema.
rss_hard Verifica-se para garantir que os valores sejam sensatos. Se não, o comando reconfigura os valores para 128 blocos (64KB), o valor mínimo. O valor não é configurado pelo sistema.
shell Verifica a existência e a acessibilidade do shell por modo de execução. Se você indicar que o sistema deve corrigir erros, ele desativará a conta do usuário se um erro for encontrado.
pilha Verifica-se para garantir que os valores sejam sensatos. Se não, o comando reconfigura os valores para 128 blocos (64KB), o valor mínimo.
stack_hard Verifica-se para garantir que os valores sejam sensatos. Se não, o comando reconfigura os valores para 128 blocos (64KB), o valor mínimo.
su Sem cheque.
sugroups Verifica a existência dos sugrupos nos arquivos de banco de dados do usuário. Se você indicar que o sistema deve corrigir erros, ele excluirá todos os grupos que não estão no banco de dados.
sysenv Sem cheque.
tpath Verifica para garantir que o atributo shell esteja identificado como um processo confiável se tpath=always. Se você indicar que o sistema deve corrigir erros, ele desativará a conta do usuário se um erro for encontrado.
ttys Verifica a existência dos ttys nos arquivos de banco de dados do usuário. Se você indicar que o sistema deve corrigir erros, ele excluirá todos os ttys que não existem a partir do banco de dados do usuário.
usrenv Sem cheque.

Se a correção envolver a desativação de uma conta de usuário, use o comando chuser para redefinir o valor do atributo account_locked para False. Você pode usar a System Management Interface Tool (SMIT) para executar o comando chuser inserindo:

smit chuser

O usuário root ou um membro do grupo de segurança pode ativar uma conta de usuário novamente, removendo o atributo account_locked ou configurando o atributo account_locked para False. A conta do usuário root não é desativada pelo comando usrck .

Geralmente, o comando sysck chama o comando usrck como parte da verificação de uma instalação confiável-system. Se o comando usrck encontrar algum erro no banco de dados do usuário, o utilizador root ou um membro do grupo de segurança deverá executar ambos o comando grpck e o comando pwdck .

O comando usrck verifica se os arquivos de segurança de gerenciamento de banco de dados (/etc/passwd.nm.idx, /etc/passwd.id.idx, /etc/security/passwd.idxe /etc/security/lastlog.idx) estão atualizados ou mais recentes do que os arquivos de segurança do sistema correspondentes. Observe que é aceitável que /etc/security/lastlog.idx não seja mais novo que /etc/security/lastlog. Se os arquivos de segurança do gerenciamento de banco de dados estiverem fora de data, aparecerá uma mensagem de aviso indicando que o usuário root deve executar o comando mkpasswd .

O comando usrck verifica se o usuário especificado pode fazer login. Se o usuário não puder fazer login por causa de muitas tentativas de login sem sucesso ou porque a senha está expirada, o comando usrck emite uma mensagem de aviso indicando por que o usuário não pode efetuar login. Se você indicar que o sistema deve corrigir erros, o sistema desabilita a conta do usuário se o usuário não puder fazer login pelos motivos acima.

Se a sinalização -l for especificada, o comando usrck varre todos os usuários ou os usuários especificados pelo parâmetro User para determinar se os usuários podem acessar o sistema. Os critérios utilizados para determinar a acessibilidade para um usuário estão listados na tabela a seguir:
Tabela 1. Critérios De Acessibilidade Do Usuário
Critério Descrição Causa
1 A conta do usuário está bloqueada. O atributo account_locked do usuário é configurado como true.
2 A conta do usuário está expirada. O atributo expires do usuário é configurado para um valor (tempo de expiração) que está expirado.
3 O usuário tem muitas tentativas de login frustradas consecutivas. O valor unsuccessful_login_count do usuário é maior do que o valor de loginretries do usuário.
4 O usuário não tem senha. O campo senha do usuário é '*' em /etc/password ou /etc/security/password.
5 O usuário não está autorizado a fazer login para esta data / horário. A data / hora atual não está dentro do tempo permitido como definido pelo atributo logintimes do usuário.
6 O arquivo /etc/nologin existe. O arquivo /etc/nologin evita que um usuário não root efetue o login.
7 A senha do usuário é expirada e apenas o administrador do sistema pode alterá-lo. A senha do usuário está expirada e a sinalização de senha do ADMIN é definida.
8 Usuário é negado login para hospedar. Os atributos hostallowedlogin e hostsdeniedlogin do usuário não permitem o acesso ao host atual.
9 Usuário é negado acesso por aplicativos. Os atributos login, rlogine su são configurados como false e o atributo rcmds é configurado para negar. Se pelo menos um mas nem todos esses valores de atributo negam a autorização, o sistema é considerado parcialmente acessível pelo usuário.
10 Usuário é negado login no terminal. O atributo ttys do usuário não permite o acesso ao terminal atual. O sistema é considerado parcialmente acessível para o usuário.

Se a sinalização -b também for especificada, a saída consiste em dois campos, o nome de usuário e uma máscara de bits de 16 dígitos, separados por uma guia. Cada dígito na máscara de bits corresponde a um critério na tabela de critérios de acessibilidade do Usuário acima, com critérios 1 representados pelo dígito mais à direita. Se o local de bit para um critério for definido para 1, a verificação para esse critério falhou para o usuário. Digitos extras na saída são reservados para uso futuro.

A seguir está um exemplo do comando usrck com a bandeira -l :
# usrck -l testusr1 testusr2
3001-689 The system is inaccessible to testusr1, due to the following:
         User account is locked
         User denied login to terminal.
        
3001-689 The system is inaccessible to testusr2, due to the following:
         User account is expired.
         User has too many consecutive failed login attempts.
         User denied login to host.
A seguir está um exemplo do comando usrck com as bandeiras -l e -b :
# usrck -lb testusr1 testusr2
 testusr1       0000000000000001
 testusr2       0000000001000110

Sinalizações

Item Descrição
-b Relata usuários que não são capazes de acessar o sistema e os motivos, com as razões exibidas em um formato de máscara de bits. A sinalização -l deve ser especificada se a sinalização -b for especificada.
Nota: A máscara de bit não informa critérios 10 (usuário negou login no terminal), uma vez que este não pode ser considerado um cenário completo ao determinar se um sistema é inacessível a um usuário. Da mesma forma, a máscara de bit não informa critérios 9 (Usuário negou acesso por aplicativos) se pelo menos um mas nem todos os valores dos atributos negam autenticação; este critério só é informado quando todos os quatro valores de atributo negam autenticação.
-l Varre todos os usuários ou os usuários especificados pelo parâmetro Usuário para determinar se os usuários podem acessar o sistema.
-n Relata erros mas não os corrige.
-P Corrige erros mas não os informa.
-t Relata erros e pergunta se eles devem ser corrigidos.
-y Corrige erros e relata-os.

Status de saída

Esse comando retorna os valores de saída a seguir:

Item Descrição
0 Os arquivos de definição do usuário são apropriados.
>0 Ocorreu um erro ou há um erro em um ou mais arquivos de definição de usuário. Os seguintes códigos de erro são retornados:
EINVAL (22)
Argumentos da linha de comando
ENOENTE (2)
Um ou mais arquivos de definição de usuário não existem
ENOTRUST (114)
Erros nas definições do usuário nos arquivos de banco de dados ou usuários incapazes de acessar o sistema (encontrado por opção -l )

Segurança

Controle de Acesso: Este comando deve conceder acesso (x) a usuário root e membros do grupo de segurança. O comando deve ser setuid para o usuário root e ter o atributo base de computação confiável .

Arquivos acessados:

Modo Arquivo
t /etc/passwd
t /etc/security/user
rw /etc/security/group
rw /etc/group
rw /etc/security/lastlog
rw /etc/security/limits
rw /etc/security/audit/config
rw /etc/security/login.cfg

Eventos de auditoria:

Evento Informações
USER_Check usuário, atributo-error, status
Atenção aos usuários do RBAC: Este comando pode realizar operações privilegiadas. Somente usuários privilegiados podem executar essas operações. Para obter mais informações sobre autorizações e privilégios, consulte Banco de dados de comandos privilegiados em Segurança. Para obter uma lista de privilégios e autorizações associados a esse comando, consulte o comando ' lssecattr ou o subcomando ' getcmdattr.

Exemplos

  1. Para verificar se todos os usuários existem no banco de dados do usuário, e ter algum erro informado (mas não fixo), digite:
    usrck  -n ALL 
  2. Para excluir das definições do usuário aqueles usuários que não estão nos arquivos de banco de dados do usuário, e ter algum erro informado, digite:
    usrck  -y ALL  
  3. Para exibir a lista de usuários que não conseguem acessar o sistema, digite:
    usrck -l ALL
  4. Para exibir a lista de usuários que são incapazes de acessar o sistema, em um formato de máscara de bits, digite:
    usrck -l -b ALL

Arquivos

Item Descrição
/usr/bin/usrck Especifica o caminho do comando usrck .
etc/passwd Contém atributos básicos do usuário.
/etc/security/user Contém os atributos estendidos dos usuários.
/etc/group Contém atributos básicos do grupo.
/etc/security/group Contém os atributos estendidos de grupos.
/etc/security/lastlog Contém os últimos atributos de login para usuários.
/etc/security/limits Contém os limites de recursos do processo dos usuários.
/etc/security/audit/config Contém informações de configuração do sistema de auditoria.
/etc/security/login.cfg Contém informações de configuração.