Renamed chkpw to chkpwd. (1.3.0)

This commit is contained in:
Johannes Findeisen 2025-06-04 18:43:26 +02:00
commit a2bcc55b38
6 changed files with 61 additions and 61 deletions

View file

@ -1,21 +1,21 @@
all:
$(CC) -Wall -o ./chkpw ./chkpw.c -lpam
gzip -fk ./chkpw.1
$(CC) -Wall -o ./chkpwd ./chkpwd.c -lpam
gzip -fk ./chkpwd.1
clean:
rm -f ./chkpw
rm -f ./chkpw.1.gz
rm -f ./chkpwd
rm -f ./chkpwd.1.gz
rm -f ./test
install:
install -g 0 -o 0 -m 0655 ./chkpw /usr/bin/
install -g 0 -o 0 -m 0644 ./chkpw.h /usr/include/
install -g 0 -o 0 -m 0644 ./chkpw.1.gz /usr/share/man/man1/
install -g 0 -o 0 -m 0655 ./chkpwd /usr/bin/
install -g 0 -o 0 -m 0644 ./chkpwd.h /usr/include/
install -g 0 -o 0 -m 0644 ./chkpwd.1.gz /usr/share/man/man1/
uninstall:
rm -f /usr/bin/chkpw
rm -f /usr/include/chkpw.h
rm -f /usr/share/man/man1/chkpw.1.gz
rm -f /usr/bin/chkpwd
rm -f /usr/include/chkpwd.h
rm -f /usr/share/man/man1/chkpwd.1.gz
test:
$(CC) -Wall -DPAM_DEBUG -o test test.c

View file

