Como detectar se o usuário efetuou login em um domínio ou host local no script de shell do Linux?

1

No padrão, o Linux não suporta o domínio. Mas o usuário pode ingressar em um domínio por aplicativos, como: Da mesma forma, Winbind e assim por diante.
Para o meu projeto, meus clientes são todos membros da empresa. Para o problema de segurança, o host linux da maioria dos clientes será associado a um domínio.
Infelizmente, o cliente pode efetuar login no host local, mesmo que o host linux tenha ingressado em um domínio. Tais como:
(1) são duas contas em um host linux:
    uma conta de domínio: dev.com \ john (o domínio é developer.com)
    uma conta local: tom
(2) O cliente pode efetuar login com a conta de domínio (dev.com \ john) ou conta local (tom) livremente.

Minha tarefa é escrever um script de shell que será executado quando o usuário efetuar login. No script de shell, preciso verificar o login do usuário com uma conta de domínio ou uma conta local. Se o usuário efetuar login com o nome do domínio, eu preciso obter o nome do domínio; caso contrário, preciso obter o nome do host. Em seguida, informe o nome do domínio (ou host) e o nome do usuário para o servidor do monitor remoto.

Eu tentei o seguinte código:

hostName=$(hostname)  
hostFQDN=$(hostname -f)  

if [ "$hostName" = "$hostFQDN" ]; then  
    # The user didn't log in a domain.  
    hostInfo="$hostName"  
else  
    # The user logged in a domain.  
    hostInfo=$(hostname -d)  
fi  

Acima, eu verifico se o host FQDN é igual ao nome do host ou não. Se sim, acredito que o cliente faça login com a conta de domínio; mais, conta local.

Infelizmente, isso não funciona sempre. A razão é que o FQDN do host não será igual ao nome do host sempre que o host linux estiver associado a um domínio, mesmo que o cliente faça login com uma conta local. Tais como:
(1) O host linux está associado ao domínio "dev.com"; (2) O host fqdn será "yw-host.dev.com" sempre ("yw-host" é o nome do host), quer o cliente faça login com uma conta de domínio ou não.

Alguém pode dar uma solução por favor? Como meu cliente pode ingressar no domínio com vários aplicativos de domínio (como: da mesma forma, winbin e assim por diante), é melhor que a solução não dependa de um aplicativo de domínio especial.

Muito obrigado.

    
por yw5643 13.05.2015 / 09:20

0 respostas