Existe uma maneira genérica de saber se um nome de usuário é válido em um sistema semelhante ao Unix?

1

Estou procurando uma maneira multiplataforma de determinar se um nome de usuário e um nome de grupo são válidos ou não. As plataformas são Linux, Solaris, Aix e HPUX. Seria necessário trabalhar se o usuário / grupo é definido localmente (por exemplo, / etc / passwd) ou por meio de um serviço como o LDAP ou o NIS / YP. É provavelmente uma ilusão pensar que tal método existe, mas não pode doer (demais) perguntar. Obrigado!

Informações Adicionais: Infelizmente eu não controlo os sistemas onde isto irá rodar; o roteiro vai para os clientes e eles podem fazer o que quiserem. E eu não tenho como testar nada disso ...

    
por Joe Casadonte 21.10.2010 / 16:10

3 respostas

4

"getent passwd | grep" não te leva a lugar nenhum?

    
por 21.10.2010 / 16:32
2

De commandlinefu :

id <username>
    
por 21.10.2010 / 20:23
1

Se não estalar os flatfiles, normalmente uso os comandos id ou finger . Se você tiver o sistema configurado para usar LDAP ou NIS / YP em todo o sistema, qualquer utilitário de linha de comando deverá compartilhar essa funcionalidade.

Por fim, para que sua solução seja infalível, você provavelmente precisará escrever uma lógica mais complicada em seu script. Esse é um bom exemplo do motivo pelo qual os departamentos de TI geralmente tentam evitar muitas variações de tecnologia.

    
por 21.10.2010 / 16:16