Je souhaite surtout mettre en place un petit environnement
de tests pour pam.
-Je voudrais donc écrire une application pam-ifiée
-Je voudrais une stack pam pour elle
Pour tester, j'ai pris le bout de code python disponible ici:
< http://stackoverflow.com/questions/5286321/pam-authentication-in-python-without-root-privileges >
Ca marche bien, je peux m'"authentifier" avec la configuration pam
par défaut.
Si je comprends bien, une application va lire son fichier
pam dans /etc/pam.d/, par exemple /etc/pam.d/login
ou /etc/pam.d/sshd, et /etc/pam.d/other par défaut.
Si j'écris mon application, quel sera son fichier de
configuration? Le nom de mon application? "python"?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Benoit Izac
Bonjour, Le 09/06/2016 à 22:00, Kevin Denis a écrit dans le message :
je souhaite faire des tests avec pam. Je souhaite surtout mettre en place un petit environnement de tests pour pam. -Je voudrais donc écrire une application pam-ifiée -Je voudrais une stack pam pour elle Pour tester, j'ai pris le bout de code python disponible ici: < http://stackoverflow.com/questions/5286321/pam-authentication-in-python-without-root-privileges
Ca marche bien, je peux m'"authentifier" avec la configuration pam par défaut.
La seule partie intéressante dans tout ce code est : import pam if pam.authenticate('username', 'password'): # auth ok else: # auth nok La version dont je dispose (1.8.2) fonctionne légèrement différemment mais permet d'avoir des informations sur l'échec :
import pam p = pam.pam() p.authenticate('', '', ''), p.code, p.reason
(False, 10, 'User not known to the underlying authentication module')
Si je comprends bien, une application va lire son fichier pam dans /etc/pam.d/, par exemple /etc/pam.d/login ou /etc/pam.d/sshd, et /etc/pam.d/other par défaut. Si j'écris mon application, quel sera son fichier de configuration? Le nom de mon application? "python"?
<https://atlee.ca/software/pam/module-pam.html> indique que si tu ne précises pas le nom du service, ce sera « login ». Tu peux utiliser ce qu'il te chante du moment que l'identifiant est le même dans ton application et dans pam.d/. -- Benoit Izac
Bonjour,
Le 09/06/2016 à 22:00, Kevin Denis a écrit dans le message
<slrnnlk1uj.qq6.kevin@slackwall.local.tux> :
je souhaite faire des tests avec pam.
Je souhaite surtout mettre en place un petit environnement
de tests pour pam.
-Je voudrais donc écrire une application pam-ifiée
-Je voudrais une stack pam pour elle
Pour tester, j'ai pris le bout de code python disponible ici:
<
http://stackoverflow.com/questions/5286321/pam-authentication-in-python-without-root-privileges
Ca marche bien, je peux m'"authentifier" avec la configuration pam
par défaut.
La seule partie intéressante dans tout ce code est :
import pam
if pam.authenticate('username', 'password'):
# auth ok
else:
# auth nok
La version dont je dispose (1.8.2) fonctionne légèrement différemment
mais permet d'avoir des informations sur l'échec :
import pam
p = pam.pam()
p.authenticate('', '', ''), p.code, p.reason
(False, 10, 'User not known to the underlying authentication module')
Si je comprends bien, une application va lire son fichier
pam dans /etc/pam.d/, par exemple /etc/pam.d/login
ou /etc/pam.d/sshd, et /etc/pam.d/other par défaut.
Si j'écris mon application, quel sera son fichier de
configuration? Le nom de mon application? "python"?
<https://atlee.ca/software/pam/module-pam.html> indique que si tu ne
précises pas le nom du service, ce sera « login ». Tu peux utiliser ce
qu'il te chante du moment que l'identifiant est le même dans ton
application et dans pam.d/.
Bonjour, Le 09/06/2016 à 22:00, Kevin Denis a écrit dans le message :
je souhaite faire des tests avec pam. Je souhaite surtout mettre en place un petit environnement de tests pour pam. -Je voudrais donc écrire une application pam-ifiée -Je voudrais une stack pam pour elle Pour tester, j'ai pris le bout de code python disponible ici: < http://stackoverflow.com/questions/5286321/pam-authentication-in-python-without-root-privileges
Ca marche bien, je peux m'"authentifier" avec la configuration pam par défaut.
La seule partie intéressante dans tout ce code est : import pam if pam.authenticate('username', 'password'): # auth ok else: # auth nok La version dont je dispose (1.8.2) fonctionne légèrement différemment mais permet d'avoir des informations sur l'échec :
import pam p = pam.pam() p.authenticate('', '', ''), p.code, p.reason
(False, 10, 'User not known to the underlying authentication module')
Si je comprends bien, une application va lire son fichier pam dans /etc/pam.d/, par exemple /etc/pam.d/login ou /etc/pam.d/sshd, et /etc/pam.d/other par défaut. Si j'écris mon application, quel sera son fichier de configuration? Le nom de mon application? "python"?
<https://atlee.ca/software/pam/module-pam.html> indique que si tu ne précises pas le nom du service, ce sera « login ». Tu peux utiliser ce qu'il te chante du moment que l'identifiant est le même dans ton application et dans pam.d/. -- Benoit Izac
Kevin Denis
Le 09-06-2016, Benoit Izac a écrit :
La seule partie intéressante dans tout ce code est : import pam if pam.authenticate('username', 'password'): # auth ok else: # auth nok
oui
La version dont je dispose (1.8.2) fonctionne légèrement différemment mais permet d'avoir des informations sur l'échec :
import pam p = pam.pam() p.authenticate('', '', ''), p.code, p.reason
(False, 10, 'User not known to the underlying authentication module')
Ok, j'ai une version plus ancienne, mais j'ai compris le principe. Si j'utilise import pam puis pam.authenticate('login','password') alors ça renvoie bien les résultats attendus.
<https://atlee.ca/software/pam/module-pam.html> indique que si tu ne précises pas le nom du service, ce sera « login ». Tu peux utiliser ce qu'il te chante du moment que l'identifiant est le même dans ton application et dans pam.d/.
Ok Bon, je dois avoir un second problème: :/lib/x86_64-linux-gnu/security# cat /etc/pam.d/my_test auth requisite pam_python.so pam_permit.py :/lib/x86_64-linux-gnu/security# Le fichier pam_permit.py est tiré de /usr/share/doc/libpam-python-doc/examples/pam_permit.py :/lib/x86_64-linux-gnu/security# ipython In [1]: import pam In [2]: pam.authenticate('toto','toto','my_test') Erreur de segmentation :/lib/x86_64-linux-gnu/security# Je vais regarder du côté du segfault. -- Kevin
Le 09-06-2016, Benoit Izac <use.reply.to@INVALID.ADDRESS> a écrit :
La seule partie intéressante dans tout ce code est :
import pam
if pam.authenticate('username', 'password'):
# auth ok
else:
# auth nok
oui
La version dont je dispose (1.8.2) fonctionne légèrement différemment
mais permet d'avoir des informations sur l'échec :
import pam
p = pam.pam()
p.authenticate('', '', ''), p.code, p.reason
(False, 10, 'User not known to the underlying authentication module')
Ok, j'ai une version plus ancienne, mais j'ai compris le principe.
Si j'utilise import pam puis pam.authenticate('login','password') alors
ça renvoie bien les résultats attendus.
<https://atlee.ca/software/pam/module-pam.html> indique que si tu ne
précises pas le nom du service, ce sera « login ». Tu peux utiliser ce
qu'il te chante du moment que l'identifiant est le même dans ton
application et dans pam.d/.
Ok
Bon, je dois avoir un second problème:
root@dell:/lib/x86_64-linux-gnu/security# cat /etc/pam.d/my_test
auth requisite pam_python.so pam_permit.py
root@dell:/lib/x86_64-linux-gnu/security#
Le fichier pam_permit.py est tiré de
/usr/share/doc/libpam-python-doc/examples/pam_permit.py
root@dell:/lib/x86_64-linux-gnu/security# ipython
In [1]: import pam
In [2]: pam.authenticate('toto','toto','my_test')
Erreur de segmentation
root@dell:/lib/x86_64-linux-gnu/security#
Ok, j'ai une version plus ancienne, mais j'ai compris le principe. Si j'utilise import pam puis pam.authenticate('login','password') alors ça renvoie bien les résultats attendus.
<https://atlee.ca/software/pam/module-pam.html> indique que si tu ne précises pas le nom du service, ce sera « login ». Tu peux utiliser ce qu'il te chante du moment que l'identifiant est le même dans ton application et dans pam.d/.
Ok Bon, je dois avoir un second problème: :/lib/x86_64-linux-gnu/security# cat /etc/pam.d/my_test auth requisite pam_python.so pam_permit.py :/lib/x86_64-linux-gnu/security# Le fichier pam_permit.py est tiré de /usr/share/doc/libpam-python-doc/examples/pam_permit.py :/lib/x86_64-linux-gnu/security# ipython In [1]: import pam In [2]: pam.authenticate('toto','toto','my_test') Erreur de segmentation :/lib/x86_64-linux-gnu/security# Je vais regarder du côté du segfault. -- Kevin
Benoit Izac
Bonjour, Le 10/06/2016 à 15:41, Kevin Denis a écrit dans le message :
Bon, je dois avoir un second problème: :/lib/x86_64-linux-gnu/security# cat /etc/pam.d/my_test auth requisite pam_python.so pam_permit.py :/lib/x86_64-linux-gnu/security# Le fichier pam_permit.py est tiré de /usr/share/doc/libpam-python-doc/examples/pam_permit.py :/lib/x86_64-linux-gnu/security# ipython In [1]: import pam In [2]: pam.authenticate('toto','toto','my_test') Erreur de segmentation :/lib/x86_64-linux-gnu/security# Je vais regarder du côté du segfault.
Quelle sont les versions de python et python-pam (+l'auteur car il y en plusieurs) ? Essaye avec cette version <https://pypi.python.org/pypi/python-pam/> (pip install pam) ? -- Benoit Izac
Bonjour,
Le 10/06/2016 à 15:41, Kevin Denis a écrit dans le message
<slrnnlm02s.qvq.kevin@slackwall.local.tux> :
Bon, je dois avoir un second problème:
root@dell:/lib/x86_64-linux-gnu/security# cat /etc/pam.d/my_test
auth requisite pam_python.so pam_permit.py
root@dell:/lib/x86_64-linux-gnu/security#
Le fichier pam_permit.py est tiré de
/usr/share/doc/libpam-python-doc/examples/pam_permit.py
root@dell:/lib/x86_64-linux-gnu/security# ipython
In [1]: import pam
In [2]: pam.authenticate('toto','toto','my_test')
Erreur de segmentation
root@dell:/lib/x86_64-linux-gnu/security#
Je vais regarder du côté du segfault.
Quelle sont les versions de python et python-pam (+l'auteur car il y en
plusieurs) ?
Essaye avec cette version <https://pypi.python.org/pypi/python-pam/> (pip
install pam) ?
Bonjour, Le 10/06/2016 à 15:41, Kevin Denis a écrit dans le message :
Bon, je dois avoir un second problème: :/lib/x86_64-linux-gnu/security# cat /etc/pam.d/my_test auth requisite pam_python.so pam_permit.py :/lib/x86_64-linux-gnu/security# Le fichier pam_permit.py est tiré de /usr/share/doc/libpam-python-doc/examples/pam_permit.py :/lib/x86_64-linux-gnu/security# ipython In [1]: import pam In [2]: pam.authenticate('toto','toto','my_test') Erreur de segmentation :/lib/x86_64-linux-gnu/security# Je vais regarder du côté du segfault.
Quelle sont les versions de python et python-pam (+l'auteur car il y en plusieurs) ? Essaye avec cette version <https://pypi.python.org/pypi/python-pam/> (pip install pam) ? -- Benoit Izac
Kevin Denis
Le 10-06-2016, Benoit Izac a écrit :
:/lib/x86_64-linux-gnu/security# cat /etc/pam.d/my_test auth requisite pam_python.so pam_permit.py :/lib/x86_64-linux-gnu/security# Le fichier pam_permit.py est tiré de /usr/share/doc/libpam-python-doc/examples/pam_permit.py :/lib/x86_64-linux-gnu/security# ipython In [1]: import pam In [2]: pam.authenticate('toto','toto','my_test') Erreur de segmentation :/lib/x86_64-linux-gnu/security# Je vais regarder du côté du segfault.
Quelle sont les versions de python et python-pam (+l'auteur car il y en plusieurs) ?
j'ai pris celle qui est tirée par apt-get (debian 8): :~$ dpkg -l | grep python-pam ii python-pam 0.4.2-13.1 amd64 Python interface to the PAM library ii python-pampy 0.1.4-1 all Python module for simple PAM authentications :~$
Essaye avec cette version <https://pypi.python.org/pypi/python-pam/> (pip install pam) ?
Pas mieux :( -- Kevin
Le 10-06-2016, Benoit Izac <use.reply.to@INVALID.ADDRESS> a écrit :
root@dell:/lib/x86_64-linux-gnu/security# cat /etc/pam.d/my_test
auth requisite pam_python.so pam_permit.py
root@dell:/lib/x86_64-linux-gnu/security#
Le fichier pam_permit.py est tiré de
/usr/share/doc/libpam-python-doc/examples/pam_permit.py
root@dell:/lib/x86_64-linux-gnu/security# ipython
In [1]: import pam
In [2]: pam.authenticate('toto','toto','my_test')
Erreur de segmentation
root@dell:/lib/x86_64-linux-gnu/security#
Je vais regarder du côté du segfault.
Quelle sont les versions de python et python-pam (+l'auteur car il y en
plusieurs) ?
j'ai pris celle qui est tirée par apt-get (debian 8):
kevin@dell:~$ dpkg -l | grep python-pam
ii python-pam 0.4.2-13.1 amd64 Python interface to the PAM library
ii python-pampy 0.1.4-1 all Python module for simple PAM authentications
kevin@dell:~$
Essaye avec cette version <https://pypi.python.org/pypi/python-pam/> (pip
install pam) ?
:/lib/x86_64-linux-gnu/security# cat /etc/pam.d/my_test auth requisite pam_python.so pam_permit.py :/lib/x86_64-linux-gnu/security# Le fichier pam_permit.py est tiré de /usr/share/doc/libpam-python-doc/examples/pam_permit.py :/lib/x86_64-linux-gnu/security# ipython In [1]: import pam In [2]: pam.authenticate('toto','toto','my_test') Erreur de segmentation :/lib/x86_64-linux-gnu/security# Je vais regarder du côté du segfault.
Quelle sont les versions de python et python-pam (+l'auteur car il y en plusieurs) ?
j'ai pris celle qui est tirée par apt-get (debian 8): :~$ dpkg -l | grep python-pam ii python-pam 0.4.2-13.1 amd64 Python interface to the PAM library ii python-pampy 0.1.4-1 all Python module for simple PAM authentications :~$
Essaye avec cette version <https://pypi.python.org/pypi/python-pam/> (pip install pam) ?
Pas mieux :( -- Kevin
Kevin Denis
Le 11-06-2016, Kevin Denis a écrit :
Essaye avec cette version <https://pypi.python.org/pypi/python-pam/> (pip install pam) ?
Pas mieux :(
Finalement, j'ai fait le module pam en C et tout fonctionne bien. -- Kevin, qu'aurait préféré python, mais bon..
Le 11-06-2016, Kevin Denis <kevin@nowhere.invalid> a écrit :
Essaye avec cette version <https://pypi.python.org/pypi/python-pam/> (pip
install pam) ?
Pas mieux :(
Finalement, j'ai fait le module pam en C et tout fonctionne bien.
--
Kevin, qu'aurait préféré python, mais bon..