REVISITADO: Não vou dizer como testar uma determinada senha. Não acredito que um administrador deva saber senhas de outros usuários para enviar tal teste. No entanto, posso ajudar você a encontrar um usuário ou talvez todos os usuários que nunca definiram uma senha.
Como administrador do sistema, também conhecido como root, você pode tentar algo como:
#!/usr/bin/ksh
## pwdchkUser
# Author: Michael Felt and AIXTOOLS, 2016
# example program for checking a single username on a list of hosts
# check user on all hosts listed, line by line in test1.txt
user=$1
cat test1.txt | while read host; do
ssh root@${host} "(/usr/bin/grep -p ${user}: /etc/security/passwd \
| grep lastupdate 2>&1 >/dev/null \
|| print $user@host has never set a password)"
done
#!/usr/bin/ksh
## pwdchkUsers
# Author: Michael Felt and AIXTOOLS, 2016
# example program to find all users that have never set a password
# the 'test' is that the keyword 'lastupdate' is missing from the user entry
# /etc/security/passwd stanza
host=$1
print "On ${host} the following usernames are known, but have not changed their password"
ssh root@$host '/usr/bin/grep -vp lastupdate /etc/security/passwd \
| egrep ":$" | cut -d: -f 1'
p.s. I shall not even begin on all the errors in the 'google' script you found. It is unfortunate that you do not recognize the syntax errors in the ssh command you say you 'got via google' - certainly not via SE!
Sua solução vem em duas partes a) o script que verifica (deve ser algo diferente do usuário existe - como por sua pergunta, que é um dado) - Depois de ter isso, em seguida, parte dois b) configurar e usar dsh (shell distribuído)
Quando os dois estiverem prontos, você poderá usar
dcp script /some/great/script # copy to all servers in dsh domain
e seu (s) usuário (s) podem usar:
dsh /some/great/script
para executar o comando em vários servidores em paralelo
Observação: existem diferentes maneiras de ser mais seletivo em quais servidores executar o comando: por exemplo,
dsh -n host1,host2,host7 /some/great/script
Embora não possa ajudá-lo com detalhes na parte a) - não há informações suficientes Espero que este artigo o ajude com a parte b) link
p.s. Algumas das coisas que você também pode considerar é que você está executando o comando - desde que você pode criar o usuário, você pode ver coisas que eles provavelmente não podem ver.
grep ^$username:!: /etc/passwd
e
/usr/bin/grep -p "flags = ADMCHG" /etc/security/passwd | grep -v password
username:
flags = ADMCHG
lastupdate = 1416221835
Explicação : ^ nome de usuário: *: significa um usuário que não possui uma senha, portanto não pode efetuar login porque não há senha, enquanto ^ username:!: significa que há uma entrada o arquivo de senha sombra para verificação de usuário / senha (ou nenhuma senha exigida pelo arquivo shadow)
em / etc / security / password - o arquivo shadow Se flags == ADMCHG , há uma senha, mas o usuário deve alterar a senha antes que ela possa permanecer no sistema. Alguns programas - que usam credenciais do sistema operacional e não podem alterar a senha, apenas sairão.