URL: https://linuxfr.org/forums/programmation-shell/posts/remplacer-des-lignes-dans-un-fichier Title: Remplacer des lignes dans un fichier Authors: Paddle Date: 2005年04月11日T16:56:15+02:00 Tags: Score: 0 Bonjour, j'ai mis en place un environnement chrooté pour mon serveur ssh pour certains utilisateurs. Ces utilisateurs veulent pouvoir changer leur mot de passe. Donc je leur ai donné la commande passwd, et une copie de /etc/shadow (avec uniquement leurs passwords dedans) se trouve dans l'environnement chrooté. Maintenant, quand ils changent leur password, seul le fichier shadow dans l'env est impacté. Et donc a leur prochaine connection, le mot de passe qui leur est demandé est toujours l'ancien (du fichier shadow contenu dans /etc). Pour "impacter" le changement, j'aimerai faire un crontab qui remplacerai dans le fichier /etc/shadow, les lignes correspondantes à une liste d'utilisateur (ceux qui sont chrootés uniquement) par celles correspondantes du fichier env-chrooté/etc/shadow Et là, j'avoue que je sèche grandement. J'ai regardé la commande grep env-chrooté/etc/shadow -e "^$USERNAME" Mais je n'arrive pas a comprendre comment remplacé la ligne correspondante dans le "bon" fichier... je suis parti sur une base comme ceci: #!/bin/bash # Les utilisateurs dont modifier les passwords USERNAME="user1 user2 user3" for user in $USERNAME; do # La le remplacement des lignes ??? grep env-chrooté/etc/shadow -e "^$USERNAME" >> /etc/shadow done merci beaucoup d'avance