Skip to content

Repository files navigation

ADUC for Linux icon

ADUC for Linux

Python implementation of Microsoft's Active Directory Users and Computers (ADUC) for Linux desktops. Manage Microsoft and Samba AD from Linux!

Index

About

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!

Features (current)

  • 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 .deb package 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.

Requirements

  • Linux desktop environment with GUI support.
    • Currently only packaging .deb for Debian/Ubuntu flavors.
  • Python 3 (with venv support).
  • One of:
    • wget or
    • curl
  • 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.

Installation

Debian package (recommended)

Download the latest .deb from GitHub Releases, then install it:

sudo apt install ./aduc-for-linux_<version>_all.deb

Using 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 install

After install, launch from your Application Launcher menu, or run:

aduc-for-linux

If 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.deb

Quick Install

bash <(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:

  1. Download required app files.
  2. Create a virtual environment.
  3. Install Python dependencies.
  4. Create a .desktop launcher entry.
  5. Install a local VERSION file used by the app startup update check.

Build from Source

If you would like to build this project directly from source, download the latest archive:

... and compile:

make check
make build-deb

The compiled .deb package will be placed in ./dist/aduc-for-linux_<version>_all.deb.

Running Manually (without launcher)

python3 aduc_for_linux.py

For normal use, prefer running through the installed virtual environment (launcher does this automatically).

Configuration

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

Kerberos note for Samba AD

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.

Roadmap Ideas

Potential next improvements:

  • Expand object management actions and dialogs.
  • Add automated tests beyond syntax validation.
  • Expand packaging options (AppImage/Flatpak/RPM).

Donate

Like this project?

Contributing

Want to contribute to this project? Please feel free to open an Issue with your suggestions, and we can collaborate on PR's.

Disclaimer

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.

About

Python implementation of Microsoft's Active Directory Users and Computers (ADUC) for Linux desktops. Manage Microsoft and Samba AD from Linux!

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Contributors

Languages