Skip to content

Keyboard‑driven terminal app to view and manage users and groups. Browse accounts, see memberships, search, and make common changes: rename users, update names or shells, adjust group membership. Safe to explore without admin rights; asks for permission to apply changes. Linux‑focused. Written in Rust.

License

Notifications You must be signed in to change notification settings

Firstp1ck/UsrGrp-Manager-TUI

UsrGrp-Manager-TUI (Users/Groups Manager TUI)

Details <style> /* Simple, readable styles for GitHub rendering */ body { background-color: #0f172a; font-family: 'JetBrains Mono', monospace; color: #e2e8f0; } h1, h2, h3, h4, h5, h6 { color: #93c5fd; } a { color: #60a5fa; text-decoration: underline; } </style>

Welcome Sysadmins and TUI Users!

Welcome to UsrGrp-Manager-TUI

A keyboard-driven TUI to browse and manage users and groups on Linux.

❗ Read-only exploration is safe. Write operations require privileges and ask for confirmation.

Quick Links

What is it?

Keyboard-driven terminal app to view and manage users and groups on Linux. Browse accounts, see memberships, search, and make common changes: rename users, update names or shells, adjust group membership. Safe to explore without admin rights; asks for permission to apply changes.

Status: Alpha. Read-only browsing is safe; write operations require privileges and are still limited.

Screenshot

TUI screenshot

Demo

TUI GIF

Installation

Quick Install (Arch Linux)

Using yay:

yay -S usrgrp-manager-git      # Latest from main branch
# or
yay -S usrgrp-manager-bin      # Prebuilt binary

Using paru:

paru -S usrgrp-manager-git
# or
paru -S usrgrp-manager-bin

Build from Source

cargo build --release
./target/release/usrgrp-manager

For other installation methods, see Install Documentation.

Running

usrgrp-manager              # Browse read-only
sudo usrgrp-manager         # Required for write operations

Features

Users

  • View users from /etc/passwd
  • Create/delete users
  • Modify username, full name, shell
  • Manage group membership
  • Set/change/reset passwords
  • View user details: UID, GID, home, shell, password status, sudo membership, SSH keys, processes

Actions menu

Modify user

Modify details

Remove user from groups

Groups

  • View groups from /etc/group
  • Create/delete groups
  • Manage members
  • View group details: GID, classification, membership count, privilege level

Modify groups

General

  • Fast search/filter (case-insensitive substring matching)

Filter users

  • Safe paging and navigation
  • Keyboard-driven (no mouse required)
  • Confirmation prompts for destructive actions

Prerequisites

  • Rust toolchain (stable) + Cargo
  • Linux system with standard user/group tools: usermod, useradd, userdel, groupadd, groupdel, gpasswd, chpasswd, chage

Project Structure

src/
  main.rs                    # Entry point
  app/
    mod.rs                   # AppState, core types
    update.rs                # Event handling, business logic
  ui/
    mod.rs                   # Main render function, layout
    users.rs                 # Users tab (table + details + modals)
    groups.rs                # Groups tab (table + details + modals)
    components.rs            # Shared UI helpers (status bar, etc.)
  sys/
    mod.rs                   # Current SystemAdapter
  search.rs                  # Search functionality

Configuration

# Logging level
USRGRP_MANAGER_LOG=info    # or debug, trace

# Sudo group name (for sudo membership checks)
export UGM_SUDO_GROUP=sudo   # defaults to 'wheel' if unset

Tests

cargo test    # Run all tests

What's covered:

  • Unit tests for parsers in src/sys/mod.rs
  • Unit tests for filtering in src/search.rs

Potential Future implementations:

  • Change Permissions easly

Contributing & Support

  • Open issues or pull requests on GitHub
  • See CONTRIBUTING.md for guidelines
  • Feedback and suggestions welcome!

License

See LICENSE for details.

About

Keyboard‑driven terminal app to view and manage users and groups. Browse accounts, see memberships, search, and make common changes: rename users, update names or shells, adjust group membership. Safe to explore without admin rights; asks for permission to apply changes. Linux‑focused. Written in Rust.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Languages