Reverse o comando id, eu quero o nome do usuário / grupo do uid ou gid

2

Eu sei alguns uid e gids que eu não sei a quem eles pertencem e eles não estão em / etc / passwd (pode ser LDAP ou de outro sistema). Como faço para obter informações de identificação apenas de uid ou gid, de preferência sem usar ldapsearch ou quaisquer comandos LDAP fora de getent ou id, ou algo fácil. Kernel Linux 2.6, variantes da Red Hat.

    
por Gregg Leventhal 16.01.2014 / 23:09

2 respostas

3

Você pode usar o comando getent , que executará a pesquisa com base em /etc/nsswitch.conf . Isso significa que se ldap estiver configurado no sistema, getent tentará procurar o usuário em ldap . Aqui está um exemplo:

$ getent passwd 33
www-data:x:33:33:www-data:/var/www:/bin/sh
    
por 16.01.2014 / 23:12
0

Para obter o nome de usuário associado a um UID, use a opção -n de id :

$ id
uid=1000(myself) gid=1000(myself) groups=1000(myself), 0(wheel), 9(wsrc)
$ id -n -u 1000
myself

Isso não funcionaria em GIDs, já que id espera nomes de usuário ou UIDs:

$ id -n -g 9
id: 9: No such user

Você pode consultar o banco de dados passwd e o banco de dados do grupo para UIDs e GIDs com getent :

$ getent passwd 1000
myself:*:1000:1000:Just me,,,:/home/myself:/bin/sh
$ getent group 9
wsrc:*:9:myself

O nome de usuário ou grupo real pode ser analisado a partir disso, canalizando a saída através de cut -d : -f 1 .

id é um utilitário POSIX , enquanto getent não é.

    
por 12.12.2018 / 20:16