OVH Cloud OVH Cloud

Script cgi pour changer password linux

8 réponses
Avatar
dric-li
Bonjour

Tout est presque dans le titre.
Je désire faire appel à un script perl-cgi pour changer le mot de passe d'un
utilisateur existant sur le système Linux hébergeant le site Web.
Le script prendrait en entrée l'ancien et le nouveau mot de passe et en
sortie un code retour de réussite.
Est-ce faisable en perl ?

8 réponses

Avatar
Denis Joiret
dric-li wrote:
Bonjour

Tout est presque dans le titre.
Je désire faire appel à un script perl-cgi pour changer le mot de passe d'un
utilisateur existant sur le système Linux hébergeant le site Web.
Le script prendrait en entrée l'ancien et le nouveau mot de passe et en
sortie un code retour de réussite.
Est-ce faisable en perl ?


Bonjour,

Je pense que le module "Expect.pm" devrait permettre de répondre correctement
au problème. Il me semble que le script devrait aussi prendre comme argument
le login de l'utilisateur dont on change le mot de passe en plus des ancien et
nouveau mot de passe.

Denis Joiret

Avatar
Jogo
Je désire faire appel à un script perl-cgi pour changer le mot de
passe d'un utilisateur existant sur le système Linux hébergeant le
site Web. Le script prendrait en entrée l'ancien et le nouveau mot de
passe et en sortie un code retour de réussite.
Est-ce faisable en perl ?


C'est une très mauvaise idée, très dangereuse. Et ce n'est pas Perl qui
va poser problème, mais Linux.

Une première solution en Perl pur, avec crypt et par exemple
Linux::usermod, va poser le problème des droits d'écriture sur les
fichiers de mots de passe (/etc/passwd et autres). Donner les droits
d'écriture à ces fichiers à l'utilisateurs lançant ton serveur web,
c'est ajouter énormément d'insécurité. Une solution peut être
d'utiliser suexec (pour apache).

L'autre solution c'est de lancer passwd, par exemple en utilisant sudo.
Tu pourrais alors configurer sudoers pour lister précisément les
utilisateurs dont le mot de passe peut être modifier. L'inconvénient
est bien sûr le nombre de processus lancés (Perl + sudo + passwd).

--
La douleur me prive de ma chair, comme le plaisir me la donne.
- Jean-Luc Marion - Le phénomène érotique -

Avatar
espie
In article <45d4da78$0$21904$,
dric-li wrote:
Bonjour

Tout est presque dans le titre.
Je désire faire appel à un script perl-cgi pour changer le mot de passe d'un
utilisateur existant sur le système Linux hébergeant le site Web.
Le script prendrait en entrée l'ancien et le nouveau mot de passe et en
sortie un code retour de réussite.
Est-ce faisable en perl ?


La question a se poser est aussi: est-ce que tes utilisateurs ont acces
au systeme autrement que par le serveur web ?

Il n'est pas forcement necessaire de leur donner autre chose comme acces,
et donc de leur creer un `vrai' compte Unix.

(si c'est aussi un compte ftp, le meme compte peut etre partage).

Pense aussi a insister tres fort pour que le script ne soit
visible/accessible que par du https...

Si c'est exclusivement du Linux, il y a certainement d'autres facons de
faire que d'appeler passwd, en particulier a cause de PAM.

Avatar
dric-li
Marc Espie wrote:

In article <45d4da78$0$21904$,
dric-li wrote:
Bonjour

Tout est presque dans le titre.
Je désire faire appel à un script perl-cgi pour changer le mot de passe
d'un utilisateur existant sur le système Linux hébergeant le site Web.
Le script prendrait en entrée l'ancien et le nouveau mot de passe et en
sortie un code retour de réussite.
Est-ce faisable en perl ?


La question a se poser est aussi: est-ce que tes utilisateurs ont acces
au systeme autrement que par le serveur web ?

Il n'est pas forcement necessaire de leur donner autre chose comme acces,
et donc de leur creer un `vrai' compte Unix.

