< Previous | Contents | Next >
1.11. User and Group Management
The ldap-utils package comes with enough utilities to manage the directory but the long string of options needed can make them a burden to use. The ldapscripts package contains wrapper scripts to these utilities that some people find easier to use.
Install the package:
sudo apt install ldapscripts
Then edit the file /etc/ldapscripts/ldapscripts.conf to arrive at something similar to the following:
SERVER=localhost BINDDN='cn=admin,dc=example,dc=com' BINDPWDFILE="/etc/ldapscripts/ldapscripts.passwd" SUFFIX='dc=example,dc=com'
GSUFFIX='ou=Groups' USUFFIX='ou=People' MSUFFIX='ou=Computers' GIDSTART=10000 UIDSTART=10000 MIDSTART=10000
Now, create the ldapscripts.passwd file to allow rootDN access to the directory:
sudo sh -c "echo -n 'secret' > /etc/ldapscripts/ldapscripts.passwd" sudo chmod 400 /etc/ldapscripts/ldapscripts.passwd
Replace “secret” with the actual password for your database's rootDN user.
The scripts are now ready to help manage your directory. Here are some examples of how to use them:
• Create a new user:
sudo ldapadduser george example
This will create a user with uid george and set the user's primary group (gid) to example
• Change a user's password:
sudo ldapsetpasswd george
Changing password for user uid=george,ou=People,dc=example,dc=com
New Password:
New Password (verify):
• Delete a user:
sudo ldapdeleteuser george
• Add a group:
sudo ldapaddgroup qa
• Delete a group:
sudo ldapdeletegroup qa
• Add a user to a group:
sudo ldapaddusertogroup george qa
You should now see a memberUid attribute for the qa group with a value of george.
• Remove a user from a group:
sudo ldapdeleteuserfromgroup george qa
The memberUid attribute should now be removed from the qa group.
• The ldapmodifyuser script allows you to add, remove, or replace a user's attributes. The script uses the same syntax as the ldapmodify utility. For example:
sudo ldapmodifyuser george
# About to modify the following entry : dn: uid=george,ou=People,dc=example,dc=com objectClass: account
objectClass: posixAccount cn: george
uid: george uidNumber: 1001
gidNumber: 1001 homeDirectory: /home/george loginShell: /bin/bash gecos: george
description: User account
userPassword:: e1NTSEF9eXFsTFcyWlhwWkF1eGUybVdFWHZKRzJVMjFTSG9vcHk=
# Enter your modifications here, end with CTRL-D. dn: uid=george,ou=People,dc=example,dc=com replace: gecos
gecos: George Carlin
The user's gecos should now be “George Carlin”.
• A nice feature of ldapscripts is the template system. Templates allow you to customize the attributes of user, group, and machine objects. For example, to enable the user template edit /etc/ldapscripts/ ldapscripts.conf changing:
UTEMPLATE="/etc/ldapscripts/ldapadduser.template"
There are sample templates in the /usr/share/doc/ldapscripts/examples directory. Copy or rename the
ldapadduser.template.sample file to /etc/ldapscripts/ldapadduser.template:
sudo cp /usr/share/doc/ldapscripts/examples/ldapadduser.template.sample \
/etc/ldapscripts/ldapadduser.template
Edit the new template to add the desired attributes. The following will create new users with an objectClass of inetOrgPerson:
dn: uid=<user>,<usuffix>,<suffix> objectClass: inetOrgPerson objectClass: posixAccount
cn: <user> sn: <ask> uid: <user>
uidNumber: <uid> gidNumber: <gid> homeDirectory: <home> loginShell: <shell> gecos: <user> description: User account title: Employee
Notice the <ask> option used for the sn attribute. This will make ldapadduser prompt you for its value.
There are utilities in the package that were not covered here. Here is a complete list:
ldaprenamemachine5 ldapadduser6 ldapdeleteuserfromgroup7 ldapfinger8
ldapid9 ldapgid10 ldapmodifyuser11 ldaprenameuser12 lsldap13
ldapaddusertogroup14 ldapsetpasswd15 ldapinit16 ldapaddgroup17 ldapdeletegroup18
5 http://manpages.ubuntu.com/manpages/en/man1/ldaprenamemachine.1.html
6 http://manpages.ubuntu.com/manpages/en/man1/ldapadduser.1.html
7 http://manpages.ubuntu.com/manpages/en/man1/ldapdeleteuserfromgroup.1.html
8 http://manpages.ubuntu.com/manpages/en/man1/ldapfinger.1.html
9 http://manpages.ubuntu.com/manpages/en/man1/ldapid.1.html
10 http://manpages.ubuntu.com/manpages/en/man1/ldapgid.1.html
11 http://manpages.ubuntu.com/manpages/en/man1/ldapmodifyuser.1.html
12 http://manpages.ubuntu.com/manpages/en/man1/ldaprenameuser.1.html
13 http://manpages.ubuntu.com/manpages/en/man1/lsldap.1.html
14 http://manpages.ubuntu.com/manpages/en/man1/ldapaddusertogroup.1.html
15 http://manpages.ubuntu.com/manpages/en/man1/ldapsetpasswd.1.html
16 http://manpages.ubuntu.com/manpages/en/man1/ldapinit.1.html
17 http://manpages.ubuntu.com/manpages/en/man1/ldapaddgroup.1.html
18 http://manpages.ubuntu.com/manpages/en/man1/ldapdeletegroup.1.html
ldapmodifygroup19 ldapdeletemachine20 ldaprenamegroup21 ldapaddmachine22 ldapmodifymachine23 ldapsetprimarygroup24 ldapdeleteuser25