Comando 'getent'

2

Parte 1

O getent é supostamente um executável?

Na minha configuração zsh, posso ver que o getent é realmente definido como uma função

$ which getent   
getent () {
    if [[ $2 = <-> ]]
    then
        grep ":$2:[^:]*$" /etc/$1
    else
        grep "^$2:" /etc/$1
    fi
}

Se eu quiser executá-lo a partir do bash shell,

bash -c  "getent passwd user"  

Eu recebo um erro getent: command not found .

Parte 2

No Mac OSX, getent falha, independentemente de o ID do usuário ser válido ou não. Acontece que o ID do usuário não é mantido no arquivo /etc/passwd . Por que isso é assim? E qual é a alternativa?

    
por Anthony Kong 25.05.2015 / 10:09

2 respostas

4

No linux, Solaris e (acredito) * o BSD systems getent é um executável e consultará o mesmo conjunto de bancos de dados que as funções normais de pesquisa (arquivos / etc, LDAP, NIS, etc.).

Os-x não fornecem getent, mas você pode obter funcionalidade semelhante usando os programas dscacheutil ou dsutil (que falam com o back-end dos serviços de diretório). Uma pesquisa na Web por "osx getent" fornecerá mais detalhes.

    
por 25.05.2015 / 19:55
-1

getent AND dsutil falha para mim também no bash do OSX.

Como Paul aponta acima, este comando dscacheutil funcionará. Consegui que o usuário específico fosse verificado com este comando:

dscacheutil -q user -a name <username>. 

Uma lista de usuários com este comando

dscacheutil -q user | grep 'name:'
    
por 06.09.2018 / 21:48