Python implementation of Microsoft's Active Directory Users and Computers (ADUC) for Linux desktops. Manage Microsoft and Samba AD from Linux!
- About
- Features
- Requirements
- Installation
- Running Manually
- Configuration
- Roadmap
- Donate
- Contributing
- Disclaimer
Migrating away from Windows while still managing Microsoft environments can be painful. This project aims to provide a lightweight ADUC-style GUI that works natively on Linux and covers practical day-to-day LDAP/AD object browsing and administration needs.
It is intentionally small and focused: one Python app, one installer script, and minimal runtime dependencies. Additional features will continue to be added. If there is something you would like to see added, please open an Issue and request it!
NOTE: Also works against Samba Active Directory domain controllers!
- Browse Active Directory hierarchy (domains, containers, OUs).
- Work with common object types:
- Users
- Groups
- Computers
- Organizational Units
- Create users, groups, computers, and organizational units from Action/context menus.
- Basic ADUC-like iconography and object-state overlays.
- Support Kerberos authentication.
- Savable connection profiles with secure password storage in system keyring.
- Simple
.debpackage installation. - Desktop launcher installation for ease of of opening from Application Launcher.
- Startup version check against GitHub with update prompt when a newer release is available.
- Linux desktop environment with GUI support.
- Currently only packaging
.debfor Debian/Ubuntu flavors.
- Currently only packaging
- Python 3 (with
venvsupport). - One of:
wgetorcurl
- Network access from your Linux machine to your Active Directory domain controllers.
Python dependencies are listed in requirements.txt and installed into a virtual environment by the installer.
Download the latest .deb from GitHub Releases, then install it:
sudo apt install ./aduc-for-linux_<version>_all.debUsing apt install ./package.deb is recommended, because it automatically resolves required system dependencies.
If you use dpkg -i directly and see dependency errors, run:
sudo apt -f installAfter install, launch from your Application Launcher menu, or run:
aduc-for-linuxIf ADUC for Linux was already installed when the operating system was upgraded
and startup reports that PySide6 (or another Python module) is missing,
reinstall the latest .deb. The package recreates its virtual environment for
the new system Python while preserving your settings in
~/.config/aduc-linux/settings.json:
sudo apt install --reinstall ./aduc-for-linux_<version>_all.debbash <(wget -qO- https://raw.githubusercontent.com/MakoWish/aduc_for_linux/main/install.sh)If running as root, you will be prompted to install for all users or just for yourself. If not running as root, installation is user-local.
The installer will:
- Download required app files.
- Create a virtual environment.
- Install Python dependencies.
- Create a
.desktoplauncher entry. - Install a local
VERSIONfile used by the app startup update check.
If you would like to build this project directly from source, download the latest archive:
... and compile:
make check
make build-debThe compiled .deb package will be placed in ./dist/aduc-for-linux_<version>_all.deb.
python3 aduc_for_linux.pyFor normal use, prefer running through the installed virtual environment (launcher does this automatically).
On initial launch, you will need to first connect to a domain controller via File > Connect. If you are working from a domain-joined machine, you may optionally enable Kerberos / SSO for the connection's authentication mechanism. Otherwise, select Credentials to authenticate using explicity login credentials.
Multiple profiles may be created for different account/connection, as well as optionally store credentials securely to your system's keyring. When using stored credentials or Kerberos / SSO authentication, you may optionally choose to auto-connect on application launch. These preferences are stored to your local profile in:
~/.config/aduc-linux/settings.json
Some Samba AD environments enforce LDAP strong-auth requirements that mandate SASL GSSAPI sign/seal. Depending on the ldap3/Kerberos stack available in the app runtime, Kerberos bind may fail in those environments even while it works against Microsoft AD.
If that happens, switch to Credentials authentication mode in ADUC for Linux; simple bind over LDAPS will still work in typical Samba AD setups.
Potential next improvements:
- Expand object management actions and dialogs.
- Add automated tests beyond syntax validation.
- Expand packaging options (AppImage/Flatpak/RPM).
Like this project?
Want to contribute to this project? Please feel free to open an Issue with your suggestions, and we can collaborate on PR's.
This is an independent project and is not an official Microsoft product. Although all efforts are made to ensure this project works without issue, use at your own risk.
