Module Name: src Committed By: mrg Date: Wed Jun 12 03:06:49 UTC 2019
Modified Files: src/distrib/utils/embedded/files: creds_msdos Log Message: various cleanups inspired by reviews: - clean up variable usage - be explicit that $ssh_userkeys is global - don't assig id output to a variable not used To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/distrib/utils/embedded/files/creds_msdos Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/distrib/utils/embedded/files/creds_msdos diff -u src/distrib/utils/embedded/files/creds_msdos:1.2 src/distrib/utils/embedded/files/creds_msdos:1.3 --- src/distrib/utils/embedded/files/creds_msdos:1.2 Wed Jun 12 00:28:56 2019 +++ src/distrib/utils/embedded/files/creds_msdos Wed Jun 12 03:06:48 2019 @@ -1,6 +1,6 @@ #!/bin/sh # -# $NetBSD: creds_msdos,v 1.2 2019/06/12 00:28:56 mrg Exp $ +# $NetBSD: creds_msdos,v 1.3 2019/06/12 03:06:48 mrg Exp $ # # Copyright (c) 2019 Matthew R. Green # All rights reserved. @@ -46,35 +46,35 @@ $_rc_subr_loaded . /etc/rc.subr name="creds_msdos" start_cmd="creds_msdos_start" stop_cmd=":" -fstab_file=/etc/fstab fail() { echo "$@" 1>&2 exit 1 } +# This uses $ssh_userkeys global sshkey_setup() { local user="$1" local group="wheel" # don't create existing users - id=$(id -u $user 2>/dev/null) - if [ $? -ne 0 ]; then - useradd -m -G "${group}" "$user" || fail "Useradd failed." + if ! id -u "${user}" > /dev/null 2>&1; then + useradd -m -G "${group}" "${user}" || fail "Useradd failed." fi - eval sshdir=~"${user}/.ssh" - eval mkdir -p -m 755 "${sshdir}" || fail "mkdir ~/.ssh failed." - chown "${user}" "${sshdir}" - eval userkeys="${sshdir}/authorized_keys" + eval ssh_userdir=~"${user}/.ssh" + mkdir -p -m 755 "${ssh_userdir}" || fail "mkdir ~/.ssh failed." + chmod 755 "${ssh_userdir}" + chown "${user}" "${ssh_userdir}" + + ssh_userkeys="${ssh_userdir}/authorized_keys" } sshkey_finish() { local user="$1" - local userkeys="$2" - chmod 644 "${userkeys}" - chown "${user}" "${userkeys}" + chmod 644 "${ssh_userkeys}" + chown "${user}" "${ssh_userkeys}" } do_sshkeyfile() { @@ -85,28 +85,28 @@ do_sshkeyfile() { return fi - sshkey_setup "$user" + sshkey_setup "${user}" # check entry is not present while read type keydata name; do - if fgrep -q "${keydata}" "${userkeys}" 2>/dev/null; then + if fgrep -q "${keydata}" "${ssh_userkeys}" 2>/dev/null; then continue fi - echo "${type} ${keydata} ${name}" >> "${userkeys}" + echo "${type} ${keydata} ${name}" >> "${ssh_userkeys}" done < "${newkeys}" - sshkey_finish "$user" "${userkeys}" + sshkey_finish "${user}" } do_sshkey() { local user="$1" local newkey="$2" - sshkey_setup "$user" + sshkey_setup "${user}" - echo "${newkey}" >> "${userkeys}" + echo "${newkey}" >> "${ssh_userkeys}" - sshkey_finish "$user" "${userkeys}" + sshkey_finish "${user}" } do_useraddpwhash() { @@ -115,8 +115,7 @@ do_useraddpwhash() { local group="wheel" # don't add to existing users - id=$(id -u "${user}" 2>/dev/null) - if [ $? -eq 0 ]; then + if id -u "${user}" > /dev/null 2>&1; then return fi @@ -133,48 +132,49 @@ do_useradd() { creds_msdos_start() { + local fstab_file=/etc/fstab + if [ -z "${creds_msdos_partition}" ]; then echo "Not looking for credientials on msdos" - return; + return fi - check_fs= while read junk1 mp fstype junk2; do if [ "${mp}" != "${creds_msdos_partition}" ]; then continue fi if [ "${fstype}" != "msdos" ]; then echo "Not checking for creds on ${creds_msdos_partition}: not an msdos file system" - return; + return fi break done < "${fstab_file}" - delete_creds=no - creds_file="${creds_msdos_partition}/creds.txt" + local delete_creds=no + local creds_file="${creds_msdos_partition}/creds.txt" if [ -f "${creds_file}" ]; then - while read type user arg1; do + while read type user args; do # strip cr - arg1=$(echo "$arg1" | tr -d '\015') + local clean_args=$(echo "$args" | tr -d '\015') case "$type" in \#*|'') continue ;; sshkeyfile) echo "Added user ${user} via ssh key file method." - do_sshkeyfile "${user}" "${arg1}" + do_sshkeyfile "${user}" "${clean_args}" ;; sshkey) echo "Added user ${user} via ssh key string method." - do_sshkey "${user}" "${arg1}" + do_sshkey "${user}" "${clean_args}" ;; useraddpwhash) echo "Added user ${user} via password hash method." - do_useraddpwhash "${user}" "${arg1}" + do_useraddpwhash "${user}" "${clean_args}" ;; useradd) echo "Added user ${user} via password method, shredding credentials file." - do_useradd "${user}" "${arg1}" + do_useradd "${user}" "${clean_args}" delete_creds=yes ;; *)