Tenho acesso não sudo ssh a um servidor do qual quero saber a lista de usuários, acho que o servidor está usando ldap porque:
-bash-4.2$ cat /etc/nsswitch.conf
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.
passwd: files ldap
group: files ldap
shadow: files ldap
hosts: files dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
mas:
-bash-4.2$ cd /etc/sssd/
-bash: cd: /etc/sssd/: No such file or directory
Observe que nenhum dos /etc/passwd
, ls -lsa /var
ou getent passwd
está fornecendo a lista que eu quero (eles nem incluem meu próprio nome de usuário)
Então, alguém tem alguma idéia de como posso obter a lista de nomes de usuário e ids deste servidor?
-bash-4.2$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 7.11 (wheezy)
Release: 7.11
Codename: wheezy
Muito provavelmente a configuração ldap não permite enumeração.
Se você conhece o intervalo de IDs de usuário, pode tentar obter uma lista de usuários consultando todos os IDs de usuário possíveis:
Aqui assumindo um shell com suporte para a
{x..y}
forma de expansão de chave (zsh, bash, ksh93, tcsh, yash -o bracketexpand).Observe que no Linux, os uids não são mais limitados a 16 bits, e alguns servidores de diretório baseados no Microsoft AD ou samba usam pelo menos valores maiores que 65535.
{0..2147483647}
No entanto, a consulta estaria fora de questão.Seus administradores de rede provavelmente não vão gostar disso, pois significa fazer muitas consultas LDAP ao servidor de diretório.
Observe que, como a chave primária no banco de
passwd
dados é o nome do usuário , não o id, pode haver mais de um id para cada nome de usuário, angetent passwd <id>
retorna apenas uma entrada, portanto, alguns usuários podem estar ausentes.Se os usuários geralmente estão em pelo menos um grupo além do grupo principal, uma maneira de obter uma lista de usuários pode ser consultar uma lista de grupos com os mesmos métodos e examinar seus membros:
Aqui
sss
não é usado. Você teriasss
em vez deldap
no arquivonsswitch.conf
.Isso seria
libnss-ldap
(ou possivelmente libnss-ldapd, verifique comdpkg -l | grep ldap
) manipulação de consultas para arquivosldap
. A configuração é possivelmente em/etc/libnss-ldap.conf
ou/etc/ldap.conf
ou/etc/ldap/ldap.conf
.Se você puder lê-los, descobrirá o nome do servidor e os detalhes de onde os usuários estão na árvore de diretórios e poderá usá -los
ldapsearch
para obter as informações relevantes (desde que tenha acesso concedido).