Distro compatibility (laptop fleets)
Lindir targets remote administration of laptops and similar hosts. Ubuntu LTS and CachyOS are first-class for server and client. Debian, Fedora / RHEL-like, and openSUSE / SLES are first-class for the client.
Support matrix
| Component | Ubuntu / Debian | CachyOS (Arch) | Fedora / RHEL-like | openSUSE / SLES |
|---|---|---|---|---|
lindir-server |
.deb / install script |
PKGBUILD / pacman |
.rpm |
.rpm (openSUSE) |
lindir-client |
.deb + sync timer |
PKGBUILD + sync timer |
.rpm + sync timer |
.rpm + sync timer |
Config /etc/lindir/ |
Yes | Yes | Yes | Yes |
NSS (libnss-extrausers) |
apt (required) | AUR required (paru/yay) |
distro package when available | distro package when available |
| Default login shell (sync) | Directory value (usually /bin/bash) |
/usr/bin/fish when installed |
Directory value | Directory value |
| systemd / PAM / SSH | Client | Same | Same | Same |
| VPN plugins | Optional (--skip-vpn OK) |
Same | Same | Same |
| Fleet packages | apt-get | pacman | dnf | zypper |
| Energy (logind/DPMS/dconf) | Yes | Yes | Yes | Yes |
osFamily |
debian |
arch |
rhel |
suse |
Pacman-based hosts (CachyOS, Arch, derivatives): official repos do not ship libnss-extrausers. Installing the client for password/SSH login requires the AUR package first: paru -S libnss-extrausers (or yay -S libnss-extrausers). See Client → Requirements.
Fleet package management
| Distro | Backend |
|---|---|
| Ubuntu / Debian | apt-get (noninteractive) |
| CachyOS / Arch | pacman --noconfirm |
| Fedora / RHEL / Rocky / Alma | dnf (yum shim OK) |
| openSUSE Leap / Tumbleweed / SLES | zypper --non-interactive |
See Fleet. Reboot hints: Ubuntu /run/reboot-required; RHEL
needs-restarting -r; openSUSE zypper needs-rebooting.
Packaging
See Packaging.
- Ubuntu/Debian
.deb:packaging/ubuntu/,client/packaging/ubuntu/ - CachyOS:
packaging/cachyos/,client/packaging/cachyos/ - Fedora/RHEL:
packaging/fedora/,scripts/packaging/build-rpm-*.sh - openSUSE:
client/packaging/opensuse/,scripts/packaging/build-rpm-client-opensuse.sh
Client install (CachyOS / Arch)
Full path from a repo checkout — see also Client → CachyOS:
paru -S libnss-extrausers
sudo ./client/packaging/install.sh # from repo root; builds + installs agent
sudo lindir-client enroll --url https://id.example.com --token "$TOKEN" --skip-vpn
sudo lindir-client sync
getent passwd alice
If the host is already enrolled, use sudo lindir-client configure-login instead of re-enrolling, then sync.
Client enroll (other distros)
# Debian/Ubuntu:
sudo apt install libnss-extrausers
sudo ./client/packaging/install.sh
sudo lindir-client enroll --url https://id.example.com --token "$TOKEN"
sudo lindir-client sync
getent passwd alice
Debian and Ubuntu both report osFamily=debian. MDM aliases debian /
ubuntu match that family.
Integration tests (Podman)
From a lindir checkout (host orchestrates; enroll/sync/pam-auth run between containers):
| Suite | Path | Gates |
|---|---|---|
| Fleet / package managers | scripts/integration/distro/ |
enroll osFamily, apt/dnf/zypper |
| Client authentication | scripts/integration/auth/ |
NSS, PAM, sync, getent, online/offline pam-auth on Debian, Ubuntu, Fedora, openSUSE, Arch (CachyOS stand-in), Rocky |
./scripts/integration/auth/run.sh
