summaryrefslogtreecommitdiffstats
path: root/source3/script/creategroup
blob: 1e2486744a8576cefd0508627f38a900bc3bc102 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/bin/sh

# Example script for 'add group command'. Handle weird NT group
# names. First attempt to create the group directly, if that fails
# then create a random group and print the numeric group id.
#
# Note that this is only an example and assumes /dev/urandom.
#
# Volker

GROUPNAME="$1"
ITERS=0

while ! /usr/sbin/groupadd "$GROUPNAME" >/dev/null 2>&1; do
	# we had difficulties creating that group. Maybe the name was
	# too weird, or it already existed. Create a random name.
	GROUPNAME=nt-$(dd if=/dev/urandom bs=16 count=1 2>/dev/null | md5sum | cut -b 1-5)
	ITERS=$(expr "$ITERS" + 1)
	if [ "$ITERS" -gt 10 ]; then
		# Too many attempts
		exit 1
	fi
done

getent group | grep ^"$GROUPNAME": | cut -d : -f 3