aboutsummaryrefslogtreecommitdiff
path: root/lib/40-user
blob: 42bbb829c7a24cd3235acc4c9731bd271feac748 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/bin/sh

set_authorized_keys(){
  # Add authorized_keys for a user.
  # $1 = username
  # $2 = newline-separated string of authorized keys
  _sak_homedir=$(eval echo "~${1}")
  _sak_group=$(getent passwd "$1" | awk -F: '{ print $4}')

  # Create authorized keys file and set permissions.
  install_directory -o "$1" -g "$_sak_group" -m 0700 "${_sak_homedir}/.ssh"
  [ -f "${_sak_homedir}/.ssh/authorized_keys" ] || touch "${_sak_homedir}/.ssh/authorized_keys"
  chown "$1" "${_sak_homedir}/.ssh/authorized_keys"
  chgrp "$_sak_group" "${_sak_homedir}/.ssh/authorized_keys"
  chmod 600 "${_sak_homedir}/.ssh/authorized_keys"

  printf '%s\n' "${2}" > "${_sak_homedir}/.ssh/authorized_keys"
  log "added authorized_keys for ${1}:"$'\n'"$2"
}

set_password(){
  # Set password for a local user.
  # $1 = username
  # $2 = password
  printf '%s\n%s\n' "$2" "$2" | passwd "$1" > /dev/null
}