(si c'est aussi un compte ftp, le meme compte peut etre partage).

Pense aussi a insister tres fort pour que le script ne soit
visible/accessible que par du https...

Si c'est exclusivement du Linux, il y a certainement d'autres facons de
faire que d'appeler passwd, en particulier a cause de PAM.


Merci pour pour la réponse, ainsi qu'aux autres.
Je précise ma situation pour avoir peut-être d'autres idées.
Je gère un serveur web (Redhat) sur un intranet d'entreprise.
Un groupe d'utilisateurs a un compte sur ce système avec un accès ftp pour y
transférer des fichiers.
Je voudrais leur laisser la possibilité de gérer leur mot de passe sans
qu'ils m'appellent pour le changer. Je pensais donc construire une
interface web avec script perl-cgi pour changer le fameux mot de passe.


Avatar
Rakotomandimby (R12y) Mihamina
dric-li wrote:

Je précise ma situation pour avoir peut-être d'autres idées.
Je gère un serveur web (Redhat) sur un intranet d'entreprise.
Un groupe d'utilisateurs a un compte sur ce système avec un accès ftp pour
y transférer des fichiers.
Je voudrais leur laisser la possibilité de gérer leur mot de passe sans
qu'ils m'appellent pour le changer. Je pensais donc construire une
interface web avec script perl-cgi pour changer le fameux mot de passe.


Il y a aussi la solution
d'envoyer un mail à une adresse "robot", avec comme seul contenu
user:nouveau_pass
le robot traitera ensuite la demande en extrayant le corps du mail et en
appelant "newusers"
http://www.die.net/doc/linux/man/man8/newusers.8.html

Je redirige vers un groupe plutot Unix/Linux specifique.

Avatar
tfe
Bonjour,

S'il s'agit uniquement du service FTP, tu peux utiliser
l'identification par base de données SQL.
Ca me semble bien plus facil à administrer par la suite.
Par exemple, http://www.castaglia.org/proftpd/doc/contrib/ProFTPD-mini-HOWT O-SQL.html

--
tfe
http://tfeserver.be

On 16 fév, 22:11, dric-li wrote:
Marc Espie wrote:
In article <45d4da78$0$21904$,
dric-li wrote:
Bonjour

Tout est presque dans le titre.
Je désire faire appel à un script perl-cgi pour changer le mot de p asse
d'un utilisateur existant sur le système Linux hébergeant le site W eb.
Le script prendrait en entrée l'ancien et le nouveau mot de passe et en
sortie un code retour de réussite.
Est-ce faisable en perl ?


La question a se poser est aussi: est-ce que tes utilisateurs ont acces
au systeme autrement que par le serveur web ?

Il n'est pas forcement necessaire de leur donner autre chose comme acce s,
et donc de leur creer un `vrai' compte Unix.

(si c'est aussi un compte ftp, le meme compte peut etre partage).

Pense aussi a insister tres fort pour que le script ne soit
visible/accessible que par du https...

Si c'est exclusivement du Linux, il y a certainement d'autres facons de
faire que d'appeler passwd, en particulier a cause de PAM.


Merci pour pour la réponse, ainsi qu'aux autres.
Je précise ma situation pour avoir peut-être d'autres idées.
Je gère un serveur web (Redhat) sur un intranet d'entreprise.
Un groupe d'utilisateurs a un compte sur ce système avec un accès ftp pour y
transférer des fichiers.
Je voudrais leur laisser la possibilité de gérer leur mot de passe sa ns
qu'ils m'appellent pour le changer. Je pensais donc construire une
interface web avec script perl-cgi pour changer le fameux mot de passe.




Avatar
ALain Montfranc
Rakotomandimby (R12y) Mihamina a écrit
dric-li wrote:

Je précise ma situation pour avoir peut-être d'autres idées.
Je gère un serveur web (Redhat) sur un intranet d'entreprise.
Un groupe d'utilisateurs a un compte sur ce système avec un accès ftp pour
y transférer des fichiers.
Je voudrais leur laisser la possibilité de gérer leur mot de passe sans
qu'ils m'appellent pour le changer. Je pensais donc construire une
interface web avec script perl-cgi pour changer le fameux mot de passe.



Ca n'est pas tres dur. Tu peux facilement ecrire un script expect qui
simule un utilisateur tapant :

su <compte>
password : <ancien passwd>
passwd
etc...

C'est ce que j'avais fait il y a 10 ans ;-)


Il y a aussi la solution
d'envoyer un mail à une adresse "robot", avec comme seul contenu
user:nouveau_pass


sécurité : néant !


Avatar
Pascal Bourguignon
ALain Montfranc writes:

Rakotomandimby (R12y) Mihamina a écrit
dric-li wrote:

Je précise ma situation pour avoir peut-être d'autres idées.
Je gère un serveur web (Redhat) sur un intranet d'entreprise.
Un groupe d'utilisateurs a un compte sur ce système avec un accès ftp pour
y transférer des fichiers.
Je voudrais leur laisser la possibilité de gérer leur mot de passe sans
qu'ils m'appellent pour le changer. Je pensais donc construire une
interface web avec script perl-cgi pour changer le fameux mot de passe.



Ca n'est pas tres dur. Tu peux facilement ecrire un script expect qui
simule un utilisateur tapant :

su <compte>
password : <ancien passwd>
passwd
etc...

C'est ce que j'avais fait il y a 10 ans ;-)


De nos jours, on a chpasswd qui permet de changer les mots de passe en
traitement par lot. On peut aussi lui fournir des mots de passe déjà
encryptés, afin d'éviter tout problème de sécurité.

--
__Pascal Bourguignon__ http://www.informatimago.com/
I need a new toy.
Tail of black dog keeps good time.
Pounce! Good dog! Good dog!