add smart_userlist

This commit is contained in:
Mario Fetka
2026-05-22 10:15:16 +02:00
parent a8560e6de5
commit e8f1050246

View File

@@ -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.