@ -1,8 +1,8 @@
# chkpw
# chkpwd
chkpw is a program that checks the validity of a users password on a UNIX/[PAM](https://en.wikipedia.org/wiki/Pluggable_Authentication_Module)-based system.
chkpwd is a program that checks the validity of a users password on a UNIX/[PAM](https://en.wikipedia.org/wiki/Pluggable_Authentication_Module)-based system.
Currently chkpw is only tested on Linux, but it should work on a [AIX](https://en.wikipedia.org/wiki/IBM_AIX), [DragonFly BSD](https://www.dragonflybsd.org/), [FreeBSD](https://www.freebsd.org/), [HP-UX](https://en.wikipedia.org/wiki/HP-UX), [Linux](https://kernel.org/), [macOS](https://en.wikipedia.org/wiki/MacOS), [NetBSD](https://netbsd.org/) and [Solaris](https://en.wikipedia.org/wiki/Oracle_Solaris) operating system too.
Currently chkpwd is only tested on Linux, but it should work on a [AIX](https://en.wikipedia.org/wiki/IBM_AIX), [DragonFly BSD](https://www.dragonflybsd.org/), [FreeBSD](https://www.freebsd.org/), [HP-UX](https://en.wikipedia.org/wiki/HP-UX), [Linux](https://kernel.org/), [macOS](https://en.wikipedia.org/wiki/MacOS), [NetBSD](https://netbsd.org/) and [Solaris](https://en.wikipedia.org/wiki/Oracle_Solaris) operating system too.
## The idea
@ -12,35 +12,35 @@ I needed a program to verify passwords of users on Linux/UNIX systems using PAM
You need the PAM development package installed. On Alpine it is named linux-pam-dev, on Debian based systems it is libpam0g-dev.
## Building chkpw
## Building chkpwd
```
git clone https://git.xw3.org/hanez/chkpw.git
cd chkpw
git clone https://git.xw3.org/hanez/chkpwd.git
cd chkpwd
make
```
The code only supports verifying passwords for user id 1000 by default. Look at the file chkpw.h for some compile time options!
The code only supports verifying passwords for user id 1000 by default. Look at the file chkpwd.h for some compile time options!
### Custom build example
Set MAX_UID and MIN_UID at compile time:
```
gcc -Wall -DMAX_UID=1000 -DMIN_UID=1000 -o chkpw chkpw.c -lpam -lpam_misc
gcc -Wall -DMAX_UID=1000 -DMIN_UID=1000 -o chkpwd chkpwd.c -lpam -lpam_misc
```
## Installation
**WARNING:** Install this software with care. chkpw could easily be used for bruteforcing passwords from local users!
**WARNING:** Install this software with care. chkpwd could easily be used for bruteforcing passwords from local users!
```
sudo make install
```
chkpw is installed to /usr/bin/.
chkpwd is installed to /usr/bin/.
chkpw.h is installed to /usr/include/ for use in other applications.
chkpwd.h is installed to /usr/include/ for use in other applications.
## Uninstall
@ -51,8 +51,8 @@ sudo make uninstall
## Usage
```
chkpw -h
Usage: chkpw [-u <username>] [-p <password>] [-v] [-V] [-h]
chkpwd -h
Usage: chkpwd [-u <username>] [-p <password>] [-v] [-V] [-h]
Options:
-u <username> Set username.
@ -62,15 +62,15 @@ Options:
-h Show this help.
```
You can also use chkpw even without installing by just running the following command:
You can also use chkpwd even without installing by just running the following command:
```
./chkpw
./chkpwd
```
### Return codes
chkpw returns 0 on success, 1 otherwise.
chkpwd returns 0 on success, 1 otherwise.
### Examples
@ -78,19 +78,19 @@ chkpw returns 0 on success, 1 otherwise.
#### Interactive mode asking for a username and a password
```
chkpw
chkpwd
```
#### Interactive mode only asking for a password
```
chkpw -u hanez
chkpwd -u hanez
```
#### None interactive mode with username and password provided as arguments to chkpw
#### None interactive mode with username and password provided as arguments to chkpwd
```
chkpw -u hanez -p password
chkpwd -u hanez -p password
```
#### Request the result from the above commands
@ -101,14 +101,14 @@ echo $?
## License
chkpw is licensed under the Apache License, Version 2.0.
chkpwd is licensed under the Apache License, Version 2.0.
See LICENSE for details.
## Links
- [https://git.xw3.org/hanez/chkpw](https://git.xw3.org/hanez/chkpw)
- [https://linux.die.net/man/8/unix_chkpwd](https://linux.die.net/man/8/unix_chkpwd)
- [https://git.xw3.org/hanez/chkpwd](https://git.xw3.org/hanez/chkpwd)
- [https://linux.die.net/man/8/unix_chkpwdd](https://linux.die.net/man/8/unix_chkpwd)
- [https://cr.yp.to/checkpwd.html](https://cr.yp.to/checkpwd.html)
- [https://pamtester.sourceforge.net/](https://pamtester.sourceforge.net/)

24
chkpw.1
View file

@ -1,24 +0,0 @@
.TH man 1 "01 Jun 2025" "chkpw 1.2.0" "chkpw man page"
.SH NAME
chkpw \- checks the validity of a users password on a UNIX/PAM-based system.
.SH SYNOPSIS
chkpw [OPTION]...
.SH DESCRIPTION
chkpw is a program that checks the validity of a users password on a UNIX/PAM-based system.
.SH OPTIONS
The options which apply to the chkpw command are:
-u <username> Set username.
-p <password> Set password.
-v Enable verbose mode.
-V Print program version.
-h Show this help.
chkpw runs in an interactive mode when no username and/or password are set. A missing username and/or password will then be asked for program execution.
.SH SEE ALSO
pam(3), pam_authenticate(3), PAM(8)
.SH BUGS
No known bugs.
.SH AUTHOR
Johannes Findeisen (you@hanez.org)

24
chkpwd.1 Normal file
View file

@ -0,0 +1,24 @@
.TH man 1 "01 Jun 2025" "chkpwd 1.3.0" "chkpwd man page"
.SH NAME
chkpwd \- checks the validity of a users password on a UNIX/PAM-based system.
.SH SYNOPSIS
chkpwd [OPTION]...
.SH DESCRIPTION
chkpwd is a program that checks the validity of a users password on a UNIX/PAM-based system.
.SH OPTIONS
The options which apply to the chkpwd command are:
-u <username> Set username.
-p <password> Set password.
-v Enable verbose mode.
-V Print program version.
-h Show this help.
chkpwd runs in an interactive mode when no username and/or password are set. A missing username and/or password will then be asked for program execution.
.SH SEE ALSO
pam(3), pam_authenticate(3), PAM(8)
.SH BUGS
No known bugs.
.SH AUTHOR
Johannes Findeisen (you@hanez.org)

View file

@ -1,12 +1,12 @@
/**
* chkpw is a program that checks the validity of a users password on a
* chkpwd is a program that checks the validity of a users password on a
* UNIX/PAM-based system.
*
* Author: Johannes Findeisen <you@hanez.org> - 2024
* License: Apache-2.0 (see LICENSE)
*/
#include "chkpw.h"
#include "chkpwd.h"
#include <stdbool.h>
#include <stdio.h>

View file

@ -1,5 +1,5 @@
/**
* chkpw.h is part of chkpw, a program that checks the validity of a users
* chkpwd.h is part of chkpwd, a program that checks the validity of a users
* password on a UNIX/PAM-based system.
*
* Author: Johannes Findeisen <you@hanez.org> - 2025
@ -11,7 +11,7 @@
#include <security/pam_misc.h>
#include <stdbool.h>
#define VERSION "1.2.0"
#define VERSION "1.3.0"
bool checkpw_authenticate(const char *username, const char *password,
bool verbose);