12 Usage: adduser-novaboot --key KEY [--admin-id=NAME] [adduser options] user
16 TEMP=$(getopt -o 'h' --long 'admin-id:,key:,help,home:,uid:,firstuid:,lastuid:,gecos:,ingroup:,gid:' -n "${0##*/}" -- "$@")
17 [ $? -ne 0 ] && die "getopt error"
36 adduser_opts="$adduser_opts $1 $2"
41 [ -z "$keysrc" ] && die "Missing --key option"
43 if [ "$keysrc" = "-" ]; then
49 [ -z "$key" -o "$(echo "$key" | wc -l)" -ne 1 ] && die "--key needs to be just one line"
50 echo "$key" | grep -q ssh || die "--key does not look like an SSH public key"
52 adduser --disabled-password --shell $(which novaboot-shell) $adduser_opts "$@"
55 home=$(getent passwd "$user"|awk -F: '{print $6;}')
58 echo "Creating $home/.ssh/authorized_keys"
59 mkdir -p -m 700 "$home/.ssh"
60 echo "command=\"user $admin admin\" $key" >> $home/.ssh/authorized_keys
61 chown $user: "$home/.ssh" "$home/.ssh/authorized_keys"
63 if [ -d /srv/tftp -a ! -e /srv/tftp/$user ]; then
64 echo "Creating symlink from /srv/tftp/$user to $home/tftproot."
65 mkdir -p $home/tftproot
66 chown $user $home/tftproot
67 ln -s $home/tftproot /srv/tftp/$user
69 echo "NOT creating symlink from /srv/tftp/$user to $home/tftproot."
72 if [ -d /run/systemd/system ]; then
73 echo "Installing systemd services and timers in /etc/systemd/system/user@$uid.service.d"
74 mkdir -p /etc/systemd/system/user@$uid.service.d
75 cat <<EOF > /etc/systemd/system/user@$uid.service.d/novaboot-server.conf
77 Requires=novaboot-server-login@$user.service
78 After=novaboot-server-login@$user.service
82 echo "Creating configuration template in $home/.novaboot-shell"
83 cat <<'CONFIG_EOF' > $home/.novaboot-shell
85 # Configuration for novaboot-shell
88 #console_cmd='sterm -s 115200 /dev/ttyUSB0'
90 #reset_cmd='/bin/sh -c "(usbrelay LY03X_2=1; sleep 0.1; usbrelay LY03X_2=0) 2>/dev/null"'
92 #on_cmd='/bin/sh -c "(usbrelay LY03X_1=1; sleep 0.1; usbrelay LY03X_1=0) 2>/dev/null"';;
93 #off_cmd='/bin/sh -c "(usbrelay LY03X_1=1; sleep 7.0; usbrelay LY03X_1=0) 2>/dev/null"';;
98 # echo '--prefix=/prefix'
100 # echo '--uboot-init="setenv serverip 192.168.1.1"'