-
Notifications
You must be signed in to change notification settings - Fork 10
/
addldapuser
executable file
·33 lines (29 loc) · 1.31 KB
/
addldapuser
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
28
29
30
31
32
33
#!/bin/bash
# Add a user to the system, if they don't already exist. This script must be run as root.
# If the user exists in Stanford LDAP, we'll user their Stanford-wide UID. Otherwise,
# they get assigned a local UID that's outside the Stanford UID range.
# Copyright 2012 by Gunnaer Schaefer (gsfr@stanford.edu) and Bob Dougherty (bobd@stanford.edu)
if [ ! $1 ]; then
echo "Usage: $0 SUNetID"
exit 999
fi
if id $1 &> /dev/null ; then
if [ -z "`groups $1 | grep ipython`" ]; then
/usr/sbin/adduser $1 ipython
else
echo "User $1 already exists and is a member of the ipython group."
fi
exit 1
else
ldapinfo=$(ldapsearch -x -h ldap.stanford.edu uid=$1)
uid_num=$(echo "$ldapinfo" | grep uidNumber); uid_num=${uid_num##*: }
firstname=$(echo "$ldapinfo" | grep suDisplayNameFirst); firstname=${firstname##*: }
lastname=$(echo "$ldapinfo" | grep suDisplayNameLast); lastname=${lastname##*: }
if [ -z $uid_num ]; then
echo "User $1 does not exist in LDAP. Assigning a local UID."
uid_num=$((`(echo 69999; cut -d':' -f3 /etc/passwd) | sort -n | tail -1` + 1))
fi
echo "Creating user $1 ($firstname $lastname, uid = $uid_num)..."
/usr/sbin/adduser --disabled-password --uid $uid_num --gecos "$firstname $lastname" $1
/usr/sbin/adduser $1 ipython
fi