From e8f1050246012f125d3f4e6db3c675ea15b04df0 Mon Sep 17 00:00:00 2001 From: Mario Fetka Date: Fri, 22 May 2026 10:15:16 +0200 Subject: [PATCH] add smart_userlist --- README.md | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 26d87d9..a10741a 100644 --- a/README.md +++ b/README.md @@ -255,6 +255,11 @@ Typical meanings: - `check_login` – PAM authentication and administrator-group helper - optional host discovery helpers, depending on build options +### Native helper tools + +- `check_login` – validates PAM credentials and verifies membership in the configured SMArT administrator group +- `smart_userlist` – lists local Unix users for the optional bindery-to-Unix user mapping selector + ### Perl helpers - `smart` @@ -270,6 +275,7 @@ Typical meanings: - static HTML/image assets for the WebUI - optional `mars-nwe-webui.service` systemd unit - PAM file installed as `/etc/pam.d/smart` +- local Unix user-list helper used by the user editor ## Typical runtime paths @@ -278,7 +284,7 @@ The templates use CMake placeholders. In a typical Linux installation, the effec - Main MARS_NWE config directory: `/etc/mars_nwe` - SMArT config file: `/etc/mars_nwe/smart.conf` - Main MARS_NWE server config: `/etc/mars_nwe/nwserv.conf` -- Helper binaries and scripts: `/usr/libexec/mars_nwe` +- Helper binaries and scripts, including `smart`, `check_login`, `smart_userlist` and Perl helpers: `/usr/libexec/mars_nwe` - Static SMArT assets: `/usr/libexec/mars_nwe/static` - Log directory: `/var/log/mars_nwe` - Runtime/session directory: `/run/mars-nwe-webui` @@ -343,6 +349,7 @@ The current WebUI includes several usability and safety improvements: - service-control pages for start, stop, restart and status actions - runtime information on the start page, including generated paths and service name - import helpers for CUPS printers, IPX interfaces, Unix users and local mountpoints +- `smart_userlist` helper for reliable Unix-user enumeration without parsing page output - input validation pages for volumes, devices, print queues, users and groups - stricter bindery object-name validation - optional Unix user mapping for bindery users @@ -360,6 +367,7 @@ This repository is built as part of the main `mars_nwe` build. The build system: - generates the main `smart` Perl launcher script - builds `nwwebui` - builds `check_login` +- builds `smart_userlist` - installs the PAM file and static UI assets - installs helper scripts and optional systemd units @@ -423,6 +431,26 @@ Typical access URLs: For production use, HTTPS should be preferred. +## Unix user discovery helper + +The WebUI user editor can assign a MARS_NWE bindery user to a local Unix user. +For this selector, SMArT uses the native `smart_userlist` helper. + +`smart_userlist` enumerates local users through the system user database instead +of relying on fragile parsing in the web page itself. This keeps the optional +Unix-user mapping UI usable even when the available users come from NSS-backed +sources such as local files, LDAP, SSSD or similar site-specific setups. + +The helper is installed together with the other SMArT native tools and is +normally referenced from `smart.conf` as: + +```perl +$smart_userlist_path = '/usr/libexec/mars_nwe/smart_userlist'; +``` + +If the path is not set explicitly, SMArT falls back to the standard libexec +location generated by the build system. + ## Summary SMArT is now an integrated part of the `mars_nwe` release. It includes a dedicated `nwwebui` service, form-based sessions, PAM authentication with configurable administrator group restriction, service control, validation pages, import helpers, improved bindery command handling, and configurable logging.