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
-
Latest Cinnamon Desktop Releases with a Bold New Look
Just in time for the holidays, the developer of the Cinnamon desktop has shipped a new release to help spice up your eggnog with new features and a new look.
-
Armbian 24.11 Released with Expanded Hardware Support
If you've been waiting for Armbian to support OrangePi 5 Max and Radxa ROCK 5B+, the wait is over.
-
SUSE Renames Several Products for Better Name Recognition
SUSE has been a very powerful player in the European market, but it knows it must branch out to gain serious traction. Will a name change do the trick?
-
ESET Discovers New Linux Malware
WolfsBane is an all-in-one malware that has hit the Linux operating system and includes a dropper, a launcher, and a backdoor.
-
New Linux Kernel Patch Allows Forcing a CPU Mitigation
Even when CPU mitigations can consume precious CPU cycles, it might not be a bad idea to allow users to enable them, even if your machine isn't vulnerable.
-
Red Hat Enterprise Linux 9.5 Released
Notify your friends, loved ones, and colleagues that the latest version of RHEL is available with plenty of enhancements.
-
Linux Sees Massive Performance Increase from a Single Line of Code
With one line of code, Intel was able to increase the performance of the Linux kernel by 4,000 percent.
-
Fedora KDE Approved as an Official Spin
If you prefer the Plasma desktop environment and the Fedora distribution, you're in luck because there's now an official spin that is listed on the same level as the Fedora Workstation edition.
-
New Steam Client Ups the Ante for Linux
The latest release from Steam has some pretty cool tricks up its sleeve.
-
Gnome OS Transitioning Toward a General-Purpose Distro
If you're looking for the perfectly vanilla take on the Gnome desktop, Gnome OS might be for you.