Add script 'create-shadow-password-from-file.sh'
This commit is contained in:
parent
ee3a032fb5
commit
434c1ff94e
53
snippets/create-shadow-password-from-file.sh
Executable file
53
snippets/create-shadow-password-from-file.sh
Executable file
@ -0,0 +1,53 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
script_name="$(basename $(realpath $0))"
|
||||
working_dir="$(dirname $(realpath $0))"
|
||||
|
||||
conf_file="${working_dir}/conf/${script_name%%.*}.conf"
|
||||
|
||||
LOCK_DIR="/tmp/$(basename $0).$$.LOCK"
|
||||
log_file="${LOCK_DIR}/${script_name%%.*}.log"
|
||||
|
||||
# ----------
|
||||
# Variables
|
||||
# ----------
|
||||
|
||||
password_file="/tmp/passwd"
|
||||
|
||||
# ----------
|
||||
# Functions
|
||||
# ----------
|
||||
|
||||
trim() {
|
||||
local var="$*"
|
||||
var="${var#"${var%%[![:space:]]*}"}" # remove leading whitespace characters
|
||||
var="${var%"${var##*[![:space:]]}"}" # remove trailing whitespace characters
|
||||
echo -n "$var"
|
||||
}
|
||||
|
||||
|
||||
|
||||
while IFS=' ' read _user _pw _salt || [[ -n $_line ]] ; do
|
||||
|
||||
user=$_user
|
||||
passwd=$_pw
|
||||
salt=$_salt
|
||||
|
||||
# ignore empty lines
|
||||
#
|
||||
[[ -z "$(trim $user)" ]] && continue
|
||||
[[ "$(trim $user)" =~ ^# ]] && continue
|
||||
|
||||
[[ -z $salt ]] && salt=$(tr -cd 'a-zA-Z0-9' < /dev/urandom | head -c 8)
|
||||
|
||||
passwd_hash="$(mkpasswd -m SHA-512 $passwd $salt)"
|
||||
|
||||
echo ""
|
||||
echo "password: '${passwd}' - salt: $ $salt"
|
||||
echo "${user}:$passwd_hash"
|
||||
|
||||
done < "$password_file"
|
||||
|
||||
|
||||
echo ""
|
||||
exit 0
|
Loading…
Reference in New Issue
Block a user