Bonjour à tous!
Je voudrais vous faire part d'un petit script que j'ai bidouillé depuis 2-3 jours permettant de configurer n'importe quel programme avec PAM et Consolehelper.
Ce script via Zenity ne fait rien d'autre que d'automatiser ce que je dois tapper à la mimine, c'est à dire créer un fichier configuré dans /etc/pam.d/ et /etc/security/console.apps/ et créer un lien symbolique avec ConsoleHelper. Tout ceci dans le but de me demander le mot de passe root avec mes propres programmes.
C'est la premiere fois que je fais un script de cette envergure, donc venez pas gueuler apres moi si ca met la pagaille dans votre système :-D
Vous pouvez biensur modifier tous ce que vous voulez dedans et partager le résultat 🙂
Je voudrais vous faire part d'un petit script que j'ai bidouillé depuis 2-3 jours permettant de configurer n'importe quel programme avec PAM et Consolehelper.
Ce script via Zenity ne fait rien d'autre que d'automatiser ce que je dois tapper à la mimine, c'est à dire créer un fichier configuré dans /etc/pam.d/ et /etc/security/console.apps/ et créer un lien symbolique avec ConsoleHelper. Tout ceci dans le but de me demander le mot de passe root avec mes propres programmes.
C'est la premiere fois que je fais un script de cette envergure, donc venez pas gueuler apres moi si ca met la pagaille dans votre système :-D
Vous pouvez biensur modifier tous ce que vous voulez dedans et partager le résultat 🙂
#!/bin/bash
#gpam-conf
#By gueraph ( gueraphmayax at gmail dot com )
# Programme permettant d'automatiser la configuration d'un script
# avec PAM/ConsoleHelper
# License GPL
#This program is free software; you can redistribute it and/or modify
#it under the terms of the GNU General Public License as published by
#the Free Software Foundation; either version 2 of the License, or
#(at your option) any later version.
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#GNU General Public License for more details.
#You should have received a copy of the GNU General Public License
#along with this program; if not, write to the Free Software
#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
#MA 02110-1301, USA.
SAVE=/usr/share/gpam-conf/save
pam() {
echo -e "#%PAM-1.0\nauth\tinclude\tconfig-util" > /etc/pam.d/"$NOMDUPROG"
echo -e "\naccount\tinclude\tconfig-util" >> /etc/pam.d/"$NOMDUPROG"
echo -e "\nsession\tinclude\tconfig-util" >> /etc/pam.d/"$NOMDUPROG"
}
consoleh() {
echo -e "USER=root\nPROGRAM=$CHEMINPROG\nSESSION=true" > /etc/security/console.apps/"$NOMDUPROG"
}
cd /usr/share/
if ls | grep "gpam-conf"
then
echo "Le dossier existe"
else
echo "Le dossier gpam-conf n'existe pas: creation du dossier"
mkdir gpam-conf
fi
while true
do
CHOIX=`zenity --title "gpam-conf" --text "Bienvenue dans gpam-conf\nCe script vous aidera à la configuration automatique \nde vos propres scripts avec PAM/ConsoleHelper" --list --column "Installer/Supprimer" "Installer" "Supprimer" --height=240`
if [ "$CHOIX" = "" ]
then
exit
else
case "$CHOIX" in
"Installer" )
NOMDUPROG=`zenity --entry --text "Quel est le nom de votre programme? (Ne pas mettre d'espaces)" --title "Nom du programme"`
if echo "$NOMDUPROG" | grep -q " "
then
zenity --info --text="Vous avez entré un espace."
elif [ -z "$NOMDUPROG" ]
then
zenity --info --text="Vous n'avez rien entré."
else
pam
zenity --info --text="Indiquez l'emplacement de votre script dans la prochaine boite de dialogue." --title="Chemin du programme"
CHEMINPROG="$(zenity --file-selection --title 'Emplacement de votre script')"
consoleh
echo "creation lien symbolique"
ln -s /usr/bin/consolehelper /usr/bin/"$NOMDUPROG"
zenity --info --text="Un lien symbolique grace à Consolehelper à été crée.\nCela va vous permettre d'utiliser /usr/bin/$NOMDUPROG pour lancer votre script. \nL'installation est terminée." --title="Creation d'un lien symbolique"
echo "$NOMDUPROG" >> "$SAVE"
fi
;;
"Supprimer" )
NOMSAVED=`cat "$SAVE" | xargs zenity --title "Suppression" --text "Quel script voulez vous supprimer de PAM/ConsoleHelper ?" --list --column "Scripts installés"`
if [ "$NOMSAVED" = "" ]
then
echo "retour"
else
rm /etc/pam.d/"$NOMSAVED"
rm /etc/security/console.apps/"$NOMSAVED"
rm /usr/bin/"$NOMSAVED"
cat "$SAVE" | sed -e "s/$NOMSAVED//g" > "$SAVE"
zenity --info --text "Configuration $NOMSAVED effacé"
fi
;;
esac
fi
done