Você também pode consultar usuários, grupos, etc. do sistema usando o comando getent
.
Exemplos
usuários
$ getent passwd | head -5
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
grupos
$ getent group | head -5
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
A vantagem de usar getent
apenas olhando os arquivos /etc/passwd
e /etc/groups
é que getent
consultará o sistema usando o NSS - Name Service Switch do sistema, que define como "bancos de dados", como estes devem ser manipulados em um determinado sistema.
NSS
O NSS na maioria dos sistemas Linux é controlado pelo arquivo /etc/nsswitch.conf
. Este arquivo define os "bancos de dados" e, em seguida, como eles devem ser resolvidos.
Exemplo Abaixo, você pode ver que o "banco de dados" passwd e o grupo devem ser providos por arquivos, mas podem ser fornecidos pelo LDAP, NIS ou por qualquer outro método.
# /etc/nsswitch.conf
# Example:
#passwd: db files nisplus nis
#shadow: db files nisplus nis
#group: db files nisplus nis
passwd: files
shadow: files
group: files
#initgroups: files
Outras bases de dados
Senhas e grupos são apenas 2, existem muitos bancos de dados acessíveis via getent
. Dê uma olhada na página getent
man para uma lista completa.
Você também pode obter a lista da página de uso de getent
.
$ getent --help
...
Supported databases:
ahosts ahostsv4 ahostsv6 aliases ethers group gshadow hosts initgroups
netgroup networks passwd protocols rpc services shadow
...