Estou tentando obter uma lista de todos os usuários que não efetuaram login em 30 dias, mas o código não está funcionando

0
echo here is a list of the users who have not logged in for a month
olduser="who | grep | -u, -q +30"
if $olduser
then
 echo these users havent been logged in for thirty 30 days
else
 echo user is active
;;
    
por Joanna1803 30.11.2016 / 15:56

1 resposta

0

Uma recomendação ... edite a pergunta com o seguinte, para permitir uma resposta mais completa / relevante:

  • O seu SO (ou seja, o Solaris é muito diferente do RHEL em acct mgmt)
  • Tipo de script / código (Bash, csh, ksh, etc), pois parece que isso é apenas parte de um script e não a coisa toda, já que não podemos ver o shebang (#! / bin / bash, etc ..).

A primeira coisa que noto é que sua variável $ olduser não está definida para a substituição de comando, mas para a cadeia literal "who | grep | -u, -q +30"

A substituição de comandos geralmente é feita com $(command_to_be_run) ou com backticks como 'command_to_be_run' . E eu não acho que você está procurando who , mas deve estar procurando, como mencionado acima, em comandos de contabilidade como logins ou last ou até mesmo arquivos de log.

Algo como for-loop para gerar uma lista de usuários e, a partir daí, usar essa última e sua substituição de variável para gerar uma data do último logon para cada participante, para que você possa executar uma instrução de avaliação como if-then-fi eles têm mais de 35 dias.

por exemplo. No Solaris 10, com Bash

LAST_LOGON_DATE=$(last $user | awk 'NR==1{print $5,$6}' | custom_date_convert_cmd )

if [[ ${LAST_LOGON_DATE} -ge 35 ]]; then
    echo "${user} is expired. Last logon: ${LAST_LOGON_DATE} days ago"
    important_commands_here
fi

Obviamente, o sed / perl provavelmente seria uma solução melhor em termos de velocidade de processamento em relação ao AWK, mas se você está em uma correção e precisa apenas de algo funcionando, esse é provavelmente um bom lugar para começar.

Procure o seu sistema STIG da DISA, pois normalmente eles incluem comandos para fazer exatamente isso ... checar os últimos logins dos usuários, usuários sem senhas, etc ...
link

    
por 30.11.2016 / 17:41

Tags