Skip to content

Commit e700de7

Browse files
committed
New CLI and debian package structure
2 parents 46e0547 + 3f7ab7d commit e700de7

33 files changed

+757
-415
lines changed

.gitignore

+7-1
Original file line numberDiff line numberDiff line change
@@ -101,4 +101,10 @@ ENV/
101101
.mypy_cache/
102102

103103
# generated models
104-
/models
104+
/src/models
105+
106+
# build files
107+
debian/howdy.substvars
108+
debian/files
109+
debian/debhelper-build-stamp
110+
debian/howdy

.travis.yml

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
sudo: required
2+
language: python
3+
python:
4+
- "3.4"
5+
- "3.6"
6+
7+
install:
8+
# Install build tools and ack-grep for checks
9+
- sudo apt install devscripts dh-make ack-grep -y
10+
11+
script:
12+
# Build the binary (.deb)
13+
- debuild -i -us -uc -b
14+
# Install the binary, also fireing the debian scripts
15+
- sudo apt install ../*.deb -y
16+
# Check if the username passthough works correctly with sudo
17+
- 'howdy | ack-grep --passthru --color "current active user: travis"'
18+
- 'sudo howdy | ack-grep --passthru --color "current active user: travis"'
19+
# Remove howdy from the installation
20+
- sudo apt purge howdy -y
21+
22+
notifications:
23+
email:
24+
on_success: never
25+
on_failure: always

README.md

+26-11
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,56 @@
1-
# Howdy for Ubuntu
1+
# Howdy for Ubuntu [![](https://img.shields.io/travis/Boltgolt/howdy/master.svg)](https://travis-ci.org/Boltgolt/howdy) [![](https://img.shields.io/github/release/Boltgolt/howdy.svg?colorB=4c1)](https://github.com/Boltgolt/howdy/releases) [![](https://img.shields.io/github/issues-raw/Boltgolt/howdy/enhancement.svg?label=feature+requests&colorB=4c1)](https://github.com/Boltgolt/howdy/issues?q=is%3Aissue+is%3Aopen+label%3Aenhancement)
22

33
Windows Hello™ style authentication for Ubuntu. Use your built-in IR emitters and camera in combination with face recognition to prove who you are.
44

55
Using the central authentication system in Linux (PAM), this works everywhere you would otherwise need your password: Login, lock screen, sudo, su, etc.
66

77
### Installation
88

9-
Run the installer by pasting (`ctrl+shift+V`) the following command into the terminal:
9+
Run the installer by pasting (`ctrl+shift+V`) the following commands into the terminal one at a time:
1010

1111
```
12-
wget -O /tmp/howdy_install.py https://raw.githubusercontent.com/Boltgolt/howdy/master/installer.py && sudo python3 /tmp/howdy_install.py
12+
sudo add-apt-repository ppa:boltgolt/howdy
13+
sudo apt update
14+
sudo apt install howdy
1315
```
1416

15-
This will guide you through the installation. When that's done run `sudo howdy USER add` and replace `USER` with your username to add a face model.
17+
**Note:** The build of dlib can hang on 100% for over a minute, give it time.
18+
19+
This will guide you through the installation. When that's done run `sudo howdy add` to add a face model.
1620

1721
If nothing went wrong we should be able to run sudo by just showing your face. Open a new terminal and run `sudo -i` to see it in action.
1822

19-
**Note:** The build of dlib can hang on 100% for over a minute, give it time.
23+
If you're curious you can run `sudo howdy config` to open the central config file and see the options Howdy has.
2024

2125
### Command line
2226

23-
The installer adds a `howdy` command to manage face models for the current user. Use `howdy help` to list the available options.
27+
The installer adds a `howdy` command to manage face models for the current user. Use `howdy --help` or `man howdy` to list the available options.
28+
29+
Usage:
30+
```
31+
howdy [-U user] [-y] command [argument]
32+
```
33+
34+
| Command | Description |
35+
|-----------|-----------------------------------------------|
36+
| `add` | Add a new face model for an user |
37+
| `clear` | Remove all face models for an user |
38+
| `config` | Open the config file in gedit |
39+
| `disable` | Disable or enable howdy |
40+
| `list` | List all saved face models for an user |
41+
| `remove` | Remove a specific model for an user |
42+
| `test` | Test the camera and recognition methods |
2443

2544
### Troubleshooting
2645

2746
Any python errors get logged directly into the console and should indicate what went wrong. If authentication still fails but no errors are printed you could take a look at the last lines in `/var/log/auth.log` to see if anything has been reported there.
2847

2948
If you encounter an error that hasn't been reported yet, don't be afraid to open a new issue.
3049

31-
### Uninstalling
32-
33-
There is an uninstaller available, run `sudo python3 /lib/security/howdy/uninstall.py` to remove Howdy from your system.
34-
3550
### A note on security
3651

3752
This script is in no way as secure as a password and will never be. Although it's harder to fool than normal face recognition, a person who looks similar to you or well-printed photo of you could be enough to do it.
3853

39-
To minimize the chance of this script being compromised, it's recommend to leave this repo in /lib/security and to keep it read only.
54+
To minimize the chance of this program being compromised, it's recommend to leave Howdy in /lib/security and to keep it read only.
4055

4156
DO NOT USE HOWDY AS THE SOLE AUTHENTICATION METHOD FOR YOUR SYSTEM.

autocomplete.sh renamed to autocomplete/howdy

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
#!/bin/bash
12
# Autocomplete file run in bash
23
# Will sugest arguments on tab
34

cli.py

-53
This file was deleted.

cli/help.py

-17
This file was deleted.

debian/changelog

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
howdy (2.1.0) xenial; urgency=medium
2+
3+
* First complete PPA release
4+
* Reworked CLI
5+
6+
-- boltgolt <[email protected]> Fri, 13 Apr 2018 22:22:27 +0200
7+
8+
howdy (2.0.0-alpha+3) xenial; urgency=medium
9+
10+
* Fixed issue where dlib dependency failed to install on some installations
11+
* Added preinst script for camera detection
12+
13+
-- boltgolt <[email protected]> Thu, 12 Apr 2018 21:42:42 +0000
14+
15+
howdy (2.0.0-alpha+2) xenial; urgency=medium
16+
17+
* Fixed build dependency issue
18+
19+
-- boltgolt <[email protected]> Sat, 07 Apr 2018 21:30:48 +0200
20+
21+
howdy (2.0.0-alpha+1) xenial; urgency=low
22+
23+
* Initial packaged release.
24+
25+
-- boltgolt <[email protected]> Wed, 04 Apr 2018 18:13:15 +0200

debian/compat

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
10

debian/control

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
Source: howdy
2+
Section: misc
3+
Priority: optional
4+
Standards-Version: 3.9.7
5+
Build-Depends: python, dh-python, devscripts, dh-make, debhelper
6+
Maintainer: boltgolt <[email protected]>
7+
Vcs-Git: https://github.com/Boltgolt/howdy
8+
9+
Package: howdy
10+
Homepage: https://github.com/Boltgolt/howdy
11+
Architecture: all
12+
Depends: ${misc:Depends}, git, python3, python3-pip, python3-dev, python3-setuptools, build-essential, libpam-python, fswebcam, libopencv-dev, python-opencv, cmake
13+
Description: Windows Hello style authentication for Ubuntu.
14+
Use your built-in IR emitters and camera in combination with face recognition
15+
to prove who you are.

debian/copyright

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2018 boltgolt
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

debian/howdy.1

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
.\" Please adjust this date whenever revising the manpage.
2+
.TH HOWDY 1 "April 9, 2018" "Howdy help" "User Commands"
3+
.SH NAME
4+
howdy \- Windows Hello style authentication for Ubuntu
5+
.SH DESCRIPTION
6+
Howdy IR face recognition implements a PAM module to use your face as a authentication method.
7+
.SS "Usage:"
8+
.IP
9+
howdy [\-U USER] [\-y] [\-h] command [argument]
10+
.SS "Commands:"
11+
.TP
12+
add
13+
Add a new face model for an user.
14+
.TP
15+
clear
16+
Remove all face models for an user.
17+
.TP
18+
config
19+
Open the config file in gedit.
20+
.TP
21+
disable
22+
Disable or enable howdy.
23+
.TP
24+
list
25+
List all saved face models for an user.
26+
.TP
27+
remove
28+
Remove a specific model for an user.
29+
.TP
30+
clear
31+
Remove all face models for an user.
32+
.TP
33+
test
34+
Test the camera and recognition methods.
35+
.SS "Optional arguments:"
36+
.TP
37+
\fB\-U\fR USER, \fB\-\-user\fR USER
38+
Set the user account to use.
39+
.TP
40+
\fB\-y\fR
41+
Skip all questions.
42+
.TP
43+
\fB\-h\fR, \fB\-\-help\fR
44+
Show this help message and exit.
45+
.PP
46+
.SH AUTHOR
47+
Howdy was written by boltgolt. For more information visit https://github.com/Boltgolt/howdy

debian/howdy.manpages

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
debian/howdy.1

debian/install

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
src/. lib/security/howdy
2+
autocomplete/. usr/share/bash-completion/completions

0 commit comments

Comments
 (0)