#1 Le 23/07/2010, à 18:34
- davlefou
help, Un petit script pour ajouter des comptes mails!!
Lu,
voici un petit script pour ajouter des comptes mais je n'arrive pas à faire correctement fonctionner adduser, il crée le groupe mais pas le compte!!!
$nom = $1
$prenom = $2
$login = $1.$2
$mdp = $3
adduser --force-badname --quiet --group $login
usermod -aG users login
chpasswd $login:$mdp
su login
cd
maildirmake Maildir
maildirmake -f Sent Maildir
maildirmake -f Queue Maildir
maildirmake -f junkmail Maildir
maildirmake -f virus Maildir
maildirmake -f Drafts Maildir
maildirmake -f Trash Maildir
exit
echo $login:$login@x.com >> /etc/aliases
newaliases
Pourriez vous m'aider?
Dernière modification par davlefou (Le 25/07/2010, à 17:27)
La croisade a commencé.
Hors ligne
#2 Le 23/07/2010, à 19:44
- conantin
Re : help, Un petit script pour ajouter des comptes mails!!
Salut,
le problème vient de l'option --group, elle prend en compte l'argument $login pour créer un groupe de ce nom, mais du coup, il manque le nom de ton utilisateur, il faudrait tenter quelque chose comme :
adduser --force-badname --quiet --group $login $login
Mais il me semble que par défaut, il va créer un groupe au nom de l'utilisateur donc pour faire plus simple, à tester :
adduser --force-badname --quiet $login
Hors ligne
#3 Le 23/07/2010, à 20:36
- davlefou
Re : help, Un petit script pour ajouter des comptes mails!!
voici un version peu corrigé, mais reste toujours le probléme de adduser.
J'utilise cet commande car elle affecte le même group au deux avec le même id.
Je vais peut être changer et mettre tout le monde dans un groupe mail. Cela réglerais le probléme, mais j'aimerais comprendre comment utiliser adduser.
nom=$1
prenom=$2
login=$1.$2
mdp=$3
adduser --force-badname --quiet --group $login $login
usermod -aG users login
chpasswd $login:$mdp
su login
cd
maildirmake Maildir
maildirmake -f Sent Maildir
maildirmake -f Queue Maildir
maildirmake -f junkmail Maildir
maildirmake -f virus Maildir
maildirmake -f Drafts Maildir
maildirmake -f Trash Maildir
exit
echo $login:$login@x.com >> /etc/aliases
newaliases
Dernière modification par davlefou (Le 25/07/2010, à 17:27)
La croisade a commencé.
Hors ligne
#4 Le 23/07/2010, à 21:05
- conantin
Re : help, Un petit script pour ajouter des comptes mails!!
Je t'ai envoyé n'importe quoi, désolé...
En fait, j'utilise d'habitude la commande useradd et pas adduser.
Un simple
useradd -m $login
permet de créer l'utilisateur, son groupe et son répertoire /home/$login. Sans le -m, la commande ne créé que l'utilisateur et le groupe.
Hors ligne
#5 Le 24/07/2010, à 12:38
- davlefou
Re : help, Un petit script pour ajouter des comptes mails!!
Effectivement, l'une est un script englobant l'autre. Je vais me rabattre sur useradd et changer ma stratégie.
La croisade a commencé.
Hors ligne
#6 Le 24/07/2010, à 13:58
- davlefou
Re : help, Un petit script pour ajouter des comptes mails!!
J'ai changer de commande et j'ai un peu péréniser mon scritp. Je rajouterais des testes de contrôle quand il sera prés.
om=$2
prenom=$1
login=$prenom.$nom
mdp=$3
commentaire="$prenom $nom"
#adduser --force-badname --quiet --group $login $login
#usermod -aG users login
#chpasswd $login:$mdp
erreur=useradd -p mpd -g mail -G users -c $commentaire -m -k $login
if test erreur != 0 ; then
echo "$erreur"
exit 1
fi
su $login
cd
maildirmake Maildir
maildirmake -f Sent Maildir
maildirmake -f Queue Maildir
maildirmake -f junkmail Maildir
maildirmake -f virus Maildir
maildirmake -f Drafts Maildir
maildirmake -f Trash Maildir
exit
echo $login:$login@x.com >> /etc/aliases
newaliases
exit 0
Dernière modification par davlefou (Le 25/07/2010, à 17:27)
La croisade a commencé.
Hors ligne
#7 Le 25/07/2010, à 17:26
- davlefou
Re : help, Un petit script pour ajouter des comptes mails!!
Voici un code d'ajoute d'utilisateur avec compte mail pour postfix. Mais il reste un bug au niveau du teste de adduser.
#!/bin/bash
function SynxtaxeErreur()
{
echo -e "\n $1 \n"
echo -e "\tsyntaxe : \n"
echo -e "\tajouterCompteMail -p <prénon -n <nom>-m <mpd> - <group> -c <commemtaire>\n"
echo -e "\t\t-p : prenon"
echo -e "\t\t-n : nom"
echo -e "\t\t-m : mot de passe de l'utisateur"
echo -e "\t\t-g : liste de groupe suplementaire separé par ne virgule"
echo -e "\t\t-c : commentaire ou information sur l'utilisateur cree"
echo -e "\n Seul les trois premiers sont necessaire\n"
}
group="users"
shell="/bin/bash"
while test "$1" ; do
case "$1" in
-p) shift
prenom=$1;;
-n) shift
nom=$1;;
-m) shift
mdp=$1;;
-g) shift
group="$group,"$1;;
-c) shift
commentaire=" "$1;;
-s) shift
shell="$1";;
*) SynxtaxeErreur "parametre incoherent ou manque d'information vital"
exit 2;;
esac
shift
done
login=$prenom.$nom
commentaire="$prenom $nom$commentaire"
if test -z $nom ; then
SynxtaxeErreur "manque d'information vital: nom"
exit 2
fi
if test -z $prenom ; then
SynxtaxeErreur "manque d'information vital: prenom"
exit 2
fi
if test -z $mdp ; then
SynxtaxeErreur "manque d'information vital: mot de passe"
exit 2
fi
mdpCrypt=$(mkpasswd $mdp)
erreur=`useradd -g mail -G $group -c "$commentaire" -s $shell -p $mdpCrypt -m $login`
if test erreur!="0" ; then
SynxtaxeErreur "Erreur sur useradd :"$erreur
fi
echo "$login:$login@x.com" >> /etc/aliases
newaliases
echo "nouvelle utilisateur : "$login
exit 0
La croisade a commencé.
Hors ligne