excluir vários usuários

1

Eu sou o usuário root e estou configurando um menu para outro usuário usar. Este outro usuário só receberá este menu.

Existem duas opções que estão interligadas: a primeira opção é pesquisar os usuários. O código que eu tenho é:

last | awk '{print $1,$4,$5,$6,$7} ' 

Eu verifiquei este código e ele funciona, ele mostra os nomes de usuários e o dia em que eles fizeram o login pela última vez.

Para a segunda opção: desejo definir uma data e excluir usuários que não estão ativos desde essa data, usando a saída do comando acima.

Estou usando o editor de texto do Linux Mint e Vim.

    
por user2995836 05.12.2014 / 13:26

2 respostas

0

Você pode fazer assim:

root@host# lastlog -b Num_Days_Since_Last_Login | egrep -v "^Username|Never logged in" | awk '{print $1}' | xargs -i userdel {}

Onde Num_Days_Since_Last_Login é um número inteiro de dias desde o último login ...

    
por 05.12.2014 / 16:15
0

Uma solução completa:

#!/bin/bash

maxdate=$(date -d "$1" +%s) || exit 1
daysdate=$((($(date +%s)-maxdate)/(3600*24)))

LANG=C lastlog -b $daysdate -u 1000- |
    awk 'NR>1{print $1}' |
    xargs -n1 echo userdel

Teste-o e remova echo para fazê-lo forReal ™. Exemplo de uso:

./script.sh 'Fri Dec  5 17:00:06 CET 2013'
    
por 05.12.2014 / 17:21

Tags