Como listar usuários “loginnable”? [duplicado]

0

Quando eu inicio o Ubuntu, há uma lista de usuários que eu posso clicar e digitar a senha para entrar.

Como faço para obter uma lista desses usuários?

Eu tentei fazer com que os usuários do arquivo /etc/passwd fizessem isso:

cut -d: -f1 /etc/passwd | sort -u

Mas essa lista era enorme, nada como a pequena lista que aparece na tela inicial de login.

Existe algum outro comando ou arquivo que eu deveria estar verificando?

    
por Aruka J 04.10.2017 / 03:07

3 respostas

0

Os usuários criados com useradd têm um UID de 1000 a 60000, consulte

$ grep "^UID_M*" /etc/login.defs
UID_MIN                  1000
UID_MAX                 60000

Com essas informações, podemos filtrar /etc/passwd para esses usuários:

$ awk -F: '$3 >= 1000' /etc/passwd
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
dessert:x:1000:1000:dessert,,,:/home/dessert:/bin/bash
test:x:1001:1001:test,,,:/home/test:/bin/bash

-F: define : como o delimitador de campo e $3 >= 1000 informa awk apenas para imprimir linhas em que a terceira coluna contenha um valor igual ou maior que 1000 . Agora só queremos o nome de usuário e nobody não é relevante para nós, então vamos reduzir ainda mais a saída:

$ awk -F: '$3 >= 1000 && $1 != "nobody" {print $1}' /etc/passwd
dessert
test

Agora também ( && ) testamos a primeira coluna para não ser ( != ) a string nobody e apenas imprimimos a primeira coluna ( print $1 ).

    
por dessert 04.10.2017 / 09:28
0

Para obter os usuários de loginable , podemos usar o arquivo /etc/passwd , pois todos os usuários com UID maior que 499 e que não correspondem às configurações em /etc/lightdm/user.conf aparecerão na tela de login. Por isso, isso fará com que esses usuários:

cut -d: -f1-3 /etc/passwd | grep -E ".*:x:[0-9]{4,}" | grep -Ev "nobody"

Ou usando um código awk mais conciso, como sugerido por @dessert

awk -F: '$3>999&&$1!="nobody" { print $1" "$3 }' /etc/passwd

Awk explanação:

-F: : use : como o separador de campo

$3>999&&$1!="nobody" : valores de retorno que correspondem ao campo 3rd maior que 999 e primeiro campo que não corresponde à string nobody

Um exemplo é o usuário nobody com o mínimo UID acima de 500 , mas não é visto na tela de login, pois está listado como user e não deve ser visto como /etc/lightdm/users.conf

    
por George Udosen 04.10.2017 / 08:51
0

Usuários com login devem ter uma senha com hash válida. Observe o segundo campo (delimitado por dois pontos :) no arquivo / etc / shadow e os hashes são grandes, com mais de 60 caracteres. Os campos com apenas um * ou um! não pode ser usuários de login. Curiosamente, a verificação do uuid é usada incorretamente no libvirt-qemu (64055 uuid), por isso aparece na tela de login, mesmo que não tenha um hash válido e não possa ser usado como um nome de login. Produza a lista de login com:

sudo egrep -v ":\*:|:\!:" /etc/shadow
    
por ubfan1 04.10.2017 / 06:17