From 4b84598b5061c58d33a7d11804e1f158781007b3 Mon Sep 17 00:00:00 2001 From: milisman Date: Tue, 14 Jun 2016 13:08:00 +0000 Subject: [PATCH] nu.eklendi --- bin/nu | 140 ++++++++++++++++++++++++++++ talimatname/genel/lxdm/lxdm.kur-kos | 6 +- talimatname/genel/lxdm/lxdm.okubeni | 9 -- 3 files changed, 143 insertions(+), 12 deletions(-) create mode 100644 bin/nu delete mode 100644 talimatname/genel/lxdm/lxdm.okubeni diff --git a/bin/nu b/bin/nu new file mode 100644 index 000000000..c8cb73955 --- /dev/null +++ b/bin/nu @@ -0,0 +1,140 @@ +#!/bin/bash + + +###################################### +#### Default Vars #################### +###################################### + +user_groups="" +default_groups=(users disk network floppy fuse video lp tty audio cdrom scanner adm vboxusers wheel) + +# Avoid spaces troubles :) +OLD_IFS=$IFS +IFS="| +" +KDM_CONFFILE="/etc/kde/kdmrc" +GDM_CONFFILE="/etc/gdm/custom.conf" +LXDM_CONFFILE="/etc/lxdm/lxdm.conf" + +###################################### +#### Functions ####################### +###################################### + +check_args() +{ + description="$1" + name="$2" + + name_test=`echo -n "$name" | sed 's@^[a-z][a-z0-9]*$@@g'` + if [ "$name_test" != "" ]; then + echo 1>&2 "CRITICAL - Le nom contient des caractères interdits: + Il doit commencer par une lettre uniquement + et ne peut contenir que des minuscules et des chiffres +" + return 1 + fi + if grep "$name" /etc/passwd > /dev/null; then + echo 1>&2 "Le nom $name existe deja!" + return 2 + fi + + desc_test=`echo "$description" | sed 's@^[[:alnum:]! -.,~_@;%<>?]*$@@ig'` + if [ "$desc_test" != "" ]; then + echo 1>&2 "CRITICAL - La description contient des caractères interdits: + Elle ne peut contenir que des lettres/chiffres et les caractères + suivants ! -.,~_\\\@;%<>? +" + return 3 + fi + return 0 +} + +usage() +{ + echo 1>&2 'USAGE: + nu [ ] + Si existe déjà, un message sera envoye sur le terminal, + dans ce cas, aucun changement ne sera fait, et aucun nouveau compte ne + sera créé. + + doit être valide pour le champ du fichier /etc/passwd description + Ce qui veut dire que ce champ ne doit pas contenir de ":". +' + exit 1 +} + +###################################### +#### Scripting time ################## +###################################### + +if [ $# -eq 1 -o $# -gt 2 ]; then + usage +fi + +if [ $UID -ne 0 ]; then + echo 1>&2 "Veuillez exécuter cette commande en root" + exit 1; +fi + +if [ $# -lt 2 ]; then + echo -n "Nom du compte de l'utilisateur: " + read name + echo -n "Nom ou Description de l'utilisateur: " + read description +else + description="$1" + name="$2" +fi + +check_args "$description" "$name" +ret=$? +while [ $ret -ne 0 ]; do + if [ $ret -lt 3 ]; then + echo -n "Nom du compte de l'utilisateur: " + read name + fi + if [ $ret -eq 3 ]; then + echo -n "Nom ou Description de l'utilisateur: " + read description + fi + if [ "$name" == "!stop!" -o "$description" == "!stop!" ]; then + exit 1 + fi + check_args "$description" "$name" + ret=$? +done + +i=0 +while [ -n "${default_groups[i]}" ]; do + if grep "${default_groups[i]}" /etc/group > /dev/null ; then + if [ -z "$user_groups" ]; then + user_groups="${default_groups[i]}" + else + user_groups="$user_groups,${default_groups[i]}" + fi +# echo "groupes : $user_groups" +# else +# echo 1>&2 ' Veuillez installez un gestionnaire de fenetre, +# redemarrer la machine dans ce gestionnaire, +# et relancer cette commande. +#' +# exit 1 + fi + i=$((i+1)) +done + +echo 1>&2 " +Création de $name. +" +if [ -d /home/${name} ]; then + chown -R ${name}:${name} /home/${name} +fi +if [ -z "$user_groups" ]; then + /sbin/useradd -c "${description}" -m "${name}" || exit 1 +else + /sbin/useradd -c "${description}" -G "$user_groups" -m "${name}" || exit 1 +fi + +passwd "$name" + +exit 0 diff --git a/talimatname/genel/lxdm/lxdm.kur-kos b/talimatname/genel/lxdm/lxdm.kur-kos index e93a3c380..78ae6698a 100644 --- a/talimatname/genel/lxdm/lxdm.kur-kos +++ b/talimatname/genel/lxdm/lxdm.kur-kos @@ -1,3 +1,3 @@ -. lib/lsb/init-functions -sed -i "s/^id:[3-5]/id:5/" etc/inittab -log_success_msg2 "Init default set to 5 in the ${WARNING}/etc/inittab ${NORMAL}file" +. /lib/lsb/init-functions +sed -i "s/^id:[3-5]/id:5/" /etc/inittab +echo "Init default set to 5 in the ${WARNING}/etc/inittab ${NORMAL}file" diff --git a/talimatname/genel/lxdm/lxdm.okubeni b/talimatname/genel/lxdm/lxdm.okubeni deleted file mode 100644 index 665d6bfa3..000000000 --- a/talimatname/genel/lxdm/lxdm.okubeni +++ /dev/null @@ -1,9 +0,0 @@ -Pour lancer lxdm de façon automatique, il faut ajouter cette ligne dans le fichier /etc/inittab: - -20:4:respawn:/usr/sbin/lxdm >& /dev/null - -ainsi que changer l'init défaut dans le même fichier: - -id:4:initdefault: - -