slcl/doc/man1/usergen.1

93 lines
1.6 KiB
Groff

.TH USERGEN 1 usergen
.SH NAME
usergen \- append a user into a slcl database
.SH SYNOPSIS
.B usergen
dir
.SH DESCRIPTION
.B usergen
performs the following steps:
.B 1.
Reads user credentials and quota from standard input.
.B 2.
Generates a JSON object with the read credentials and quota, as well as
a random salt and signing key.
.B 3.
Appends the newly generated JSON object into the
.B users
key in
.BR dir/db.json .
.B 4.
Creates a directory with the username in
.BR dir/user/ .
.SH OPTIONS
.B dir
defines the directory where
.B db.json
is located.
.SH NOTES
For security reasons, passwords are never stored in plaintext into
.BR dir/db.json .
Instead, a salted, multi-round hashed password is calculated and
stored. Then,
.B slcl(1)
performs the same operations to ensure both tokens match.
.SH EXAMPLES
Below, there is an example of a new user called
.B johndoe
with password
.B secret
and a specified quota of 512 MiB:
.PP
.EX
$ ./usergen ~/db
Username:
johndoe
Password:
secret
Quota, in MiB (leave empty for unlimited quota):
512
1000/1000
.EE
Then,
.B dir/db.json
should be updated to something similar to:
.PP
.EX
{
"users": [
{
"name": "johndoe",
"password": "4c48385ec2be4798dc772d3c8f5649d8411afbdfc4708ada79379e3562af5abb",
"salt": "835324df29527731f3faad663c58c3b19a07c193e97dc77f33e10d3942cdc91c",
"key": "d0ae360b9af1177ce73eef3f499eea2627cd61b69df79dcb7a5c70bc658a4e63",
"quota": "512"
}
]
}
.EE
.SH LICENSE
See the LICENSE file for further reference.
.SH AUTHORS
Written by Xavier Del Campo Romero.
.SH SEE ALSO
.B slcl(1)