Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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