View | Details | Raw Unified | Return to bug 54311
Collapse All | Expand All

(-)a/base/univention-ssl/univention-certificate (-4 / +16 lines)
 Lines 63-69   die () { Link Here 
63
	exit 1
63
	exit 1
64
}
64
}
65
run_only () {
65
run_only () {
66
	local role="$1" mode="$2"
66
	local role="$1" mode="${2:-unlock}"
67
	case "$role/$(ucr get server/role)" in
67
	case "$role/$(ucr get server/role)" in
68
	master/domaincontroller_master) ;;
68
	master/domaincontroller_master) ;;
69
	backup/domaincontroller_master) ;;
69
	backup/domaincontroller_master) ;;
 Lines 76-84   run_only () { Link Here 
76
	esac
76
	esac
77
	[ 0 -eq "$(id -u)" ] ||
77
	[ 0 -eq "$(id -u)" ] ||
78
		die "Only user 'root' can use this"
78
		die "Only user 'root' can use this"
79
	exec 3<"$SSLBASE"
79
	[ 0 -eq ${#FD} ] &&
80
	flock -n --"$mode" 3 ||
80
		exec {FD}<${SSLBASE}
81
		die "Failed to get $mode lock"
81
	for i in {1..99}; do jitter ${i} flock -n --${mode} ${FD} && return || continue; done
82
	flock -n --${mode} ${FD} ||
83
		die "Failed to get ${mode} lock"
82
}
84
}
83
85
84
command=
86
command=
 Lines 109-114   done Link Here 
109
111
110
. "${MAKE_CERTIFICATES_SH_INCLUDE:=/usr/share/univention-ssl/make-certificates.sh}"
112
. "${MAKE_CERTIFICATES_SH_INCLUDE:=/usr/share/univention-ssl/make-certificates.sh}"
111
113
114
exec {FD}<${SSLBASE}
115
112
case "$command" in
116
case "$command" in
113
new|renew) : "${name:?Missing argument '-name'}" ;;
117
new|renew) : "${name:?Missing argument '-name'}" ;;
114
revoke|check|dump)  : "${name:="$(get_cert_name_from_id "$id")"}"
118
revoke|check|dump)  : "${name:="$(get_cert_name_from_id "$id")"}"
 Lines 129-134   new () { Link Here 
129
			chgrp -R "DC Backup Hosts" "$SSLBASE/$name"
133
			chgrp -R "DC Backup Hosts" "$SSLBASE/$name"
130
			chmod -R g+rX "$SSLBASE/$name"
134
			chmod -R g+rX "$SSLBASE/$name"
131
		fi
135
		fi
136
		run_only master
132
}
137
}
133
138
134
revoke () {
139
revoke () {
 Lines 139-144   revoke () { Link Here 
139
		else
144
		else
140
			revoke_cert "$name"
145
			revoke_cert "$name"
141
		fi
146
		fi
147
		run_only master
142
}
148
}
143
149
144
renew () {
150
renew () {
 Lines 151-156   renew () { Link Here 
151
			chgrp -R "DC Backup Hosts" "$SSLBASE/$name"
157
			chgrp -R "DC Backup Hosts" "$SSLBASE/$name"
152
			chmod -R g+rX "$SSLBASE/$name"
158
			chmod -R g+rX "$SSLBASE/$name"
153
		fi
159
		fi
160
		run_only master
154
}
161
}
155
162
156
check () {
163
check () {
 Lines 170-175   check () { Link Here 
170
			*) echo "invalid" ;;
177
			*) echo "invalid" ;;
171
			esac
178
			esac
172
		done <<< "$id"
179
		done <<< "$id"
180
		run_only backup
173
		exit "$exitcode"
181
		exit "$exitcode"
174
}
182
}
175
183
 Lines 177-194   list () { Link Here 
177
		run_only backup shared
185
		run_only backup shared
178
		echo "List all certificates"
186
		echo "List all certificates"
179
		list_cert_names
187
		list_cert_names
188
		run_only backup
180
}
189
}
181
190
182
list_all () {
191
list_all () {
183
		run_only backup shared
192
		run_only backup shared
184
		echo "List all certificates (including revoked and expired certificates)"
193
		echo "List all certificates (including revoked and expired certificates)"
185
		list_cert_names_all
194
		list_cert_names_all
195
		run_only backup
186
}
196
}
187
197
188
update_expired () {
198
update_expired () {
189
		run_only master exclusive
199
		run_only master exclusive
190
		echo "Updating db for expired certificates"
200
		echo "Updating db for expired certificates"
191
		update_db
201
		update_db
202
		run_only master
192
}
203
}
193
204
194
dump () {
205
dump () {
 Lines 214-219   sign () { Link Here 
214
		chgrp -R "DC Backup Hosts" "$SSLBASE/$name"
225
		chgrp -R "DC Backup Hosts" "$SSLBASE/$name"
215
		chmod -R g+rX "$SSLBASE/$name"
226
		chmod -R g+rX "$SSLBASE/$name"
216
	fi
227
	fi
228
	run_only master
217
}
229
}
218
230
219
"$command"
231
"$command"

Return to bug 54311