#!/bin/bash /usr/scripts/python.sh # -*- coding: utf-8 -*- """ Changement du shell de l'utilisateur lancant le programme DOIT ETRE LANCE PAR SUDO Copyright (C) Frédéric Pauget Licence : GPLv2 """ import os, sys from gestion.affich_tools import prompt from lc_ldap import shortcuts ldap = shortcuts.lc_ldap_admin() uid = os.getenv('SUDO_UID') if not uid : print "Impossible de déterminer l'utilisateur" sys.exit(1) adh = ldap.search(u'uidNumber=%s' % uid,mode='w') try: adh = adh[0] except IndexError: print 'Erreur fatale lors de la consultation de la base LDAP' sys.exit(3) # On vérifie que c'est pas un club if unicode(adh.ldap_name)!=u"adherent": print 'Pas de changement de shell pour les clubs' sys.exit(2) shell = prompt(u'Nouveau shell :') fd=open('/etc/shells') lines=fd.readlines() fd.close() shells = [line.strip() for line in lines if not (line.startswith('#') or line.endswith('/rssh'))] if not shell in shells: print 'Shell invalide. Les shells valides sont :' print '\n'.join(shells) sys.exit(4) with adh as ad: ad['loginShell']=shell ad.save() # A cause de nscd print "La modification sera prise en compte dans l'heure suivante."