Managing Active Directory from Linux with adtool
Details
To explain the process in greater detail, I'll take a closer look at the steps described in the preceding section. First, to create a digital certificate (with OpenSSL in this case), you can start by creating a certificate signing request:
$ openssl req -days 3650 -nodes -new \ -keyout /usr/local/etc/ openldap/private/myldapserver.key \ -out /usr/local/etc/openldap/private/myldapserver.csr
The preceding line tells OpenSSL to create a certificate request for my server, which, for the purposes of this example, is called myldapserver
.
You will be asked certain questions. Be careful that you provide the correct server name when asked for the CN (Canonical Name) entry. If you provide the wrong name, your domain controller or your LDAP server will reject all SSL-based connections. You will then need to re-create the certificate.
Next, you need to need to sign the request:
openssl x509 -req -days 3650 \ -in /usr/local/etc/openldap/private/myldapserver.csr \ -out /usr/local/etc/openldap/myldapserver.crt \ -CA /usr/local/etc/openldap/ca.crt \ -CAkey /usr/local/etc/openldap/private/ca.key \ -CAcreateserial
You now have a working certificate. You then need to copy it to the appropriate directory, so that your LDAP server can use it. For example, on my system, I would copy it to the /usr/local/etc/openldap
directory as follows:
/usr/local/etc/openldap/myldapserver.crt /usr/local/etc/openldap/private/myldapserver.key /usr/local/etc/openldap/ca.crt
Then, you can edit the /etc/ldap/ldap.conf
file so it contains the appropriate values. If, for example, I had a server named myldapserver
for stanger.com, I would edit the file accordingly (see Listing 1).
Listing 1
Adding an LDAP Server
The last three lines in Listing 1 helped make sure that my Linux LDAP implementation used SSL when communicating with the domain controller. You might need to change the directory names, depending upon your Linux implementation. Once you have made these changes, you can restart your LDAP server.
Once LDAP is using SSL, you need to edit the adtool configuration file, which is usually at the following location: /etc/adtool.cfg
. If you wish, you can also create a local file, such as ~/.adtool.cfg
. Some admins think that creating these values in a user-level file is more convenient. It can also be more secure, because now connection-specific details are found in a user's directory, rather than in the system-wide /etc/adtool.cfg
file. It's your choice. For my example, I'm going to use the /etc/adtool.cfg
file.
To set the file so that it uses my SSL-enabled LDAP server (myldapserver
), my domain name (stanger.com), and my password (linuxpromagazinerules
), I would edit the file accordingly:
uri ldaps://myldapserver.stanger.com binddn cn=Administrator,cn=Users,dc=domain,dc=tld bindpw $ linuxpromagazinerules searchbase dc=domain,dc=tld
Once I have made these changes, I can connect to a Microsoft Active Directory domain controller over an SSL-encrypted connection, and all the adtool features will be available.
Using adtool for Common Tasks
Now that I've got a fully-functional implementation of adtool, it is time to explore some of the typical adtool features for managing an Active Directory environment.
To list users in an organizational unit, issue the following command:
$ adtool list ou=user,dc=stanger,dc=com CN=allusers,OU=user,DC=stanger,DC=com OU=research,OU=user,DC=stanger,DC=com OU=accounting,OU=user,DC=stanger,DC=com
The result will be that you will see all users that you have specified in the request.
To create a new user, you can issue the following command:
$ adtool useradd jstanger ou=research,ou=user,dc=stanger,dc=com
You will, of course, need to set a password for this user. To set a password, issue the following command:
$ adtool setpass jstanger linuxpromagazinerules
Many times, a domain controller will be set to lock a new user's account by default. You will therefore need to unlock this user's account. To unlock an account, the command is fairly simple:
$ adtool unlock jstanger
You might also need to unlock existing user accounts, either because the user has exceeded the number of logins, or because the user's login account has become disabled because of time limits.
Suppose this new user needs to be placed into a new group named phpdevelopers
. First, you would create a group named phpdevelopers
by issuing the following command:
$ adtool groupcreate phpdevelopers ou=user,cd=stangernet,dc=com
To add the user named jstanger
to this new group (phpdevelopers
), issue the following command:
$ adtool groupadd phpdevelopers jstanger
Now you know how to list groups, as well as how to create a user and add a group.
Additional Tasks
Many times, you will need to create a new organizational unit. To create an OU named socialmediaexperts
, you can do:
$ adtool oucreate socialmediaexperts ou=user,dc=myldapserver.stangernet.com,dc=com
To add a user to all groups:
$ adtool groupadd allusers jstanger
To add details about a user:
$ adtool attributereplace jstanger telephonenumber 4138 $ adtool attributereplace jstanger mail jstanger@stangernet.com
If you wish to add an email address for this user, issue the following command:
$ adtool attributereplace jstanger mail jstanger@stangernet.com
To lock a user's account, issue the following command:
$ adtool userlock jstanger
You can delete a user as follows:
$ adtool userdelete jstanger
« Previous 1 2 3 Next »
Buy this article as PDF
(incl. VAT)
Buy Linux Magazine
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Support Our Work
Linux Magazine content is made possible with support from readers like you. Please consider contributing when you've found an article to be beneficial.
News
-
Fedora 39 Beta is Now Available for Testing
For fans and users of Fedora Linux, the first beta of release 39 is now available, which is a minor upgrade but does include GNOME 45.
-
Fedora Linux 40 to Drop X11 for KDE Plasma
When Fedora 40 arrives in 2024, there will be a few big changes coming, especially for the KDE Plasma option.
-
Real-Time Ubuntu Available in AWS Marketplace
Anyone looking for a Linux distribution for real-time processing could do a whole lot worse than Real-Time Ubuntu.
-
KSMBD Finally Reaches a Stable State
For those who've been looking forward to the first release of KSMBD, after two years it's no longer considered experimental.
-
Nitrux 3.0.0 Has Been Released
The latest version of Nitrux brings plenty of innovation and fresh apps to the table.
-
Linux From Scratch 12.0 Now Available
If you're looking to roll your own Linux distribution, the latest version of Linux From Scratch is now available with plenty of updates.
-
Linux Kernel 6.5 Has Been Released
The newest Linux kernel, version 6.5, now includes initial support for two very exciting features.
-
UbuntuDDE 23.04 Now Available
A new version of the UbuntuDDE remix has finally arrived with all the updates from the Deepin desktop and everything that comes with the Ubuntu 23.04 base.
-
Star Labs Reveals a New Surface-Like Linux Tablet
If you've ever wanted a tablet that rivals the MS Surface, you're in luck as Star Labs has created such a device.
-
SUSE Going Private (Again)
The company behind SUSE Linux Enterprise, Rancher, and NeuVector recently announced that Marcel LUX III SARL (Marcel), its majority shareholder, intends to delist it from the Frankfurt Stock Exchange by way of a merger.