THE FOLLOWING DOCUMENTATION WILL NOT WORK ACTUALLY! YOU NEED TO READ THE CODE ACTUALLY, SORRY…

chkusr

chkusr is a set of programs (chkgrp, chkpwd and chkpwr) to verify information about a user and/or group on UNIX based systems.

The idea

I needed some programs to verify some information about users and groups on a Linux/UNIX system just returning 0 on success and 1 on error. Nonetheless, some programs also return a message.

Requirements

You need the PAM development package installed. On Alpine it is named linux-pam-dev, on Debian based systems it is named libpam0g-dev. Not all programs require PAM but you need to edit the Makefile to disable PAM based programs in the build process.

Configuration

chkusr needs to be configured before compilation. Always look at config.h for configuration options. I did it this way because I need the programs as small and simple as possible, and I don’t want to parse a configuration file.

Building chkusr

         git clone https://git.xw3.org/hanez/chkusr.git
cd chkusr
make

      

Installation

WARNING: Install this software with care. chkpwd could easily be used for bruteforcing passwords from local users!

         sudo make install

      

chkusr programs are installed to /usr/bin/.

chkpwd.h is installed to /usr/include/ for use in other applications.

Uninstall

         sudo make uninstall

      

Programs

chkgrp

chkgrp is a program to verify if a user is a member of a group.

More information will follow… Actually there are multiple programs with some different behavior. I will write more about this, but for now I will not.

chkpwd

chkpwd is a program that checks the validity of a users password on a UNIX/PAM-based system.

Currently chkpwd is only tested on Linux, but it should work on a AIX, DragonFly BSD, FreeBSD, HP-UX, Linux, macOS, NetBSD and Solaris operating system too.

The code only supports verifying passwords for user id 1000 by default. Look at the file chkpwd.h for some compile time options!

Usage
         chkpwd -h
Usage: chkpwd [-u <username>] [-p <password>] [-v] [-V] [-h]

Options:
  -u <username>  Set username.
  -p <password>  Set password.
  -v             Enable verbose mode.
  -V             Print program version.
  -h             Show this help.

      

You can also use chkpwd even without installing by just running the following command:

         ./chkpwd

      
Return codes

chk returns 0 on success, 1 otherwise.

Examples
Interactive mode asking for a username and a password
         chkpwd

      
Interactive mode only asking for a password
         chkpwd -u hanez

      
None interactive mode with username and password provided as arguments to chkpwd
         chkpwd -u hanez -p password

      
Request the result from the above commands
         echo $?

      
Custom build

Set MAX_UID and MIN_UID at compile time:

         gcc -Wall -DMAX_UID=1000 -DMIN_UID=1000 -o chkpwd chkpwd.c -lpam -lpam_misc

      

chkpwr

A program that checks if an input string validates a password rule. More to come… look at the code!

Links

License

chkusr is licensed under the Apache License, Version 2.0.

See LICENSE for details.

Comments