logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 03-06-2014 10:36:24

lebardix
Membre
Lieu : Plan de Cuques
Distrib. : Version 9.2 (Stretch) 64 bits
Noyau : Linux 4.9.0-3-amd64
(G)UI : Gnome
Inscription : 15-10-2013

remplacer la connexion console traditionnelle ?

bonjour,

suite à mon post https://debian-facile.org/viewtopic.php?id=8944, je voudrais, pour des écoles primaires, remplacer la console de connexion traditionnelle par une fenêtre type "ncurses" dans laquelle je pourrais informer des possibilités (caractéristiques, choix..) de connexion.

A ce jour j'ai ajouté une image semi-graphique avec quelques informations, mais les enfants se perdent entre les cases clavier, la saisie des mots de passe qui n'affiche rien ....

Donc créer un programme assurant la connexion console.

Merci

Hors ligne

#2 03-06-2014 20:07:57

captnfab
Admin-Girafe
Lieu : /dev/random
Distrib. : Debian
Noyau : Dur
(G)UI : gui gui, je zuis un doiseau
Inscription : 07-07-2008
Site Web

Re : remplacer la connexion console traditionnelle ?

Yo,

Mhh, pas trivial.
Tu dois pouvoir te créer un programme de login, genre "monlogin.py" :

#!/usr/bin/env python
# vim:set fileencoding=utf-8:

from __future__ import print_function
import PAM
import sys, os
from getpass import getpass

def affiche_aide():
    print('meuh')

def pam_conv(auth, query_list, userData):
    resp = []
    for i in range(len(query_list)):
        query, type = query_list[i]
        if type == PAM.PAM_PROMPT_ECHO_ON:
            val = raw_input("Nom d'utilisateur : ")
            resp.append((val, 0))
        elif type == PAM.PAM_PROMPT_ECHO_OFF:
            val = getpass("Mot de passe (ne s'affiche pas) : ")
            resp.append((val, 0))
        elif type == PAM.PAM_PROMPT_ERROR_MSG or type == PAM.PAM_PROMPT_TEXT_INFO:
            print(query)
            resp.append(('', 0))
        else:
            return None
    return resp

def try_auth():
    affiche_aide()
    service = "login"
    auth = PAM.pam()
    auth.start(service)
    auth.set_item(PAM.PAM_CONV, pam_conv)
    try:
        auth.authenticate()
        auth.acct_mgmt()
    except PAM.error, resp:
        print("Erreur d'authentification : %s" % resp)
    except:
        print('Erreur interne')
    else:
        return True,auth.get_item(PAM.PAM_USER)
    return False,""

if __name__ == "__main__":
    import signal
    signal.signal(signal.SIGINT, signal.SIG_DFL)
    auth,login = try_auth()
    if auth:
        os.execv("/bin/su",["-l", "-", login])


(Nécessite python-pam)

Puis indiquer à getty d'utiliser « monlogin.py » (argument « -l ») dans le « /etc/inittab ».

Après, je ne sais pas ce dont tu as vraiment besoin, et je ne connais rien qui existe déjà et réponde à tes besoins.

Si tu sais coder, tu dois pouvoir modifier ce programme pour faire un truc ncurses joli… Perso je ne sais pas faire, pour le moment smile


captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.

Hors ligne

Pied de page des forums