Besoin d'aide script shell supprimer user
phoenix00
Messages postés
15
Statut
Membre
-
francois -
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 ;-)
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:
- Besoin d'aide script shell supprimer user
- Supprimer rond bleu whatsapp - Guide
- Classic shell - Télécharger - Personnalisation
- Supprimer page word - Guide
- Script vidéo youtube - Guide
- Supprimer pub youtube - Accueil - Streaming
5 réponses
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.
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.
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.
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.
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.
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.
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...
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...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
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