- Modifié
Bonsoir à tous
j'aimerai avoir votre avis sur un script que j'ai créer (savoir si il est bien codé, les commentaire, la lisibilité ...)
Ce script permet de créer un serveur Terminal serveur avec FreeNX couplé à une authentification LDAP.
Il a été testé sous une machine virtuel Fed13 (sur centOS ce script n'a pas été testé cependant les étapes du script on étaient testé)
http://files.famillewallon.com/public/scripts/tse.txt
[EDIT] Il faut aussi rajouter dans pam.d/sshd un pam_mkhomedir
sed -i "/session include password-auth/i\session optional pam_mkhomedir.so skel=/etc/skel umask=0022" /etc/pam.d/sshd [/EDIT]
j'aimerai avoir votre avis sur un script que j'ai créer (savoir si il est bien codé, les commentaire, la lisibilité ...)
Ce script permet de créer un serveur Terminal serveur avec FreeNX couplé à une authentification LDAP.
Il a été testé sous une machine virtuel Fed13 (sur centOS ce script n'a pas été testé cependant les étapes du script on étaient testé)
#!/bin/bash
###############################################################################
#
# TSE :
# TSE with free NX server and LDAP
#
# by Antoine WALLON a.k.a Neowdj <antoine at famillewallon dot com>
# Version 1
#
#
###############################################################################
# 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.
# - See http://www.gnu.org/licenses/gpl.html
#
###############################################################################
# Information à modifier #######
## Adresse ip ou hostname du serveur LDAP (ex: LDAPSERVER="192.168.1.1" ou LDAPSERVER="masterldap" )
LDAPSERVER=""
# Le DN de votre LDAP (ex: BASEDN="dc=ldap,dc=priv")
BASEDN=""
# Si votre serveur LDAP à besoin d'une authentification pour se connecter rentrer son DN complet (ex: ROOTBINDDN="cn=manager,dc=ldap,dc=priv")
# Sinon commenter ces 2 lignes (ROOTBINDDN et ROOTBINDPASSWD)
ROOTBINDDN=""
# Ainsi que son mot de passe (ex: ROOTBINDPASSWD="passwd")
ROOTBINDPASSWD=""
# Fin des informations à modifier ###########################
## Ne pas modifier à partir d'ici ##########################
# Affiche le nom de la distribution
OS=`cat /etc/redhat-release | awk {'print $1}'`
#Vérification si le user est root
if [ "$(whoami)" != 'root' ];
then
echo "Vous devez être logguer en root pour utiliser ce script"
echo "Utiliser la commande su -"
exit
fi
# Detection de la présence de gnome
#if [ ! $(rpm -qa | grep gnome-desktop) ];
#then
# echo -e "Gnome non présent dans le système"
# echo -e "Installation de Gnome en cours...\n"
#
# yum groupinstall -y "GNOME Desktop Environment"
#fi
# Detection de la distrib et installation de FreeNX, ldap_nss et openldap-clients
# Si CentOS
if [ "$OS" = "CentOS" ];
then
if [ ! $(rpm -qa | grep rpmforge-release) ];
then
echo -e "Installation du dépot RPMforge en cours...\n"
rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.$(uname -m).rpm
fi
if [ ! $(rpm -qa | grep freenx) ];
then
echo -e "Installation de FreeNX en cours...\n"
yum install -y nx freenx
fi
if [ ! $(rpm -qa | grep nss_ldap) ];
then
echo -e "Le package nss_ldap non présent dans le système"
echo -e "Installation de nss_ldap en cours...\n"
yum install -y nss_ldap
fi
if [ ! $(rpm -qa | grep openldap-clients) ];
then
echo -e "Le package openldap-clients non présent dans le système"
echo -e "Installation de openldap-clients en cours...\n"
yum install -y openldap-clients
fi
# Si Fedora
elif [ "$OS" = "Fedora" ];
then
if [ ! $(rpm -qa | grep freenx) ];
then
echo -e "Installation de FreeNX en cours...\n"
yum install -y nx freenx
fi
if [ ! $(rpm -qa | grep nss_ldap) ];
then
echo -e "Le package nss_ldap non présent dans le système"
echo -e "Installation de nss_ldap en cours...\n"
yum install -y nss_ldap
fi
if [ ! $(rpm -qa | grep openldap-clients) ];
then
echo -e "Le package openldap-clients non présent dans le système"
echo -e "Installation de openldap-clients en cours...\n"
yum install -y openldap-clients
fi
else
echo -e "Votre Distribution n'a pas été Reconnue. Ce script fonctionne uniquement sur les distributions CentOS et Fedora\n"
exit
fi
# Désactivation de Selinux (qui créer des problèmes lors de la création des utilisateurs)
echo -e "Désactivation de selinux\n"
sed -i 's/SELINUX=enforcing/SELINUX=disable/g' /etc/sysconfig/selinux
sed -i 's/SELINUX=permissive/SELINUX=disable/g' /etc/sysconfig/selinux
setenforce 0
# Copie du fichier node.conf.sample en node.conf
cd /etc/nxserver ; cp node.conf.sample node.conf
# Activation de ENABLE_PASSDB_AUTHENTICATION
sed -i 's/#ENABLE_PASSDB_AUTHENTICATION="0"/ENABLE_PASSDB_AUTHENTICATION="1"/g' /etc/nxserver/node.conf
# Démarrage du service freenx-server
service freenx-server start
# Vérification de la présence de Authconfig
if [ ! -e "/usr/sbin/authconfig" ];
then
echo -e "authconfig non présent dans le système"
echo -e "Installation de authconfig en cours...\n"
yum install -y authconfig
fi
#modification du fichier ldap
echo -e "Modification du fichier ldap.conf pour l'authentification LDAP"
echo -e "Sauvegarde du fichier ldap.conf en cours...\n"
cp /etc/ldap.conf /etc/ldap.conf.origin
authconfig --enableldap --enableldapauth --ldapserver=$LDAPSERVER --ldapbasedn=$BASEDN --update
if [ ${ROOTBINDDN} ];
then
echo "rootbinddn $ROOTBINDDN" >> /etc/ldap.conf
echo $ROOTBINDPASSWD > /etc/ldap.secret
chmod 600 /etc/ldap.secret
fi
# Modification de fichier nsswitch pour rajouer ldap après files.
echo -e "Modification du fichier nsswitch pour l'authentification LDAP"
echo -e "Sauvegarde du fichier system-auth en cours...\n"
cp /etc/nsswitch.conf /etc/nsswitch.conf.origin
sed -i -e "s|files|files ldap|" /etc/nsswitch.conf
# Modification du fichier system-auth pour remplacer pam_sss.so par pam_ldap.so (sous Fedora)
# sinon l'authentification ne fonctionnera pas et rajouer un pam_mkhomedir.
echo -e "Modification du fichier system_auth pour l'authentification LDAP"
echo -e "Sauvegarde du fichier system-auth en cours...\n"
cp /etc/pam.d/system-auth /etc/pam.d/system-auth.origin
sed -i 's/pam_sss.so/pam_ldap.so/g' /etc/pam.d/system-auth
sed -i "/session required pam_limits.so/i\session optional pam_mkhomedir.so skel=/etc/skel umask=0022" /etc/pam.d/system-auth
# Modification du fichier password-auth pour remplacer pam_sss.so par pam_ldap.so (sous Fedora)
# sinon l'authentification SSH ne fonctionnera pas.
echo -e "Modification du fichier password-auth pour l'authentification LDAP"
echo -e "Sauvegarde du fichier password-auth en cours...\n"
cp /etc/pam.d/password-auth /etc/pam.d/password-auth.origin
sed -i 's/pam_sss.so/pam_ldap.so/g' /etc/pam.d/password-auth
# Affichage de la clef d'authentification du serveur NX
echo -e "---------------------------------------------------------------------------------\n"
echo -e "L'installation est maintenant terminé\n"
echo -e "Copier / Coller le résultat dans votre client NX dans la partie Key... (à partir de -----BEGIN DSA PRIVATE KEY----- jusqu'à -----END DSA PRIVATE KEY----- )\n"
cat /etc/nxserver/client.id_dsa.key
echo -e "\n"
pour ceux qui on du mal voici le fichier textehttp://files.famillewallon.com/public/scripts/tse.txt
[EDIT] Il faut aussi rajouter dans pam.d/sshd un pam_mkhomedir
sed -i "/session include password-auth/i\session optional pam_mkhomedir.so skel=/etc/skel umask=0022" /etc/pam.d/sshd [/EDIT]