summaryrefslogtreecommitdiffstats
path: root/source/script/creategroup
blob: 01fb06594441e6553c00496008442780e0001f28 (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
26
27
#!/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