55# A useradd wrapper to add a new non-root user for proot linux container
66# #############################################################################
77
8- REQUIRED_DEPS=" openssl useradd"
8+ REQUIRED_DEPS=" openssl"
9+ NOPASSWD=false
910
1011# sudo check
1112[[ $EUID -ne 0 ]] && die " You need to be root to run this script"
@@ -18,7 +19,7 @@ for debs in $REQUIRED_DEPS; do
1819done
1920
2021# check for arguments
21- if [[ $# -ne 1 ]]; then
22+ if [[ $# -le 1 ]]; then
2223 echo " Usage: $0 [ -u | --user | --username ] <username> [ -p | --passwd | --password ] <password> [options]"
2324 echo " options:"
2425 echo " --nopasswd -> do not set a password"
@@ -29,11 +30,11 @@ while [[ $# -gt 0 ]]; do
2930 case $1 in
3031 -u | --user | --username)
3132 USERNAME=" $2 "
32- shift
33+ shift 2
3334 ;;
3435 -p | --passwd | --password)
3536 PASSWORD=" $2 "
36- shift
37+ shift 2
3738 ;;
3839 --nopasswd) NOPASSWD=true ;;
3940 esac
4647
4748echo " creating user $USERNAME "
4849if $NOPASSWD ; then
49- useraddd -m -G sudo -d /home/" $USERNAME " -k /etc/skel -s " $SHELL " " $USERNAME "
50+ useradd -m -G sudo -p " $( openssl passwd -1 " $PASSWORD " ) " -d /home/" $USERNAME " -k /etc/skel -s " $SHELL " " $USERNAME "
5051 echo " Adding user $USERNAME to sudoers "
5152 echo " $USERNAME " ALL=\( root\) ALL > /etc/sudoers.d/" $USERNAME "
5253 chmod 0440 /etc/sudoers.d/" $USERNAME "
5354else
54- useraddd -m -G sudo -p " $( openssl passwd -1 " $PASSWORD " ) " -d /home/" $USERNAME " -k /etc/skel -s " $SHELL " " $USERNAME "
55+ useradd -m -G sudo -p " $( openssl passwd -1 " $PASSWORD " ) " -d /home/" $USERNAME " -k /etc/skel -s " $SHELL " " $USERNAME "
5556 echo " Adding user $USERNAME to sudoers"
5657 echo " $USERNAME " ALL=\( root\) NOPASSWD: ALL > /etc/sudoers.d/" $USERNAME "
5758 chmod 0440 /etc/sudoers.d/" $USERNAME "
5859fi
5960
61+ # TODO: copy user layout from root to new user
6062echo " Done"
0 commit comments