Subversion Repositories ALCASAR

Rev

Rev 1056 | Rev 1369 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log

Rev 1056 Rev 1353
Line 1... Line 1...
1
#/bin/bash
1
#/bin/bash
2
# $Id: alcasar-profil.sh 1056 2013-03-26 21:46:36Z stephane $
2
# $Id: alcasar-profil.sh 1353 2014-05-19 16:59:51Z richard $
3
 
3
 
4
# alcasar-profil.sh
4
# alcasar-profil.sh
5
# by Richard REY
5
# by Richard REY
6
# This script is distributed under the Gnu General Public License (GPL)
6
# This script is distributed under the Gnu General Public License (GPL)
7
 
7
 
Line 12... Line 12...
12
PROFILS="backup manager"
12
PROFILS="backup manager"
13
ALL_PROFILS=`echo $ADM_PROFIL $PROFILS`
13
ALL_PROFILS=`echo $ADM_PROFIL $PROFILS`
14
DIR_KEY="/usr/local/etc/digest"
14
DIR_KEY="/usr/local/etc/digest"
15
SED="/bin/sed -i"
15
SED="/bin/sed -i"
16
HOSTNAME=`uname -n`
16
HOSTNAME=`uname -n`
-
 
17
Lang=`echo $LANG|cut -c 1-2`
17
 
18
 
18
# liste les comptes de chaque profile
19
# liste les comptes de chaque profile
19
function list () {
20
function list () {
20
	for i in $ALL_PROFILS
21
	for i in $ALL_PROFILS
21
	do
22
	do
-
 
23
	if [ $Lang == "fr" ]
-
 
24
       	then
22
	echo "Comptes liés au profil '$i' :"
25
		echo "Comptes liés au profil '$i' :"
-
 
26
 
-
 
27
	else
-
 
28
	       	echo "accounts linked with profile '$i' :"
-
 
29
	fi
23
	cat $DIR_KEY/key_only_$i | cut -d':' -f1|sort
30
	cat $DIR_KEY/key_only_$i | cut -d':' -f1|sort
24
	done
31
	done
25
}
32
}
26
# ajoute les comptes du profil "admin" aux autres profils
33
# ajoute les comptes du profil "admin" aux autres profils
27
# crée le fichier de clés contenant tous les compte (pour l'accès au centre de gestion)
34
# crée le fichier de clés contenant tous les compte (pour l'accès au centre de gestion)
Line 68... Line 75...
68
		exit 0
75
		exit 0
69
		;;
76
		;;
70
	--add|-add)	
77
	--add|-add)	
71
		# ajout d'un compte
78
		# ajout d'un compte
72
		list
79
		list
-
 
80
		if [ $Lang == "fr" ]
-
 
81
	       	then
73
		echo -n "Choisissez un profil ($ALL_PROFILS) : "
82
			echo -n "Choisissez un profil ($ALL_PROFILS) : "
-
 
83
		else
-
 
84
			echo -n "Select a profile ($ALL_PROFILS) : "
-
 
85
		fi
74
		read profil
86
		read profil
-
 
87
		if [ $Lang == "fr" ]
-
 
88
		then
75
		echo -n "Entrez le nom du compte à créer (profil '$profil') : "
89
			echo -n "Entrez le nom du compte à créer (profil '$profil') : "
-
 
90
		else
-
 
91
		       	echo "Enter the name of the account to create (profile '$profil') : "
-
 
92
		fi
76
		read account
93
		read account
77
		# on teste s'il n'existe pas déjà
94
		# on teste s'il n'existe pas déjà
78
		for i in $ALL_PROFILS
95
		for i in $ALL_PROFILS
79
		do
96
		do
80
			tmp_account=`cat $DIR_KEY/key_only_$i | cut -d':' -f1`
97
			tmp_account=`cat $DIR_KEY/key_only_$i | cut -d':' -f1`
81
			for j in $tmp_account
98
			for j in $tmp_account
82
				do
99
				do
83
				if [ "$j" = "$account" ]
100
				if [ "$j" = "$account" ]
-
 
101
					then if [ $Lang == "fr" ]
-
 
102
						then
84
					then echo "Ce compte existe déjà"
103
							echo "Ce compte existe déjà"
-
 
104
						else
-
 
105
							echo "This account already exists"
-
 
106
						fi
85
					exit 0
107
					exit 0
86
				fi
108
				fi
87
				done
109
				done
88
		done
110
		done
89
		/usr/sbin/htdigest $DIR_KEY/key_only_$profil $HOSTNAME $account
111
		/usr/bin/htdigest $DIR_KEY/key_only_$profil $HOSTNAME $account
90
		concat
112
		concat
91
		list
113
		list
92
		;;
114
		;;
93
	--del|-del)
115
	--del|-del)
94
		# suppression d'un compte
116
		# suppression d'un compte
95
		list
117
		list
-
 
118
		if [ $Lang == "fr" ]
-
 
119
		then
96
		echo -n "entrez le nom du compte à supprimer : "
120
			echo -n "entrez le nom du compte à supprimer : "
-
 
121
		else
-
 
122
			echo -n "enter the name of the account to remove : "
-
 
123
		fi
97
		read account
124
		read account
98
		for i in $ALL_PROFILS
125
		for i in $ALL_PROFILS
99
			do
126
			do
100
			$SED "/^$account:/d" $DIR_KEY/key_only_$i
127
			$SED "/^$account:/d" $DIR_KEY/key_only_$i
101
			done
128
			done
Line 103... Line 130...
103
		list
130
		list
104
		;;
131
		;;
105
	--pass|-pass)
132
	--pass|-pass)
106
		# changement du mot de passe d'un compte
133
		# changement du mot de passe d'un compte
107
		list
134
		list
-
 
135
		if [ $Lang == "fr" ]
-
 
136
		then
108
		echo "Changement de mot de passe"
137
			echo "Changement de mot de passe"
109
		echo -n "Entrez le nom du compte : "
138
			echo -n "Entrez le nom du compte : "
-
 
139
		else
-
 
140
			echo "Password change"
-
 
141
			echo -n "Enter the name of the account : "
-
 
142
		fi
110
		read account
143
		read account
111
		for i in $ALL_PROFILS
144
		for i in $ALL_PROFILS
112
		do
145
		do
113
			tmp_account=`cat $DIR_KEY/key_only_$i | cut -d':' -f1`
146
			tmp_account=`cat $DIR_KEY/key_only_$i | cut -d':' -f1`
114
			for j in $tmp_account
147
			for j in $tmp_account
115
				do
148
				do
116
				if [ "$j" = "$account" ]
149
				if [ "$j" = "$account" ]
117
					then
150
					then
118
					/usr/sbin/htdigest $DIR_KEY/key_only_$i $HOSTNAME $account
151
					/usr/bin/htdigest $DIR_KEY/key_only_$i $HOSTNAME $account
119
				fi
152
				fi
120
				done
153
				done
121
		done
154
		done
122
		concat
155
		concat
123
		;;
156
		;;
124
	--list|-list)
157
	--list|-list)
125
		# liste des comptes par profile
158
		# liste des comptes par profile
126
		list
159
		list
127
		;;
160
		;;
128
	*)
161
	*)
-
 
162
		if [ $Lang == "fr" ]
-
 
163
		then
129
		echo "Argument inconnu :$1";
164
			echo "Argument inconnu :$1";
-
 
165
		else
-
 
166
			echo "Unknown argument : $i";
-
 
167
		fi
130
		echo "$usage"
168
		echo "$usage"
131
		exit 1
169
		exit 1
132
		;;
170
		;;
133
esac
171
esac