Besoin d'aide script shell supprimer user

phoenix00 Messages postés 15 Statut Membre -  
 francois -
Bonjour à tous,

Je souhaite réaliser un script shell qui me permet de supprimer les comptes utilisateurs inactifs depuis plus de 30 jours et d'archiver leurs données.
Je ne parviens pas à ecrire ce script. Il me semble qu'il faut utiliser la commande lastlog mais je n'en suis pas sur...

Si vous avez une idée, merci de me donner un coup de main ;-)
A voir également:

5 réponses

francois
 
Bonjour,

bonjour, tu peux faire effectivement un script basé sur la commande last, mais à ta place je n'effacerais pas les accomptes non utilisés, mais juste bloquer les accomptes. ca evite que des fichiers sur les serveurs n'est plus de proprietaires.
0
phoenix00 Messages postés 15 Statut Membre
 
Merci pour ta reponse.

Cependant, je cherche bien à supprimer les comptes inactifs. De tout de façon, je supprime ensuite les fichiers des utilisateurs après les avoir archivées.
0
francois
 
Bonjour,

je dirais de faire un script dans ce genre la ( mais je me base sur solaris comme OS)

last | grep 'dernier_mois_de_connection ' | awk '{print $1}' | uniq >/tmp/valid_users

==> ce qui me permet de valider les utilisateurs qui se sont connecté au cours du dernier mois ( par exemple a faire tourner le 30 ou 31 au soir de chaque mois.

for i in `cat /tmp/valid_users`
do
grep $i /etc/passwd > /etc/passwd-new
done

==> ce qui permet de copier les accomptes des users qui ont été connecté vers un nouveau fichier.

mv /etc/passwd /etc/passwd.'date_du_jour' ==> backup du passwd file du moment.
mv /etc/passwd-new /etc/passwd ==> mets le nouveau fichier passwd en place
pwconv ==> synchronise le shadow file avec le nouveau passwd obtenu


Remarque importante, il faut d'office que les 10 ou 15 premieres lignes soient copiéer , car elles ont des accomptes utilisés pour l'OS et ne se connecte pas forcement.
0
phoenix00 Messages postés 15 Statut Membre
 
Merci pour ton aide,

mais je crois que ca ne colle pas.
En fait mon script doit s'executer tous les dimanche et donc supprimer automatiquement les users qui ne se sont pas connecté depuis plus de 30 jours... Il faudrait donc, je pense, que le script lors de sa date d'execution supprime les users en fonction de la date de leur dernière connexion...je ne sais pas trop...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
francois
 
Bonjour,

dans ce cas la, la commande finger login est la plus facile, elle te donne la derniere date d'acces au systeme.
Mais attention, si tu utilises cette commande, elle ne peut s'averer efficace que si les accomptes des utilisateurs sont créé en local sur chaque machine, et que tu n'utilises pas NIS, NIS+ , LDAP ... ou tout autre moyen de gestion centralisée des accomptes.

ex : finger root
0